管理 xERC20 和 FiatToken 的 Warp 路由限制
xERC20 部署
Warp 路由支持 xERC20
代币。请按照以下步骤配置 xERC20
以用于 Warp 路由:
- 所有权转移:
- 确保将
xERC20
合约 的所有权转移到一个安全的多签钱包,以确保安全性。此步骤对于防止未经授权的更改至关重要。 xERC20
合约使用 OpenZeppelin 的Ownable
接口。使用transferOwnership
函数完成此步骤。
- 铸造限制配置:
- Warp 路由合约的铸造和销毁限制通过
xERC20
合约中的setLimits
函数进行管理。此函数必须由合约所有者调用。xERC20
合约使用 24 小时窗口来管理限制。这由_DURATION
变量定义,该变量设置为 1 天(24 小时)。当前可用限制通过_getCurrentLimit
函数动态计算。- 如果自上次使用以来已过去 24 小时(
_DURATION
),限制将自动恢复到完整的maxLimit
。
- 确保限制适合预期的交易量,以防止中断。根据交易量和预期使用模式审查和调整限制。
FiatToken 部署
Warp 路由支持 Circle 的桥接 USDC 作为 FiatToken
的铸造者(有关文档,请参见该仓库)。在 FiatToken
和 MasterMinter
合约中,有三个相关角色:
MasterMinter
所有者是可以设置控制者和铸造者的账户。MasterMinter
控制者是可以为其分配的铸造者设置铸造限制的账户。MasterMinter
铸造者是可以实际调用FiatToken
上的mint
的账户。
所有者和控制者通常应设置为安全多签钱包,以增强安全性,铸造者是本地链上的 Warp 路由合约地址。FiatToken
的铸造限制是绝对的,意味着它们不会自动重置,必要时必须更新。
在 MasterMinter
合约上应设置三个操作以准备使用:
- 移除之前的测试控制者:
- 作为 所有者,通过
removeController(address _controller)
函数 移除之前的测试控制者。
- 设置控制者和铸造者:
- 作为所有者,您应通过
configureController(address controller, address worker)
函数 设置控制者和铸造者。控制者可以与所有者相同,铸造者应为 Warp 路由地址。
- 为铸造者设置铸造限制:
- 作为控制者,您应通过
configureMinter(uint256 _newAllowance)
函数 为铸造者设置铸造限制。此限制不会持续重置,因此可以将其设置为足够大的值(如cast max-uint
),或监控使用情况并相应调整。