@anywalletkit/protocol-swap2-cctp 页面存档备份,存于互联网档案馆
圆 CCTP V2 作为交换2提供者: eVM 链之间的原生USDC 燃烧和薄荷 - 没有传播,没有 聚合费; 快速转账费用, 收费圈每对公布( 大约) 1 bps),"标准"是免费的并等待源终局.
安装
npm install @anywalletkit/protocol-swap2-cctp @anywalletkit/core
# or: pnpm add @anywalletkit/protocol-swap2-cctp @anywalletkit/core · yarn add @anywalletkit/protocol-swap2-cctp @anywalletkit/core
时间: @anywalletkit/protocol-swap2-cctp 页面存档备份,存于互联网档案馆发表于 发布工作流程 与出处.
CCTP为 两相。 。 。 . depositForBurn 在源链上燃烧USDC;
Circle的证明服务 在信息上签名; receiveMessage(message, attestation) 目的地薄荷——第二笔交易是
用户自己的,支付在目的地链的气体。 交换2引擎学到了
此套件 :
import {cctpProvider} from "@anywalletkit/protocol-swap2-cctp/provider";
import {RouterSwap2Protocol} from "@anywalletkit/protocol-swap2-router/swap2/router";
const swap2 = new RouterSwap2Protocol(baseAccount, {fromChain: "eip155:8453", providers: [cctpProvider({rpcUrls})]});
const res = await swap2.swap2({fromToken: "USDC", toToken: "USDC", toChain: 42161, fromTokenAmount: 10_000_000n, minAmountOut: 9_998_570n});
// … poll …
const status = await swap2.getSwap2Status(res.id); // "pending" → "action-required" once Circle attested
if (status.status === "action-required") {
const claimed = await swap2.claimSwap2(res.id, arbitrumAccount); // receiveMessage on Arbitrum, signed there
await swap2.getSwap2Status(claimed.id); // this id carries the claim hash and, once the account saw it succeed, "completed" even without an Arbitrum RPC
}
claimSwap2(id, destinationAccount) 在每个互换2协议(路由器或
单一提供者; 提供者选择使用 buildClaim(ref),返回
目的地交易或 null 并等待证明.
IntentStatus.claim = {chain, ready} 告诉哪一个应用程序 将索赔链
继续生活 远程提供者把它当作 claim 行动.
引擎只向供应商申报的连锁合同提出索赔
(单位:千美元)claimTargets; CCTP: 其信件传输器),并拒绝移动
账户的代号或发放津贴。 远程分机从应用程序中取出名单,
从未从服务器 :
remoteProvider({name: "cctp", baseUrl, ...cctpPins}) // cctpPins from this package: TokenMessenger + MessageTransmitter
cctpPins 也把烧伤钉住:托肯信使是源腿可能发出的唯一合同
核准,以及 cctpVerifyQuote 解码服务器的 depositForBurn 设备上的输入
数量、目的域、收件人为 mintRecipient,来源 USDC,无目的地
打电话者,还有 maxFee 留下了引用的最低限度。 没有了钉子,引擎就拒绝了杆子
EVM路线.
提供商做什么
- 模式
auto(默认)当对子提供和Circle's 快速津贴包括金额,其他标准;fast编号 :standard部队 一个 收费来自GET /v2/burn/USDC/fees/{src}/{dst}(bps), 缩写 津贴从GET /v2/fastBurn/USDC/allowance。 。 。 . - 产出得到保证数字 :
maxFee在调用数据中=公布收费+10% 缓冲( e)feeBufferPct),圆最多可以扣除maxFee;引文为minDestAmount实值amount − maxFee未使用的缓冲器从不充电. - Calldata 在引用中被封存 (原始内容存档于2013-10-12) (原始内容存档于2013-03-13). Environment, 原产地USDC of the source
域,目标域,
maxFee和发动机 准确执行;approvalAddress是 TokenMessenger V2 的密码. - 携带RPC飞行前 (单位:千美元)
rpcUrls: TokenMessengerV2 调用数据 目标必须指向预期的Message TransmitterV2,其localDomain()必须是源域,并且getMinFeeAmount(amount)必须适合maxFee。如果没有RPC,则跳过链上检查. - 跟踪数字 :
GET /v2/messages/{src}?transactionHash=→pending时 累积确认数,action-required一次status: complete与 证明,completed一经目的地usedNonces(nonce)已经设定. 没有目的地链rpcUrls, (中文(简体) ),completed来源于代码claimSwap2返回目标账户时waitForTransaction认为索赔是成功的(见e/cn.4/destTxConfirmed: 一个成功的receiveMessage实值 薄荷,因为一旦使用无花果,薄荷就会还原pending,随着散列在destTxHash。目的地 RPC 不 显示已确认索赔的薄荷, 内容为pending没有action-required。 。 。 . - 索赔数字 :
receiveMessage(message, attestation)目标 Message TransmitterV2; 经认证的消息必须属于路由 区域。 已过期的快件( E)expirationBlock发送到POST /v2/reattest/{nonce}并报告尚未准备好,直到圆形重新签名. - 域数: 17 EVM连锁店(Etheum, Avalanche, OP, Arbitrum, Base,,) :, 多边形、单链、线条、索尼克、世界链、莫纳德、塞克、HyperEVM、墨水、, Plume, Plasma, X 图层), 相同的TokenMessengerV2 / Message TransmitterV2 打开 每一个领域 本地语言 (原始内容存档于2017-03-13). USDC. 其目录的链条 不拒绝 Circle (BSC, Gnosis USDC.e) 。 索拉纳(领域5)不是 在此执行 : 引擎只运行 EVM 上的调用数据 .
测试
pnpm test ——供应商在假圆API上进行测试+假JSON-RPC(收费)
数学、调用数据绑定、模式倒置、飞行前拒绝、整个
诉讼要求 完成寿命周期、索赔楼、期满/
和符合性套房;发动机的 claimSwap2 拥有
自己的测试在 protocol-swap2-core。 。 。 . pnpm verify:live 引用 USDC 基数 +
在两种模式中对阵现场API和Base上的预飞进行Arbitrium 10.
状态
2026-10-10:已建成,测试绿色,活出引号+飞行前核实. 无资金 (计划:10美元 USDC Base = 仲裁、快速和标准 (电话).
活动
describeActivity(tx, ctx) (关于提供者;协议类和路由器)
cCTP V2 中每个域的转移量的一半
config.ts,通过合同+4字节选择器:
| 打电话 | 合同 | 仁爱 | 标题 |
|---|---|---|---|
depositForBurn(uint256,uint32,bytes32,address,bytes32,uint256,uint32) 0x8e0250ee | 脚本信使V2 | bridge | "Bridged USDC" (美国美联储) |
receiveMessage(bytes,bytes) 0x57ecfd28 | 信件传输器V2 | bridge | "通过CCTP收到USDC" |
资产来自所有者的净转移(烧毁后留下钱包
薄荷落在 mintRecipient 即使中继器支付了索赔要求).
字幕 CCTP · <chain>,对应方 = 合同被调用。 另一条腿
散列只通过工具箱的意向日记 / Circle的 API 证明而得名,
这样 related 保持空闲。 装入 fixtures/activity/ 公诸于世
交易(两个烧伤,两个索赔)加负数(一个LI.FI桥,一个THORChain)
押金); 套装套装套装 describeActivity。 。 。 .