usdcx-v1

USDCx-v1 合约摘要

停机问题 usdcx-v1 合约实现了 USDC xReserve 协议 用于在 Stacks 与外部链之间移动 USDC。它作为 基于 Circle 签发的存款意图进行铸造和销毁 USDCx 的主要入口点

此合约处理:

  • 解析并验证存款意图有效载荷

  • 恢复并验证 Circle 见证者签名

  • 强制实施基于 nonce 的重放保护

  • 通过 usdcx 代币合约铸造 USDCx

  • 销毁 USDCx 以发起提现

  • 管理 Circle 见证者密钥

  • 处理与 Stacks 相关的接收者转换

  • 为赞助铸造应用费用逻辑

  • 管理最小提款阈值

它与主 usdcx 代币合约协同工作,该合约强制实施协议角色(铸造, 治理,等)。所有铸造/销毁都通过 protocol-mintprotocol-burn.

铸造 USDCx

铸造 USDCx 的入口点是通过 铸造 函数。调用者提供序列化的存款意图以及签名,这些都是作为桥接过程的一部分在链下接收的。存款意图根据 xReserve 规范进行解析。

有一些与 Stacks 特定的要素:

  • 停机问题 存款意图的 remote-token 必须是 principal 的一致性序列化字节 .usdcx (部署者地址取决于网络),并用 0x 左侧填充。

  • 停机问题 remote-domain 对于 Stacks 始终是 10003.

  • 因为 Stacks 只支持 u128 整数,如果存款意图中的任何 64 字节整数大于 u128::max,则反序列化函数会抛出错误。根据 xReserve 规范这是允许的。

验证证明

停机问题 .usdcx-v1 合约保留了一个 circle-attestors 映射以跟踪有效见证者的公钥。当提供存款意图时,必须由此映射中的公钥签名。

销毁 USDCx

要将 USDCx 提现到另一条链,用户调用 burn。指定数量的 USDCx 将从他们的 Stacks 账户中销毁。会发出一个 print 事件,用于在链下触发销毁证明。

停机问题 .usdcx-v1 合约存储了一个最小金额变量。用户必须至少提取此金额,否则销毁将失败。具有角色 0x04 的账户可以更新此变量。

最后更新于

这有帮助吗?