# @allbridge/bridge-core-sdk 中文文档

规范地址：https://npmcn.com/package/%40allbridge/bridge-core-sdk/

版本：3\.38\.0
npm 元数据更新时间：2026-10-29T11:00:12.417Z
中文译文更新时间：2026-11-05T23:02:25.985Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40allbridge/bridge-core-sdk
原文对照：https://npmcn.com/package/%40allbridge/bridge-core-sdk/?lang=original
项目主页：https://github.com/allbridge-io/allbridge-core-js-sdk#readme
源码仓库：https://github.com/allbridge-io/allbridge-core-js-sdk

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

- 包体积（解压后）：21.9 MB，828 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：^20\.19\.0 \|\| \>=22\.12\.0
- 运行依赖：25 个
- 首次发布：2022-10-07T11:59:27.638Z
- 最新版本发布：2026-10-29T11:00:11.889Z
- 近 30 天下载量：10047（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：345（近 12 个月 67 个）

## 中文简介

# **[![](https://allbridge.io/assets/icons/core.svg)](https://core.allbridge.io/)  
**

## 安装

```sh
npm install @allbridge/bridge-core-sdk
```

也可以使用：`pnpm add @allbridge/bridge-core-sdk`、`yarn add @allbridge/bridge-core-sdk`、`bun add @allbridge/bridge-core-sdk`

## README

# **[![](https://allbridge.io/assets/icons/core.svg)](https://core.allbridge.io/)  
**

