Biconomy Forward 调研
2023-03-07 09:05:44 时间
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 标准
- 继承 BasicMetaTransaction
- 将
msg.sender
替换为_msgSender
,以获取原始 sender
参考
Forward - Enable Paying Gas in ERC20
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的