# @axelar-network/axelar-cgp-solidity 中文文档

规范地址：https://npmcn.com/package/%40axelar-network/axelar-cgp-solidity/

版本：6\.5\.0
npm 元数据更新时间：2026-08-12T11:00:45.172Z
中文译文更新时间：2026-11-07T14:25:24.769Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40axelar-network/axelar-cgp-solidity
原文对照：https://npmcn.com/package/%40axelar-network/axelar-cgp-solidity/?lang=original
项目主页：https://github.com/axelarnetwork/axelar-cgp-solidity#readme
源码仓库：https://github.com/axelarnetwork/axelar-cgp-solidity

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

- 包体积（解压后）：1.1 MB，178 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：1 个
- 首次发布：2022-03-23T18:21:36.638Z
- 最新版本发布：2026-08-12T11:00:44.739Z
- 近 30 天下载量：19459（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：24（近 12 个月 1 个）

## 中文简介

EVM 阿克塞尔网络智能合同

## 安装

```sh
npm install @axelar-network/axelar-cgp-solidity
```

也可以使用：`pnpm add @axelar-network/axelar-cgp-solidity`、`yarn add @axelar-network/axelar-cgp-solidity`、`bun add @axelar-network/axelar-cgp-solidity`

## README

# Axelar跨链网关协议固态性实施

## 议定书概览

Axelar是一个分散的互操作网络,通过一套通用协议和API连接所有区块链,资产和app. 它建在宇宙SDK上方 用户/应用程序可以使用Axelar网络在任何Cosmos和EVM链之间发送令牌. 他们也可以 在 EVM 链之间发送任意信息.

Axelar网络的分散验证器确认EVM链上排放出的事件(如存款确认和发送信息), 并签署(通过自动服务)提交网关智能合同的命令(如铸造信使和批准目的地信息).

