@anywalletkit/protocol-swap2-cctp

中文文档
0.5.1发布于 2026/11/05Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 2313

Circle CCTP V2 为互换2引擎:EVM链之间由燃烧-和-薄荷(Fast Transfer or-mint),通过Circle's Iris API的证明,与用户自己的收发Message索赔进行两相交接. 与Circle的有案可查的合同

中文使用文档
文档目录5 节
  1. 安装
  2. 提供商做什么
  3. 测试
  4. 状态
  5. 活动

@anywalletkit/protocol-swap2-cctp 页面存档备份,存于互联网档案馆

npm

圆 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脚本信使V2bridge"Bridged USDC" (美国美联储)
receiveMessage(bytes,bytes) 0x57ecfd28信件传输器V2bridge"通过CCTP收到USDC"

资产来自所有者的净转移(烧毁后留下钱包 薄荷落在 mintRecipient 即使中继器支付了索赔要求). 字幕 CCTP · <chain>,对应方 = 合同被调用。 另一条腿 散列只通过工具箱的意向日记 / Circle的 API 证明而得名, 这样 related 保持空闲。 装入 fixtures/activity/ 公诸于世 交易(两个烧伤,两个索赔)加负数(一个LI.FI桥,一个THORChain) 押金); 套装套装套装 describeActivity。 。 。 .

版本与发布记录

@anywalletkit/protocol-swap2-cctp 共发布 14 个版本,首次发布于 2026/10/25;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.5.1latest2026/11/052 天前
0.5.02026/11/034 天前
0.4.02026/10/308 天前
0.3.12026/10/309 天前
0.3.02026/10/2910 天前
0.2.12026/10/2811 天前

关于 @anywalletkit/protocol-swap2-cctp 的常见问题

@anywalletkit/protocol-swap2-cctp 是什么?

Circle CCTP V2 为互换2引擎:EVM链之间由燃烧-和-薄荷(Fast Transfer or-mint),通过Circle's Iris API的证明,与用户自己的收发Message索赔进行两相交接. 与Circle的有案可查的合同

如何安装 @anywalletkit/protocol-swap2-cctp?

在项目目录运行 npm install @anywalletkit/protocol-swap2-cctp,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@anywalletkit/core(0.8.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@anywalletkit/protocol-swap2-cctp 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@anywalletkit/protocol-swap2-cctp 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@anywalletkit/protocol-swap2-cctp 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@anywalletkit/protocol-swap2-cctp 可以商用吗?

@anywalletkit/protocol-swap2-cctp 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@anywalletkit/protocol-swap2-cctp 的下载量有多少?

根据 npm 官方下载统计,@anywalletkit/protocol-swap2-cctp 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,313 次,日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@anywalletkit/protocol-swap2-cctp 还在维护吗?

最新版本 0.5.1 发布于 2026/11/05(2 天前);至今共发布 14 个版本,其中过去 12 个月发布了 14 个;首次发布于 2026/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。