stablecoin-evm在Celo网络的部署指南:Fee Adapter与特殊实现
stablecoin-evm在Celo网络的部署指南:Fee Adapter与特殊实现
【免费下载链接】stablecoin-evmSource repository for smart contracts used by Circle's stablecoins on EVM-compatible blockchains项目地址: https://gitcode.com/gh_mirrors/st/stablecoin-evm
stablecoin-evm是Circle在EVM兼容区块链上稳定币智能合约的源代码仓库,本指南将详细介绍如何在Celo网络部署stablecoin-evm,重点讲解Fee Adapter组件及Celo网络的特殊实现。
Celo网络的独特之处
Celo网络作为EVM兼容链,在稳定币实现上有其特殊之处。Circle为Celo网络的FiatToken设计了特定逻辑,主要体现在两个方面:一是Celo虚拟机对Gas Token的特殊处理,二是支持非18位小数代币作为交易费用的Fee Adapter机制。
Gas Token处理
Celo虚拟机通过ICeloGasToken接口与稳定币合约交互,只有Celo VM(通过address(0)调用)才能执行特定操作,这一设计确保了核心VM状态转换算法的安全性。相关接口定义可参考contracts/interface/celo/ICeloGasToken.sol。
Fee Adapter机制
Celo链支持使用非18位小数的代币支付交易费用,这需要通过Fee Adapter实现。IFiatTokenFeeAdapter接口定义了这一机制,具体实现可在contracts/interface/celo/IFiatTokenFeeAdapter.sol中查看。Celo官方文档对这一特性有详细说明,允许代币通过适配器支持交易费用支付。
Fee Adapter组件详解
FiatTokenFeeAdapterV1实现
FiatTokenFeeAdapterV1是Fee Adapter的具体实现,位于contracts/v2/celo/FiatTokenFeeAdapterV1.sol。该合约实现了IFiatTokenFeeAdapter接口,主要功能包括:
- 验证调用者是否为Celo VM
- 处理代币小数位数与适配器的差异
- 确保费用计算和转账的准确性
关键错误提示如"FiatTokenFeeAdapterV1: Token decimals must be < adapter decimals"和"FiatTokenFeeAdapterV1: Must fully credit before debit",保证了费用处理的安全性。
FiatTokenFeeAdapterProxy
为支持Fee Adapter的升级,项目提供了contracts/v2/celo/FiatTokenFeeAdapterProxy.sol。该代理合约基于AdminUpgradeabilityProxy,允许在不中断服务的情况下升级Fee Adapter逻辑。
部署步骤
准备工作
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/st/stablecoin-evm - 安装依赖:
cd stablecoin-evm && yarn install - 配置环境变量:设置
DEPLOYER_PRIVATE_KEY为部署者私钥
部署Fee Adapter
部署Fee Adapter的脚本位于scripts/deploy/celo/deploy-fee-adapter.s.sol。该脚本会部署Fee Adapter代理和最新实现合约,主要步骤包括:
- 读取部署者私钥
- 部署Fee Adapter实现合约
- 部署Fee Adapter代理合约
- 将代理指向实现合约
执行部署命令:forge script scripts/deploy/celo/deploy-fee-adapter.s.sol --broadcast --rpc-url <celo-rpc-url>
部署FiatTokenCelo
部署Celo网络稳定币的脚本为scripts/deploy/celo/deploy-fiat-token-celo.s.sol。部署流程与基础FiatTokenV2_2类似,但需要注意:
- 先部署代理合约
- 部署主铸币者(Master Minter)
- 初始化代理合约
执行部署命令:forge script scripts/deploy/celo/deploy-fiat-token-celo.s.sol --broadcast --rpc-url <celo-rpc-url>
测试与验证
为确保部署的正确性,项目提供了测试合约,如contracts/test/celo/MockFiatTokenFeeAdapterWithExposedFunctions.sol。该合约暴露了Fee Adapter的内部函数,便于测试验证。
可以通过运行测试命令验证功能:forge test --match-path test/v2/celo/*
总结
在Celo网络部署stablecoin-evm需要特别关注Fee Adapter组件和Celo特有的Gas Token处理机制。通过本文介绍的部署步骤,您可以成功在Celo网络部署Circle稳定币合约。有关更多详细信息,请参考项目文档doc/celo.md。
部署完成后,您的稳定币将支持Celo网络的特殊功能,包括使用非18位小数代币支付交易费用,为Celo生态用户提供更灵活的支付选择。
【免费下载链接】stablecoin-evmSource repository for smart contracts used by Circle's stablecoins on EVM-compatible blockchains项目地址: https://gitcode.com/gh_mirrors/st/stablecoin-evm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考