前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Biconomy Forward 调研

Biconomy Forward 调研

原创
作者头像
谛听
修改2023-02-09 17:32:54
5030
修改2023-02-09 17:32:54
举报
文章被收录于专栏:随意记录

用 ERC-20 token 支付 gas

ERC-20 token 支付手续费
ERC-20 token 支付手续费
Forward
Forward

1 Biconomy Relayer

是支付 gas 的第三方。

meta tx 不直接发送到区块链,而是发送元交易到第三方 Relayer,该第三方支付 gas。

2 ERC20Fowarder

合约代码

  • 存储用来计算费用的其它合约的地址,包括 FeeManager 和 Oracle Aggregator。其中,FeeManager 是给 token 一个费用乘数,Oracle Aggregator 用来获得 token 价格。
  • 在执行成功后向用户收费。调用特定 ERC20 token 的 transferFrom 方法 -- 向用户收费。
  • 用户的 gas 会被转到 feeReceiver 地址,该地址是部署 ERC20Forwarder 合约的 owner,Biconomy 拥有 feeReceiver 地址。

3 Fee Manager

合约代码

该合约为负责为 user/token 组合给定一个费用乘数 -- getFeeMultipiler(address user, address token)。费用乘数本身是是在基础 tokenGasPrice 设置加价的方式。

Biconomy 的默认实现是 CentralizedFeeManager.sol,然而,任何实现 IFeeManager.sol 的合约都可以作为费用管理器。这为定制打开了大门。

费用乘数可以在 0 和 6.5535 之间-表示为从 0 到 65535 的 uint16 基点。然而,对于未来的定制选项,我们可能会规定最小值 >1。

4 Oracle Aggregator

合约代码

不同的 token 有不同的流动性和经济,这将影响我们获取他们价格数据的方式。

对于流行的 token,比如 Dai 和 USDC,可以使用 Chainlink 的价格源。对于更多具有 AMM 流动性的代币,使用 Uniswap TWAP 价格源。可能需要一些代币的完全定制安排,比如,定价数据来自另一个 DeFi 协议。

5 BiconomyForwarder (Trusted Forwarder)

合约代码

  • 验证签名
  • 将用户的地址添加到 call data
  • 用户合约仅依赖 forwarder 保证安全性

6 DApp Smart Contract

用户的合约,获取原始 sender 并执行原始 tx

需要兼容 ERC-2771 标准

参考

Forward - Enable Paying Gas in ERC20

Moving Forward, save your ETH. Pay gas in ERC20 tokens.

metatx-standard

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Biconomy Relayer
  • 2 ERC20Fowarder
  • 3 Fee Manager
  • 4 Oracle Aggregator
  • 5 BiconomyForwarder (Trusted Forwarder)
  • 6 DApp Smart Contract
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档