见 [这个医生](https://npmcn.com/package/%40axelar-network/axelar-cgp-solidity/DESIGN.md) 为更多的设计信息.

## 构建

我们建议使用最新的节点 [LTS 版本](https://nodejs.org/en/about/releases/)。 。 。 .

```bash
npm ci

npm run build

npm run test
```

预编译字节代码可见于 [释放](https://github.com/axelarnetwork/axelar-cgp-solidity/releases)。 。 。 . 此外,预先编译的字节码和ABI在 [npm 软件包](https://www.npmjs.com/package/@axelar-network/axelar-cgp-solidity) 并可通过下列方式导入:

```bash
npm i @axelar-network/axelar-cgp-solidity
```

```javascript
const IAxelarGateway = require('@axelar-network/axelar-cgp-solidity/artifacts/interfaces/IAxelarGateway.json');

const AxelarGateway = require('@axelar-network/axelar-cgp-solidity/artifacts/contracts/AxelarGateway.sol/AxelarGateway.json');
```

## 部署合同

见Axelar合同部署 [仓库](https://github.com/axelarnetwork/axelar-contract-deployments) 用于相关部署/升级脚本:

1.  [网关部署](https://github.com/axelarnetwork/axelar-contract-deployments/tree/main/evm#axelargateway)
2.  [网关升级](https://github.com/axelarnetwork/axelar-contract-deployments/tree/main/evm#gateway-upgrade)
3.  [天然气服务部署和升级](https://github.com/axelarnetwork/axelar-contract-deployments/tree/main/evm#axelargasservice)

## 实时网络测试

1.  检查合同部署仓库是否支持您将要使用的链条 。 可找到支持的链条 [这里](https://github.com/axelarnetwork/axelar-contract-deployments/tree/main/axelar-chains-config)。如果链条没有支持,请进入步骤2-4,否则可以跳过步骤5.
2.  合同部署的导航 [这里](https://github.com/axelarnetwork/axelar-contract-deployments/) 并本地复制仓库.
3.  在合同部署内重播,编辑其中的环境特定文件 `axelar-chains-config/info` 要添加您将要测试的链条的文件夹 。 需要提供以下数值:

```json
{
    "chains": {
        "example": {
            "name": "Example",
            "axelarId": "example",
            "chainId": 123,
            "rpc": "PROVIDER_RPC",
            "tokenSymbol": "EXM",
            "gasOptions": {
                "gasLimit": 8000000
            },
            "confirmations": 1
        }
    }
}
```

`gasLimit` 超接会跳过汽车气体估计(对于某些txs,在某些链条上可能不可靠). `confirmations` 表示等待的块确认数. `axelarId` 是Axelar上用来引用链条的唯一标识.

4.  回到原点 `axelar-cgp-solidity` 仓库。 之后,在这个寄存器的根目录中,导航到 `hardhat.config.js` 文件并修改链导入行如下:

```javascript
const chains = require(`/path/to/axelar-contract-deployments/axelar-chains-config/info/${env}.json`);
```

5.  创建一个 `keys.json` 包含用于测试的账户私钥的文件。 一些测试,例如: `AxelarGateway` 测试,您至少需要提供 **两个私钥** (你可以参考 [测试](https://github.com/axelarnetwork/axelar-cgp-solidity/blob/d0c040330d7498d52dee7eedbebf2aefeb5c87fb/test/BurnableMintableCappedERC20.js#L22) (d) 寻找所需账户的数目。 此时此刻 `keys.json` 文件应该与下面的示例文件相类似( e)`chains` 可留空 :

```json
{
    "chains": {},
    "accounts": ["PRIVATE_KEY1", "PRIVATE_KEY2"]
}
```

6.  保证您对应提供的私人密钥的账户在链条上有足够的气体符号 .
7.  运行

```bash
npm ci

npx hardhat test --network example
```

8.  要运行特定测试,您可以通过添加来修改测试脚本 `.only` 改为 `describe` 和(或) `it` 如下所示的块或 grep 特定测试名称 :

```javascript
describe.only();
it.only();
```

应该检查两个基本测试组的EVM兼容链:

```bash
npx hardhat test --network example --grep 'AxelarGateway'
npx hardhat test --network example --grep 'RpcCompatibility'
```

## 调试步骤

-   明确通过 `getGasOptions()` 使用 utils.js 文件进行一些小交易。 参见以下代码

```javascript
await sourceChainGateway
    .execute(
        await getSignedWeightedExecuteInput(await getTokenDeployData(false), [operatorWallet], [1], 1, [operatorWallet]),
        getGasOptions()
    )
    .then((tx) => tx.wait(network.config.confirmations));
```

-   使用最新的和快的rpc可以帮助测试执行运行时间. 确保不超过 rpc 的利率限制 .
    
-   确保用于广播交易的账户有足够的本土余额。 最大值 `gasLimit` 对于链条,应该从探索者取出并将其设置在配置文件中。 您可能需要更新 `confirmations` 将交易成功包含在配置中的块中 [这里](https://github.com/axelarnetwork/axelar-contract-deployments/tree/main/axelar-chains-config/info) 取决于网络.
    
-   请注意,某些测试可能需要多达3个账户.
    
-   如果以前的交易没有被查封,并且被查封,交易就可能失败,因此在广播后等待交易被查封。 参见以下代码
    

```javascript
await testToken.mint(userWallet.address, 1e9).then((tx) => tx.wait(network.config.confirmations));

// Or

const txExecute = await interchainGovernance.execute(commandIdGateway, governanceChain, governanceAddress, payload, getGasOptions());
const receiptExecute = await txExecute.wait(network.config.confirmations);
```

## 示例流量

见Axelar [实例](https://github.com/axelarnetwork/axelar-examples) 具体的例子.

### 调试

1.  设置: 托肯的包裹版本 `A` 已部署(`AxelarGateway.deployToken()`(中文(简体) ) 每个非本地EVM链作为 ERC-20 令牌(`BurnableMintableCappedERC20.sol`) (中文(简体) ).
2.  鉴于目的地链和地址,Axelar网络生成一个存款地址(地址: `DepositHandler.sol` 已经部署, `BurnableMintableCappedERC20.depositAddress()`)在源EVM链上.
3.  用户发送其代号 `A` 在那个地址,押金合同把信使锁入网关(或烧为包裹信使).
4.  Axelar 网络验证器确认押金 `Transfer` 使用源链的 RPC 节点( 使用多数表决).
5.  Axelar网络准备一个薄荷命令 验证器在上面签名.
6.  现在通过任何外部中继器向目的地链上的网关合同提交已签名的命令 `AxelarGateway.execute()`。 。 。 .
7.  网关合同认证命令,以及 `mint`'是所包裹的托肯的指定数量' `A` 到目的地地址.

### 跨链智能合同呼叫

1.  设置 :
    1.  目标合同执行 `IAxelarExecutable.sol` 接口以接收消息.
    2.  如果发送了信号,源合同需要调用 `ERC20.approve()` 事先允许网关合同 以转移指定的 `amount` 代表发件人/来源合同.
2.  关于源链呼叫的智能合同 `AxelarGateway.callContractWithToken()` 与目的地链/地址, `payload` 和标志.
3.  外部服务商店 `payload` 在常规数据库中,按 `hash(payload)`任何人都可以问.
4.  类似上述,Axelar验证器确认 `ContractCallWithToken` 活动.
5.  阿克塞尔网络准备 `AxelarGateway.approveContractCallWithMint()` 命令,由验证者签名.
6.  交给目的地网关合同, 记录批准 `payload hash` 并发布事件 `ContractCallApprovedWithMint`。 。 。 .
7.  任何外部中继器服务都会在网关合同中收听此事件,并呼叫 `IAxelarExecutable.executeWithToken()` 目标合同,与 `payload` 和其他数据作为参数.
8.  `executeWithToken` 核实合同召见是否确实得到 `AxelarGateway.validateContractCallAndMint()` 在网关合同.
9.  作为其中的一部分,网关合同记录了目的地地址验证了批准,不允许重放.
10.  目的地合同使用 `payload` 因为它自己的应用.

## 参考资料

网络资源 : [https://docs.axelar.dev/resources (中文(简体) )](https://docs.axelar.dev/resources)

部署的合同: [https://docs.axelar.dev/resources/mainnet 互联网档案馆的存檔,存档日期2013-12-21](https://docs.axelar.dev/resources/mainnet)

一般信件传用 : [https://docs.axelar.dev/dev/gmp 页面存档备份,存于互联网档案馆](https://docs.axelar.dev/dev/gmp)

实例 : [https://app.squidrouter.com (中文(简体) )](https://app.squidrouter.com/)

Axelar网络的EVM模块,为网关准备命令: [https://github.com/axelarnetwork/axelar-core/blob/main/x/evm/keepers/msg server.go. 互联网档案馆的存檔,存档日期2014-12-21](https://github.com/axelarnetwork/axelar-core/blob/main/x/evm/keeper/msg_server.go)

## 常见问题

### @axelar-network/axelar-cgp-solidity 是什么？

EVM 阿克塞尔网络智能合同

### 如何安装 @axelar-network/axelar-cgp-solidity？

在项目目录运行 npm install @axelar-network/axelar-cgp-solidity，或使用 pnpm add / yarn add / bun add。

### @axelar-network/axelar-cgp-solidity 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/axelar-network\_\_axelar-cgp-solidity 是否存在。

### @axelar-network/axelar-cgp-solidity 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @axelar-network/axelar-cgp-solidity 需要什么版本的 Node\.js？

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

### @axelar-network/axelar-cgp-solidity 可以商用吗？

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

### @axelar-network/axelar-cgp-solidity 的下载量有多少？

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

### @axelar-network/axelar-cgp-solidity 还在维护吗？

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

