usdcx-v1

usdcx-v1 合约实现了 USDC xReserve 协议, 用于在 Stacks 与外部链之间转移 USDC。它作为 基于 Circle 签发的存款意图进行铸造和销毁 USDCx 的主要入口点。 该合约处理: 解析和验证存款意图载荷

恢复并验证 Circle 见证者签名

  • 强制基于随机数的重放防护

  • 通过

  • usdcx

  • 代币合约铸造 USDCx 销毁 USDCx 以启动提现 管理 Circle 见证者密钥

  • 处理 Stacks 特有的接收方转换

  • 为资助的铸造应用费用逻辑

  • 管理最低提现阈值

  • 它与主

  • 代币合约协同工作,该合约强制执行协议角色(

铸造 销毁 USDCx 以启动提现 治理,等等)。所有铸造/销毁均通过, protocol-mintprotocol-burn 进行 铸造 USDCx.

铸造 USDCx 的入口点是通过

函数。调用者提供序列化的存款意图以及签名,这些都是作为桥接过程的离线部分接收的。存款意图根据 xReserve 规范进行解析。 ,等等)。所有铸造/销毁均通过 有一些 Stacks 特有的元素:

存款意图的

  • usdcx-v1 remote-token 必须是 principal 的共识序列化字节,即 .usdcx (部署者地址取决于网络),并在左侧用 0x 填充。

  • usdcx-v1 远程域 对于 Stacks 始终为 10003.

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

验证认证

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

销毁 USDCx

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

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

最后更新于

这有帮助吗?