# @chainlink/ccip-tools-ts 中文文档

规范地址：https://npmcn.com/package/%40chainlink/ccip-tools-ts/

版本：0\.2\.12
npm 元数据更新时间：2025-11-06T12:56:13.149Z
中文译文更新时间：2026-11-09T09:43:23.139Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40chainlink/ccip-tools-ts
原文对照：https://npmcn.com/package/%40chainlink/ccip-tools-ts/?lang=original
项目主页：https://github.com/smartcontractkit/ccip-tools-ts#readme
源码仓库：https://github.com/smartcontractkit/ccip-tools-ts

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

- 包体积（解压后）：3.2 MB，291 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：17 个
- 首次发布：2024-10-31T07:46:28.322Z
- 最新版本发布：2025-11-06T12:56:12.221Z
- 近 30 天下载量：3528（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：18（近 12 个月 0 个）

## 中文简介

与 CCIP 互动的 CLI 和库

## 安装

```sh
npm install @chainlink/ccip-tools-ts
```

也可以使用：`pnpm add @chainlink/ccip-tools-ts`、`yarn add @chainlink/ccip-tools-ts`、`bun add @chainlink/ccip-tools-ts`

## README

# 行动工具

## Typescript CLI和库与CCIP交互.

此工具可用于查询和交互 [中华民国](https://ccip.chain.link/) 已部署的合同 通过其可公开获取的数据和方法.

> \[大 这一工具是在麻省理工学院许可证下提供的,只是为了方便和说明目的.

## 发展

要运行此 repo 命令/ 测试, 请执行以下操作 :

```sh
git clone https://github.com/smartcontractkit/ccip-tools-ts
cd ccip-tools-ts
npm install
./src/index.ts --help  # tsx shebang available
# or
npm run build
./dist/ccip-tools-ts --help  # node shebang script
npx path/to/repo/ccip-tools-ts --help  # or pointing to folder directly
```

> \[注\] 在下面的德文背景中,我们会呼叫 `$cli="./src/index.ts"`

## 区域协调机制

所有命令都要求为感兴趣的网络(源和去向)提供RPC的端点列表. 两者 `http[s]` 财务报告和审定财务报表 `ws[s]` (websocket) URL 支持.

此列表可在命令行中通过 `-r/--rpcs` 选项,并与 从 rpcs 文件中获取的 (`--rpcs-file`默认值=`./.env`)),其中可能包含多个 端点,每行一个,带有任何前缀或后缀(即来自其他工具工作的环境文件, 但环境变量名称被忽略,只使用 URL); ;.txt,.csv甚至.json 阵列应在框外工作.

清单一被收集,我们就连接所有RPC,并用最快的速度为每个网络回复.

## 钱包

需要发送交易的指令试图从一个 `USER_KEY` 环境 变量.

加密钱包json也可以传递到 `--wallet` 选项。 用密码解密 从 `USER_KEY_PASSWORD` 环境变量,或者如果未设定,则以交互方式激发.

此外, `--wallet ledger` (或 `--wallet "ledger:<derivationPath>"`)可用于连接 a 编目设备,使用 `@ledgerhq/hw-app-eth` 图书馆。 衍生路径可以指定,或者 默认为 `m/44'/60'/0'/0/0`。 。 。 .

## 快速命令引用 :

### `show` (默认命令)

```sh
$cli [show] <source_transaction_hash> [--log-index num]
```

无需指定源(网络、链路、链路选择器) 。 此命令尝试每个可用的 RPC 并使用任何响应此交易散列的网络.

如果此交易中有不止一个 CCIP 信件, 则询问用户想要哪个 要知道更多, 在屏幕上有一些基本信息。 这个 `--log-index` 选项允许指定 日志索引非交互式.

如果还有RPC可用, 我们扫描Contital Report中的此请求, 然后执行 收款至a `success` 收据或头被击中.

### `manualExec`

```sh
$cli manualExec <source_transaction_hash> [--gas-limit num] [--tokens-gas-limit num]
```

尝试在源代码交易中手动执行消息 。 如果找到不止一个, 则提示用户 与 `show` 以上指挥.

`--gas-limit` 允许覆盖此信件的执行限制( 在 OffRamp 中, 而非交易 ,), (总算). `--gas-limit=0` 原请求中指定的默认再使用限制 .

`--tokens-gas-limit` 允许超过任何令牌池操作的气体限制.

`--estimate-gas-limit` 选项将尝试自动估计 消息执行,基于网络的当前状态. 这只针对主的 `ccipReceive` 执行回话。 不支持托肯斯气体限制覆盖估计 .

`--sender-queue` 从 并且执行所有符合条件的信息。 默认情况下, 仅待决 包括(未执行)信息. `--exec-failed` 包括失败的消息 。 此选项 需要一些时间,特别是对于更古老的信息,因为它需要扫描源和干网 查找信件及其执行状态.

#### 索拉纳特殊情况

`--solana-force-buffer` 以强制使用一个缓冲器处理太大且无法适应单一交易的信息

`--solana-force-lookup-table` 为信件中使用的所有账户创建一个查询表, 以适合交易

`--solana-cu-limit <compute_units>` 如果默认值不够的话, 将覆盖计算单位值, 这是solana 的特殊参数, 您不能使用覆盖气体

### `send`

```sh
$cli send 11155111 0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59 ethereum-testnet-sepolia-arbitrum-1 \
    --receiver 0xAB4f961939BFE6A93567cC57C59eEd7084CE2131 \
    --data 'hello world' \
    --gas-limit 300000 \
    --fee-token 0x779877A7B0D9E8603169DdbD7836e478b4624789 \
    --transfer-tokens 0xFd57b4ddBf88a4e07fF4e34C487b99af2Fe82a05=0.1
```

从源网络的路由器发送消息到dest;位置参数为:

1.  `source`: 链路或名称
2.  `router`: 来源地址
3.  `dest`: 链路或名称

若为 `--receiver` 中省略,发送到 dest 上的自我(发送)地址(参见 [钱包](https://npmcn.com/package/%40chainlink/ccip-tools-ts/#readme-wallet) 节 (见上文).

若为 `--data` 不是六分弦,它将被UTF-8编码.

若为 `--gas-limit` 省略,则使用坡道默认配置(通常为200k)。 可能是这样 `0`。 。 。 . `--estimate-gas-limit` 也可以提供,以估计消息执行的气体限制. 它得到一个百分率(例如:. `--estimate-gas-limit 10` 10%的比值),加到 发送消息前的估计.

若为 `--fee-token` 省略,CCIP收费将以当地代币支付.

`--transfer-tokens` 可接收多对 `0xTokenAddr=amount` (源代码地址, 以空格分隔,终止于 `--` (如果需要的话). `amount` 将使用符号转换 十进制(如:USDC最小单位的0.1 = 10^5,为6个十进制).

`--allow-out-of-order-exec` 仅可在v1.5+道上使用,并选择退出 _发送者_ `nonce` 顺序 执行。 对于无法保证执行的目的地(例如:zkOverflow)来说是有用的.

### `estimateGas`

```sh
$cli estimateGas 11155111 0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59 ethereum-testnet-sepolia-arbitrum-1 \
    --receiver 0xAB4f961939BFE6A93567cC57C59eEd7084CE2131 \
    --sender 0xEC1062cbDf4fBf31B3A6Aac62B6F6F123bb70E12 \
    --transfer-tokens 0xFd57b4ddBf88a4e07fF4e34C487b99af2Fe82a05=0.1
```

估计消息的气体,与 `send` 命令,但不发送,只是打印 最低 `gasLimit` 执行是成功的.

### 解析字节

```sh
$cli parseBytes 0xbf16aab6000000000000000000000000779877a7b0d9e8603169ddbd7836e478b4624789

Error: EVM2EVMOnRamp_1.2.0.UnsupportedToken(address)
Args: { token: '0x779877A7B0D9E8603169DdbD7836e478b4624789' }
```

试图解析六进制函数 调用数据,错误和还原原因, 因为我们已知的合同.

若为 `--selector <sel>` ,它接收错误、函数或事件名称,4字节用于 错误或函数选择器, 或事件32字节 object/topicHash, 它会尝试解码为 特定碎片。 为了解码事件,需要这样做 `data` 解析为非索引 只有事件参数.

若为 `--selector` 未提供,前4字节将作为错误或函数选择器使用,以及 其余为 `data`。 。 。 .

它会不断解码 `returnData` 财务报告和审定财务报表 `error` 参数.

### `lane`

```sh
$cli lane lane ethereum-mainnet 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D avalanche-mainnet
```

打印道、 OnRamp 和 offRamp 配置用于指定道.

如果省略了第3个参数,第2个参数(地址)应为OnRamp地址.

另外,在出现一些误差时进行一些验证和警告,例如,OnRamp不是 在路由器中注册.

### `getSupportedTokens`

```sh
$cli getSupportedTokens <source> <router> <dest>
```

发现并验证了可以使用CCIP在链条之间转移的符. 该指挥部对跨链符号支持进行全面分析.

#### 参数

-   `source`:源链ID或名称(例如, `ethereum-mainnet`, (中文(简体) ), `1`(中文(简体) )
-   `router`页:1 源链上的路由器合同地址
-   `dest`:目标链ID或名称(例如, `polygon-mainnet`, (中文(简体) ), `137`(中文(简体) )

#### 特征

-   自动集合版本检测
-   自定义集合支持, 并返回到最新的 ABI
-   速率限制配置验证
-   与可配置批量大小平行处理
-   综合错误收集

#### 示例

```sh
# Check tokens supported for transfer from Ethereum to Polygon
$cli --format pretty getSupportedTokens ethereum-mainnet 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D polygon-mainnet
```

#### 输出格式选项

-   `--format pretty` (默认):人可读输出
-   `--format log`: 基本控制台记录
-   `--format json`机器可读 JSON

## 常见问题

### @chainlink/ccip-tools-ts 是什么？

与 CCIP 互动的 CLI 和库

### 如何安装 @chainlink/ccip-tools-ts？

在项目目录运行 npm install @chainlink/ccip-tools-ts，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ccip-tools-ts，可以用 npx ccip-tools-ts 直接运行。

### @chainlink/ccip-tools-ts 支持 TypeScript 吗？

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

### @chainlink/ccip-tools-ts 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @chainlink/ccip-tools-ts 可以商用吗？

@chainlink/ccip-tools-ts 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @chainlink/ccip-tools-ts 的下载量有多少？

根据 npm 官方下载统计，@chainlink/ccip-tools-ts 在 2026/10/10 – 2026/11/08 这 30 天内被下载 3,528 次，日均约 118 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @chainlink/ccip-tools-ts 还在维护吗？

最新版本 0\.2\.12 发布于 2025/11/06（1 年前）；至今共发布 18 个版本，其中过去 12 个月发布了 0 个；首次发布于 2024/10/31。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

