# @anywalletkit/protocol-swap2-cctp 中文文档

规范地址：https://npmcn.com/package/%40anywalletkit/protocol-swap2-cctp/

版本：0\.5\.1
npm 元数据更新时间：2026-11-05T12:22:51.947Z
中文译文更新时间：2026-11-06T21:34:41.499Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40anywalletkit/protocol-swap2-cctp
原文对照：https://npmcn.com/package/%40anywalletkit/protocol-swap2-cctp/?lang=original
项目主页：https://docs.anywallet.tech/
源码仓库：https://github.com/ultratestbro/anywalletkit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：352 kB，42 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：3 个
- peer 依赖：@anywalletkit/core 0\.8\.0
- 首次发布：2026-10-24T18:41:53.112Z
- 最新版本发布：2026-11-05T12:22:51.641Z
- 近 30 天下载量：2313（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

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

## 安装

```sh
npm install @anywalletkit/protocol-swap2-cctp
```

也可以使用：`pnpm add @anywalletkit/protocol-swap2-cctp`、`yarn add @anywalletkit/protocol-swap2-cctp`、`bun add @anywalletkit/protocol-swap2-cctp`

## README

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

[![npm](https://img.shields.io/npm/v/@anywalletkit/protocol-swap2-cctp?label=npm)](https://www.npmjs.com/package/@anywalletkit/protocol-swap2-cctp)

[圆 CCTP V2](https://developers.circle.com/cctp) 作为交换2提供者: eVM 链之间的原生USDC **燃烧和薄荷** - 没有传播,没有 聚合费; 快速转账费用, 收费圈每对公布( 大约) 1 bps),"标准"是免费的并等待源终局.

## 安装

```sh
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 页面存档备份,存于互联网档案馆](https://www.npmjs.com/package/@anywalletkit/protocol-swap2-cctp)发表于 [发布工作流程](https://github.com/ultratestbro/anywalletkit/blob/main/RELEASING.md) 与出处.

CCTP为 **两相**。 。 。 . `depositForBurn` 在源链上燃烧USDC; Circle的证明服务 在信息上签名; `receiveMessage(message, attestation)` 目的地薄荷——第二笔交易是 用户自己的,支付在目的地链的气体。 交换2引擎学到了 此套件 :

```ts
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: 其信件传输器),并拒绝移动 账户的代号或发放津贴。 远程分机从应用程序中取出名单, 从未从服务器 :

```ts
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`。 。 。 .

## 常见问题

### @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 和提交记录判断。