[**网站**](https://core.allbridge.io/) 二. 支助 [**文档**](https://docs-core.allbridge.io/) 二. 支助 [**SDK TS 医生**](https://bridge-core-sdk.web.app/)

# 全桥核心SDK

为浏览器或节点.js中的DApps提供与Allbridge Core桥的简单集成

## 目录

-   [安装](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-installing)
-   [如何使用](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-how-to-use)
    -   [1\. 初始化SDK实例](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-1-initialize-sdk)
    -   [2\. 获取支持的符号列表](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-2-get-the-list-of-supported-tokens)
    -   [3\. 选择信使](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-3-choose-a-messenger)
        -   [CCTP和CCTP V2](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-cctp-and-cctp-v2)
        -   [办公室](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-oft)
        -   [发觉](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-x_reserve)
        -   [缩略语( N)](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-lifi_intents)
    -   [4.1 批准转让令牌](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-41-approve-the-transfer-of-tokens-only-for-evm-tron)
    -   [4.2 发送托肯斯](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-42-send-tokens)
    -   [完整实例](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-full-example)
-   [其他行动](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-other-operations)
    -   [交易建立器](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-transaction-builder)
        -   [核准交易](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-approve-transaction)
        -   [发送交易](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-send-transaction)
    -   [获取已发送交易的信息](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-get-information-about-sent-transaction)
    -   [计算收费后应收取的代币金额](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-calculating-amount-of-tokens-to-be-received-after-fee)
    -   [计算要发送的令牌数量](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-calculating-amount-of-tokens-to-send)
    -   [获得天然气费](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-getting-the-amount-of-gas-fee)
    -   [获得最大额外气体量](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-getting-the-maximum-amount-of-extra-gas)
    -   [获得平均移交时间](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-getting-the-average-transfer-time)
-   [已知的审计警告](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-known-audit-warning)

## 安装

```bash
$ npm install @allbridge/bridge-core-sdk
```

## 如何使用

### 找出如何整合 Allbridge Core SDK 和浏览器扩展钱包

[_**埃夫姆语Name**_](https://github.com/allbridge-io/allbridge-core-js-sdk/tree/main/documentation/browser/evm.md) [_**索拉纳**_](https://github.com/allbridge-io/allbridge-core-js-sdk/tree/main/documentation/browser/solana.md) [_**斯特拉尔**_](https://github.com/allbridge-io/allbridge-core-js-sdk/tree/main/documentation/browser/stellar.md) [_**龙**_](https://github.com/allbridge-io/allbridge-core-js-sdk/tree/main/documentation/browser/tron.md)

### 1\. 初始化SDK

#### 1) 以节点 Rpc urls (RECOMEND) 初始化 SDK 实例

```ts
import {AllbridgeCoreSdk, nodeRpcUrlsDefault} from "@allbridge/bridge-core-sdk";
// Connections to blockchains will be made through your rpc-urls passed during initialization
const sdk = new AllbridgeCoreSdk({
  ...nodeRpcUrlsDefault,
  TRX: "your trx-rpc-url",
  ETH: "your eth-rpc-url"
});
// Sdk will be using your rpc url for fetch data from blockchain to create tx
const rawTx = await sdk.bridge.rawTxBuilder.send(sendParams);
```

> **苏伊**苏伊完全节点不再服务 JSON -RPC,所以 `SUI` uRL必须是gRPC-web(`sui.rpc.v2`)一个完整节点的基url,例如. `https://fullnode.mainnet.sui.io`。 。 。 .

#### (2) 初始化 SDK 实例( 使用经过的提供者连接区块链)

```ts
import {AllbridgeCoreSdk, nodeRpcUrlsDefault} from "@allbridge/bridge-core-sdk";

const sdk = new AllbridgeCoreSdk(nodeRpcUrlsDefault);
// The Provider parameter must be passed in order for it to be used to connect to the blockchain, for example:
const rawTx = await sdk.bridge.rawTxBuilder.send(sendParams, provider);
```

_**提普:**_ 为(Web3:v1.9.0,tronweb:v4.4.4.0)进行测试和开发,在其他情况下使用方法1

### 2\. 获取支持的符号列表

```ts
const supportedChains = await sdk.chainDetailsMap();
// extract information about ETH chain
const {tokens, chainId, name, oftBridgeAddress} = supportedChains[ChainSymbol.ETH];
// Choose one of the tokens supported on ETH
const usdcOnEthToken = tokens.find(token => token.symbol === 'USDC');
```

每一个符号都作为 `TokenWithChainDetails` 对象。 除了一般符号数据外(`symbol`, (中文(简体) ), `name`, (中文(简体) ), `decimals`, (中文(简体) ), `tokenAddress`它包含一切需要 找出 哪些使者可以发送 标志:

| 外地 | 现时 | 含义 |
| --- | --- | --- |
| `cctpAddress`, (中文(简体) ), `cctpFeeShare` | 符号由 CCTP 支持 | CCTP 桥梁合同地址(核准支出人)和CCTP收费份额 |
| `cctpV2Address`, (中文(简体) ), `cctpV2FeeShare` | 符号由 CCTP V2 支持 | CCTP V2 桥梁合同地址(批准支出者)和CCTP V2 收费份额 |
| `oftId`, (中文(简体) ), `oftBridgeAddress` | oFT 支持符/ 链 | Id 在不同链条上由同一同物共享 OFT桥合同地址 |
| `xReserve` | xReserve 支持符号 | xReserve桥梁合同地址(核准支出人), `feeShare` 财务报告和审定财务报表 `feeConst` |
| `lifiIntents` | 符号在 LI.FI 路线上 | `bridgeAddress` (批准支出者,仅限源链)和 `destinations` |
| `transferTime` | 永远 | 每信使平均向其他链条转移时间 |
| `abrPayer` | 链式支持在 ABR 中支付费用 | ABR 付款人合同地址和每信使可用性 |

### 3\. 选择信使

每一次传输都由被支持的信使之一执行(行距协议). 信使是所有依赖路由的 SDK 方法的要求参数 : `bridge.checkAllowance`, (中文(简体) ), `bridge.rawTxBuilder.approve`, (中文(简体) ), `bridge.rawTxBuilder.send`, (中文(简体) ), `getAmountToBeReceived`, (中文(简体) ), `getAmountToSend`, (中文(简体) ), `getGasFeeOptions`, (中文(简体) ), `getExtraGasMaxLimits` 财务报告和审定财务报表 `getAverageTransferTime`。 。 。 .

| 通讯员 | 议定书 | 当 |
| --- | --- | --- |
| `Messenger.CCTP` | 圆 CCTP | `cctpAddress` 定义在源代码和目的符号上 |
| `Messenger.CCTP_V2` | 圆 CCTP V2 | `cctpV2Address` 定义在源代码和目的符号上 |
| `Messenger.OFT` | 层零 OFT | `oftId` 来源和目的地的符号和 `oftBridgeAddress` 在两个链上定义 |
| `Messenger.X_RESERVE` | x 保存 | `xReserve` 定义在源代码和目的符号上 |
| `Messenger.LIFI_INTENTS` | LI.FI 意图 | 源代码有 `lifiIntents.bridgeAddress` 并列出在 `lifiIntents.destinations` (EVM和索拉纳源链),参见 `isLifiIntentsRouteSupported` |

`Messenger.ALLBRIDGE` 财务报告和审定财务报表 `Messenger.WORMHOLE` 已贬值,不得使用.

```ts
import {isLifiIntentsRouteSupported, Messenger} from "@allbridge/bridge-core-sdk";

function getAvailableMessengers(sourceToken: TokenWithChainDetails, destinationToken: TokenWithChainDetails): Messenger[] {
  const messengers: Messenger[] = [];
  if (sourceToken.cctpAddress && destinationToken.cctpAddress) {
    messengers.push(Messenger.CCTP);
  }
  if (sourceToken.cctpV2Address && destinationToken.cctpV2Address) {
    messengers.push(Messenger.CCTP_V2);
  }
  if (
    sourceToken.oftId &&
    sourceToken.oftId === destinationToken.oftId &&
    sourceToken.oftBridgeAddress &&
    destinationToken.oftBridgeAddress
  ) {
    messengers.push(Messenger.OFT);
  }
  if (sourceToken.xReserve && destinationToken.xReserve) {
    messengers.push(Messenger.X_RESERVE);
  }
  if (isLifiIntentsRouteSupported(sourceToken, destinationToken)) {
    messengers.push(Messenger.LIFI_INTENTS);
  }
  return messengers;
}
```

`getAverageTransferTime` 返回时 `null` 当信使无法在来源链和目的地链之间找到时, 因此,它可以作为额外的检查。 如果选择的路由不支持信使, SDK 方法将丢出 `CCTPDoesNotSupportedError`, (中文(简体) ), `OFTDoesNotSupportedError`, (中文(简体) ), `LifiIntentsDoesNotSupportedError` 或者说 `SdkError` ( 对于xReserve).

_**提普:**_ 详情见 [_**示例**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/get-available-messengers.ts)

#### CCTP和CCTP V2

本地USDC通过 Circle CCTP 传输. 必须批准的桥梁合同是 `token.cctpAddress` (CCTP)或 (中文(简体) ) `token.cctpV2Address` (中文(简体) ). 收费是转移金额的一部分,参见: `token.cctpFeeShare` 编号 : `token.cctpV2FeeShare`· ; 使用情况 [`getAmountToBeReceived`](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-calculating-amount-of-tokens-to-be-received-after-fee) 要得到准确的结果.

实例: [_**EVM (CCTP) (英语)**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/send-by-cctp.ts), (中文(简体) ), [_**EVM( CCTP V2)**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/evm/evm-build-send-tx.ts), (中文(简体) ), [_**EVM(CCTP V2,用稳定币支付的煤气费)**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/evm/evm-build-send-tx-gas-fee-with-stables.ts), (中文(简体) ), [_**索拉纳**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/solana/sol-build-send-tx-cctp.ts), (中文(简体) ), [_**苏**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/sui/sui-build-send-tx.ts)

#### 办公室

通过 LayerZero OFT 传输. 不同链条上的指针由 `token.oftId`。 。 。 . 必须批准的桥梁合同是 `oftBridgeAddress` 源链. 收费份额由Allbridge核心API为线路提供, 使用情况 [`getAmountToBeReceived`](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-calculating-amount-of-tokens-to-be-received-after-fee) 要得到准确的结果.

实例: [_**龙**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/trx/trx-build-send-tx.ts), (中文(简体) ), [_**Tron (用马币支付的天然气费)**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/trx/trx-build-send-tx-gas-fee-with-stables.ts)

#### 发觉

通过xReserve协议进行传输. 路线配置在 `token.xReserve`数字 : `bridgeAddress` 是必须批准的合同, `feeShare` 财务报告和审定财务报表 `feeConst` 说明收费. 由于收费的固定部分,有最低的转账额; `getAmountToBeReceived` 丢出一个 `SdkError` 如果数额太低,则最低数额. 此信使不支持额外的气体 : `getExtraGasMaxLimits` 返回零限制.

实例: [_**堆栈**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/stx/stx-build-send-tx.ts)

#### 缩略语( N)

通过LI.FI的转账 意向,一个解析器市场:信使被锁入源链上的代管和a 解决者在秒内向目的地链上的接收者支付. 原生地代币(如ETH)也可以被寄出. 路线配置在 `token.lifiIntents`数字 : `bridgeAddress` 是全桥 `LifiIntentsBridge` 合同 须经批准(土著标志不需要批准), `destinations` 列出每个链条的目的地符号. Allbridge核心API的市场价格报价 `getAmountToBeReceived` 编号 : `getAmountToSend` 请求引用, `sdk.lifiIntents.getQuote` 与全桥返回 `fee`。 。 。 . 引用错误被键入 : `LifiIntentsAmountTooLowError` (单位:千美元)`minAmount`, (中文(简体) ), `LifiIntentsAmountTooHighError` (单位:千美元)`maxAmount`, (中文(简体) ), `LifiIntentsNoQuoteError` 财务报告和审定财务报表 `LifiIntentsQuoteError`。 。 。 .

订单交易由 Core API 构建,并且是短寿命的(引文对 40-120 s 有效,交易) 在大约10分钟后返回,所以首先批准,然后在签署前立即创建订单:

```ts
const messenger = Messenger.LIFI_INTENTS;
if (!(await sdk.bridge.checkAllowance({token: sourceToken, owner: fromAddress, amount, messenger}))) {
  const rawTransactionApprove = await sdk.bridge.rawTxBuilder.approve({token: sourceToken, owner: fromAddress, messenger});
  // sign and send rawTransactionApprove, wait for it to be mined
}
// creates the order and returns its LifiIntentsBridge call; order.orderId is the transfer id for getTransferStatus
const {rawTransaction, order} = await sdk.lifiIntents.buildSendTransaction({
  amount,
  fromAccountAddress: fromAddress,
  toAccountAddress: toAddress,
  sourceToken,
  destinationToken,
});
// sign and send rawTransaction at once
```

`bridge.rawTxBuilder.send` 与 `Messenger.LIFI_INTENTS` 进行相同的交易,只返回原始交易. 煤气费为零,额外的煤气不受此信使的支持: `getExtraGasMaxLimits` 返回零限制. LI.FI向发送人退还未填单(`getTransferStatus` 报告 `refunded`); Allbridge 收费不退.

索拉纳无需批准: `buildSendTransaction` 返回未签名 `VersionedTransaction` (单位:千美元)`RawBridgeSolanaTransaction`全桥 `lifi-intents-bridge` 以发件人为付费人和新人的程序 blackash, 签个名,马上寄出去. 索拉纳岛上的收件人是钱包(所有者)地址:解决者支付 相关符名账户.

对索拉纳来说,解答者不创建该账户:没有该账户的收款人的命令不会被填充并被退还. 发送前检查, 请收件人先创建账户( 本地的 SOL 传输不需要 ):

```ts
if (!(await sdk.utils.sol.hasTokenAccount(toAddress, destinationToken))) {
  // warn: the recipient has no token account for destinationToken on Solana
}
```

实例: [_**EVM( 视频)**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/evm/evm-build-send-tx-lifi-intents.ts), (中文(简体) ), [_**索拉纳**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/solana/sol-build-send-tx-lifi-intents.ts)

### 4.1 批准转让令牌(仅用于Evm,Tron)

发信人出道前,桥要经批准使用出道人出道的道具. 这是通过建造 `approve` 与 SDK 实例交易. 施花者取取之于使者,故曰:"所取之所取也 `messenger` 需要参数.

由于Ethereum USDT合同的特殊性:  
如果目前的津贴不是0, 3⁄4 ̄ ̧漯b.

```ts
const rawTx = await sdk.bridge.rawTxBuilder.approve({
  token: sourceToken,
  owner: accountAddress,
  messenger: Messenger.CCTP_V2,
});
```

使用 `bridge.checkAllowance` 确定批准是否足够:

```ts
const isApproved = await sdk.bridge.checkAllowance({
  token: sourceToken,
  owner: accountAddress,
  amount: "1.01",
  messenger: Messenger.CCTP_V2,
});
```

### 4.2 发送托肯斯

以 `send` sDK实例中的方法.

```ts
const rawTx = await sdk.bridge.rawTxBuilder.send({
  amount: "1.01",
  fromAccountAddress: fromAddress,
  toAccountAddress: toAddress,
  sourceToken: sourceToken,
  destinationToken: destinationToken,
  messenger: Messenger.CCTP_V2,
});
```

### 完整实例

使用 CCTP V2 从 ETH 链向 ARB 链发送 USDC

```ts
import {
  AllbridgeCoreSdk,
  ChainSymbol,
  Messenger,
  nodeRpcUrlsDefault,
  RawEvmTransaction,
} from "@allbridge/bridge-core-sdk";
import * as dotenv from "dotenv";
// Utils method
// For more details, see Examples (https://github.com/allbridge-io/allbridge-core-js-sdk/tree/main/examples)
// import { getEnvVar } from "../../../utils/env";
// import { sendEvmRawTransaction } from "../../../utils/web3";
// import { ensure } from "../../../utils/utils";

dotenv.config({path: ".env"});

async function runExample() {
  const fromAddress = getEnvVar("ETH_ACCOUNT_ADDRESS"); // sender address
  const toAddress = getEnvVar("ARB_ACCOUNT_ADDRESS"); // recipient address

  const sdk = new AllbridgeCoreSdk({ ...nodeRpcUrlsDefault, ETH: getEnvVar("WEB3_PROVIDER_URL") });

  const chains = await sdk.chainDetailsMap();

  const sourceChain = chains[ChainSymbol.ETH];
  const sourceToken = ensure(sourceChain.tokens.find((tokenInfo) => tokenInfo.symbol === "USDC"));

  const destinationChain = chains[ChainSymbol.ARB];
  const destinationToken = ensure(destinationChain.tokens.find((tokenInfo) => tokenInfo.symbol === "USDC"));

  const amount = "1.01";
  const messenger = Messenger.CCTP_V2;

  //check if sending tokens already approved
  if (!(await sdk.bridge.checkAllowance({ token: sourceToken, owner: fromAddress, amount, messenger }))) {
    // authorize the bridge to transfer tokens from sender's address
    const rawTransactionApprove = (await sdk.bridge.rawTxBuilder.approve({
      token: sourceToken,
      owner: fromAddress,
      messenger,
    })) as RawEvmTransaction;
    const approveTxReceipt = await sendEvmRawTransaction(rawTransactionApprove);
    console.log("Approve tx id:", approveTxReceipt.transactionHash);
  }

  // initiate transfer
  const rawTransactionTransfer = (await sdk.bridge.rawTxBuilder.send({
    amount: amount,
    fromAccountAddress: fromAddress,
    toAccountAddress: toAddress,
    sourceToken: sourceToken,
    destinationToken: destinationToken,
    messenger,
  })) as RawEvmTransaction;
  console.log(`Sending ${amount} ${sourceToken.symbol}`);
  const txReceipt = await sendEvmRawTransaction(rawTransactionTransfer);
  console.log("tx id:", txReceipt.transactionHash);
}

runExample();
```

_**提普:**_ 详情见 [_**实例**_](https://github.com/allbridge-io/allbridge-core-js-sdk/tree/main/examples)

## 其他行动

### 交易建立器

#### 核准交易

SDK 方法 `bridge.rawTxBuilder.approve` 可用于创建批准的交易.

```ts
const rawTransactionApprove = await sdk.bridge.rawTxBuilder.approve(approveParams);
```

#### 发送交易

SDK 方法 `bridge.rawTxBuilder.send` 可用于创建发送交易.

```ts
const rawTransactionSend = await sdk.bridge.rawTxBuilder.send(sendParams);
```

_**提普:**_ 详情见 [\*\*\* 实例 页:1](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/solana/sol-build-send-tx-cctp.ts)

### 获取已发送交易的信息

SDK 方法 `getTransferStatus` 可用于获取有关指使转让的信息.

```ts
const transferStatus = await sdk.getTransferStatus(chainSymbol, txId);
```

### 计算收费后应收取的代币金额

SDK 方法 `getAmountToBeReceived` 可用于计算接收方之后将获得的令牌数量 使用被选中的使者的连接费.

```ts
const amountToBeReceived = await sdk.getAmountToBeReceived(
  amountToSend,
  sourceToken,
  destinationToken,
  Messenger.CCTP_V2
);
```

### 计算要发送的令牌数量

SDK 方法 `getAmountToSend` 可用于根据需要的 接收方应获得的标志.

```ts
const amountToSend = await sdk.getAmountToSend(
  amountToBeReceived,
  sourceToken,
  destinationToken,
  Messenger.CCTP_V2
);
```

_**提普:**_ 详情见 [_**示例**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/calculate-amounts.ts)

### 获得天然气费

SDK 方法 `getGasFeeOptions` 允许获取关于支付燃气费的现有方法的信息, 以及完成目的地链转移所需的天然气费数额. 煤气费在 [发送](https://npmcn.com/package/%40allbridge/bridge-core-sdk/#readme-42-send-tokens) 操作 并且可以用源链的货币、源代码或ABR符号支付 (见 `gasFeePaymentMethod` 内 `SendParams`) (中文(简体) ).

方法返回具有以下属性的对象:

-   土生土长:以源链货币单位计价的天然气费金额(例如:Ethereum的wei).
-   稳定币 : (可选) 燃气费的金额,以来源代币单位为单位计算. 如果该财产不存在,则表明不存在稳定币支付法.
-   abr : (可选) 天然气费,以ABR令牌单位表示. 仅在源链有 `abrPayer` 并且选定的信使可以支付ABR.

```ts
const {native, stablecoin, abr} = await sdk.getGasFeeOptions(
  usdcOnEthToken, // from ETH
  usdcOnArbToken, // to ARB
  Messenger.CCTP_V2
);
console.log(native);
// Output:
// {
//   int: "10000000000000000",
//   float: "0.01" // (0.01 ETH)
// }
console.log(stablecoin);
// Output:
// {
//   int: "10010000",
//   float: "10.01" // (10.01 USDC)
// }
```

### 获得最大额外气体量

额外气体是目的地链通货的又一金额,可以与转账一起交付 (见 `extraGas` 内 `SendParams`. SDK 方法 `getExtraGasMaxLimits` 返回每个气体的最大额外值 气费支付方法,以及可在目的地链上得到的最高金额.

```ts
const extraGasLimits = await sdk.getExtraGasMaxLimits(
  sourceToken,
  destinationToken,
  Messenger.CCTP_V2
);
```

_**提普:**_ 详情见 [_**示例**_](https://github.com/allbridge-io/allbridge-core-js-sdk/blob/main/examples/src/examples/bridge/get-extra-gas-max-limits.ts)

### 获得平均移交时间

SDK 方法 `getAverageTransferTime` 可以用来获得平均时间,以毫秒计 完成一个 以物配主,以物配主, 回返 `null` 如果信使在路线上没有得到支持.

```ts
const transferTimeMs = sdk.getAverageTransferTime(
  sourceToken,
  destinationToken,
  Messenger.CCTP_V2
);
```

### 已知的审计警告

由于依赖 `@solana/web3.js`软件包 `bigint-buffer@1.1.5` 被标记为脆弱. 这种脆弱性在此SDK背景下是无法被利用的,而且没有敏感或用户化的代码依赖于 `bigint-buffer` 直接说.

我们正在监测上游一揽子计划,以便正式解决.

## 常见问题

### 如何安装 @allbridge/bridge-core-sdk？

在项目目录运行 npm install @allbridge/bridge-core-sdk，或使用 pnpm add / yarn add / bun add。

### @allbridge/bridge-core-sdk 支持 TypeScript 吗？

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

### @allbridge/bridge-core-sdk 支持 ESM 还是 CommonJS？

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

### @allbridge/bridge-core-sdk 需要什么版本的 Node\.js？

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

### @allbridge/bridge-core-sdk 可以商用吗？

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

### @allbridge/bridge-core-sdk 的下载量有多少？

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

### @allbridge/bridge-core-sdk 还在维护吗？

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

