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逻辑。

部署步骤

准备工作

  1. 克隆仓库:git clone https://gitcode.com/gh_mirrors/st/stablecoin-evm
  2. 安装依赖:cd stablecoin-evm && yarn install
  3. 配置环境变量:设置DEPLOYER_PRIVATE_KEY为部署者私钥

部署Fee Adapter

部署Fee Adapter的脚本位于scripts/deploy/celo/deploy-fee-adapter.s.sol。该脚本会部署Fee Adapter代理和最新实现合约,主要步骤包括:

  1. 读取部署者私钥
  2. 部署Fee Adapter实现合约
  3. 部署Fee Adapter代理合约
  4. 将代理指向实现合约

执行部署命令: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类似,但需要注意:

  1. 先部署代理合约
  2. 部署主铸币者(Master Minter)
  3. 初始化代理合约

执行部署命令: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),仅供参考