# @debridge-finance/solana-contracts-client 中文文档

规范地址：https://npmcn.com/package/%40debridge-finance/solana-contracts-client/

版本：6\.2\.1
npm 元数据更新时间：2026-10-06T19:08:34.935Z
中文译文更新时间：2026-11-11T18:49:22.770Z
软件包许可：GPL-3\.0-only

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

原始 npm 页面：https://www.npmjs.com/package/%40debridge-finance/solana-contracts-client
原文对照：https://npmcn.com/package/%40debridge-finance/solana-contracts-client/?lang=original
项目主页：https://debridge.finance/
源码仓库：https://github.com/debridge-finance/solana-contracts-client

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

- 包体积（解压后）：1.8 MB，185 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：8 个
- peer 依赖：buffer 6\.0\.3，@solana/web3\.js ^1\.95\.2，@coral-xyz/anchor ^0\.31\.1，@solana/buffer-layout ^4\.0\.0，@solana/buffer-layout-utils ^0\.2\.0，@debridge-finance/solana-utils ^6\.0\.0，@debridge-finance/debridge-external-call ^2\.0\.0
- 首次发布：2022-11-23T19:42:51.674Z
- 最新版本发布：2026-10-05T14:19:43.203Z
- 近 30 天下载量：12688（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：60（近 12 个月 3 个）

## 中文简介

[文档](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/README.md)

## 安装

```sh
npm install @debridge-finance/solana-contracts-client
```

也可以使用：`pnpm add @debridge-finance/solana-contracts-client`、`yarn add @debridge-finance/solana-contracts-client`、`bun add @debridge-finance/solana-contracts-client`

## README

[文档](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/README.md)

## 客户端输入

由于 js 不支持 async 构造器,我们必须初始化客户端对象 `const client = new DeBridgeSolanaClient()` 然后等待它初始化`await client.init()`) - 装入程序状态等... 初始化后,我们可以从块链中请求数据并构建交易

### 如何包装 Sol- > WSol( SPL- Sol)

我们不能寄出原生的 SOL 标志,我们需要先将其包装为 SPL-token 形式(`SystemProgram.createAccount` + 键 `SystemProgram.transfer` 本地 sol 创建账户 + `TokenProgram.InitializeAccount` 将系统账户转换为符号账户(SPL-wallet)。 如果我们不想创造新的钱包 我们可以打电话 `SystemProgram.transfer` 接下来 `TokenProgram.SyncNative` 转换为 SPL- Sol

### 如何从索拉纳送信给其他区块链?

1.  检查用户关联的钱包是否存在, 且用户有困难的令牌 。 我们可以把所有用户的钱包都拿来 [`getAllWalletsWithBalances`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#getallwalletswithbalances)
2.  检查是否支持链条 - 我们不能从索拉纳发送到不支持的链条, 因此 `chainSupportInfo` 必须存在和在 `Supported` 状态,参见 [`getChainSupportInfoSafe`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#getchainsupportinfosafe) 详情
3.  检查桥是否存在( SPL- tokens通过 **发送** 桥,去Asset通过 **薄荷** 100%存在的桥梁)和 **工作** 状态 - 如果桥不存在, 我们就不能发送符号, 我们需要先进入桥( 见桥初始化 - > send) 。 我们可以检查是否有桥 与得到BridgeBy DeBridgeId
4.  \[可选 如果我们想用我们送来的资产支付费用 我们需要设定 `useAssetFee` 标记为真并检查是否 **桥接信息** 使用 [`isBridgeFeeInfoInitialized`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#isbridgefeeinfoinitialized)如果 **桥接信息**\-==YTET -伊甸园字幕组=- 翻译: **桥接信息**。 。 。 .
5.  \[可选 如果我们想要通过一些额外的数据(外部调用数据),我们有两个选项 - 设置 SEND HASHED 旗和在链外通过外部调用数据(保存气体但自动执行不可用) 或将外部调用数据保存到与发送交易相关的特别索拉纳账户(外部CallStorage)
    -   _调用快捷流_ - 我们需要通过外部呼叫快捷键(`keccak256(ext call data)`)和用第4位(8)设置的旗帜来发送 - > resultParams
    -   _调用流量_ - 看见没 [外部调用准备部分](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/#readme-external-call-data-preparation)
6.  发送! 如果我们有折扣,我们想通过它 `send` {\\fn华文楷体\\fs20\\bord1\\shad1\\1che0e0e0\\2ch000000}要不然就需要去取相機去取相機了 **无贴现** 账户(但) [`buildSendInstruction`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#buildsendinstruction) 计算引擎盖下的所有账户。 我们还需要指定我们想要使用的钱包(用户可能拥有多个钱包,与同一枚硬币相关),执行费是对目标链中自动索赔的奖励

### 如何从其他区块链向索拉纳索要代币

1.  检查链条是否被支持 - 我们不能从无支持的链条中声称,因此 `chainSupportInfo` 必须存在和在 `Supported` 状态,参见 [`getChainSupportInfoSafe`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#getchainsupportinfosafe) 详情
2.  检查桥是否存在 - [`getBridgeByDeBridgeId`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#getbridgebydebridgeid) (资产索赔通过 **发送** 桥梁,资产通过 **薄荷**和在 **工作** 状态 - 如果桥不存在, 我们就不能发送符号, 我们需要先输入桥( 见桥初始化- > mint) .
3.  请检查access-date=中的日期值 (帮助) [`isSubmissionUsed`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#issubmissionused)
4.  从验证器存储确认 `storeConfirmations` 指令(一项交易最多可存储6个签名),可使用 [`buildStoreSignaturesTransaction`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#buildstoresignaturestransaction),这些交易可以批发方式签名和发送.
5.  \[可选 如果我们有外部呼叫数据,我们需要检查SEND HASHED FLAG是否设定了. 如果国旗没有设定, 我们需要填充外部呼叫集
    -   _调用流量_ - 看见没 [外部调用准备部分](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/#readme-external-call-data-preparation)
6.  第1、第2和第3步的所有检查都可以自动进行,并具有功能 [`checkClaimParams`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#checkclaimparams) - 检查是否尚未要求提交,检查桥梁平衡、检查链式支持Info和Bridge.
7.  请求! 打电话 `claim` 以 [`buildClaimTransaction`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#buildclaimtransaction) 保存所有签名后 - 此选项可以检查 [`isTransactionConfirmed`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#istransactionconfirmed) 或者说 [`getConfirmationsCount`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#getconfirmationscount)
8.  \[备选\]如果存在外部呼叫,我们需要执行它, 我们可以通过呼叫执行它们 `buildOptimalExecuteExternalCallTransaction`。此函数试图通过尽可能多地执行外部指令来构建 tx 。 在外部调用执行之前需要调用 .

### 外部调用数据准备

由于Solana的交易大小限制为1232字节,我们不能将所有外部呼叫数据存储在单笔交易中,因此我们需要将数据分成块并在不同的交易中发送一堆块. 我们要打电话 [`initExternalCallStorage`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#buildinitexternalcallinstruction) 指令( storageKey = 外部调用快捷键 - **索赔**/ extCallShortcut - - - - - - — — — — — — — — — — — — — **发送**,外部调用长度=外部调用数据长度,源链 id=源链 - **索赔**索拉纳 id - **发送**) 分配内存并填充第一个块。 如果外部调用数据大于~800字节,我们需要初始化外部调用存储并用调用的数据填充 `extendExternalCallStorage` 指令 [`buildExtendExternalCallStorageInstruction`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#buildextendexternalcallstorageinstruction)。 。 。 .

函数 [`prepareExtCallTransactions`](https://github.com/debridge-finance/solana-contracts-client/blob/develop/docs/classes/DeBridgeSolanaClient.md#prepareextcalltransactions) 将数据分割成最大大小的块并返回要执行的交易数组。 第一个tx是 `initExternalCallStorage`,休息(可选)为 `extendExternalCallStorage`。 。 。 . `initExternalCallStorage` 分配块链中所需的内存空间,并填入初始数据块。 由于我们无法将数据写入未分配的内存中,我们必须等到第一次交易敲定并分配出excallStorage。 之后,我们可以以批量方式发送休息交易,并等待索拉纳处理. 我们可以检查存储是否正确使用 [`isExtCallStorageCorrect`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#isextcallstoragecorrect)

### 桥梁初始化

-   发送桥 - 到它发送桥 我们需要呼叫 `initializeSendBridge` 我们想要加入的 SPL-token 薄荷糖的指令 - [`buildInitializeSendBridgeTransaction`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#buildinitializesendbridgetransaction)。 。 。 .
-   薄荷桥 - 到薄荷桥 我们需要 `storeConfirmations` 用于部署信息, 等待确认保存, 然后呼叫 `initializeMintBridge` 指令 - [`buildInitializeMintBridgeTransaction`](https://npmcn.com/package/%40debridge-finance/solana-contracts-client/docs/classes/DeBridgeSolanaClient.md#buildextendexternalcallstorageinstruction)

### 实体

-   状态 - 独有,包含甲骨文,需要甲骨文,分确认,如果协议是活性的和其他系统信息.
-   桥梁(一般信息) - 包含桥梁状态(工作/停用),收取的费用和其他系统信息.
-   发送桥 - 随附符件, 包含大量锁定的符件, 本地 SPL- token 地址和一般桥信息
-   Mint Bridge - 与出道链和外道链ID中的符号相接,包含多位被铸造的符号,出道链ID,出道符地址和通通桥信息
-   链式支持Info - 与链式连接, 包含 **状态** (支持/不支持)目标链和固定Fee/转让Fee值(如果值为零)
-   BridgeFeeInfo - 与桥连接,包含资产ChainFee选项(无或值,如果无资产链费没有支持)

## 涉及受影响账户的索赔流量(分机调用)(假设未提出索赔,即存在桥梁/状态/链式支助Info)

| 行动 | 初始账户 | 更新账户 | 已关闭账户 | 评论 |
| --- | --- | --- | --- | --- |
| `storeConfirmations` | \[确认\] | 实数 |  | 存储签名为确认 |
| `initExternalCallStorage` | 外部 呼叫Storage, 外部呼叫Meta |  |  | 分配外部调用存储, 设置外部CallMeta = `accumulation` |
| `updateExternalCallStorage` |  | 外部 呼叫Storage, 外部呼叫Meta |  | 用数据填充外部呼叫存储, 设置外部CallMeta = `accumulation` |
| `claim` | 提交、\[拿起Wallet\]、\[拿起Wallet\]、\[拿起Wallet\]、\[说起Wallet\] | 桥接 接通 接通 接通 接通 | 实数 | 创建提交账户, 关闭确认存储, 设置外部CallMeta state = `execution`,更新桥接已锁定/已忽略的金额,将资金移入/移出钱包 |
| `executeExternalCall` |  | 外部呼叫网络 | 外部 调用 | 设置外部CallMeta = `executed`,关闭外部呼叫存储 |

## 与受影响账户的索赔流量(没有分机调用)(假设未提出索赔,即存在桥梁/状态/链式支助Info)

| 行动 | 初始账户 | 更新账户 | 已关闭账户 | 评论 |
| --- | --- | --- | --- | --- |
| `storeConfirmations` | \[确认\] | 实数 |  | 存储签名为确认 |
| `claim` | 提交、\[拿起Wallet\]、\[拿起Wallet\]、\[拿起Wallet\]、\[说起Wallet\] | 桥接 接通 接通 接通 接通 | 实数 | 创建提交账户、 关闭确认存储、 更新锁定/ 忽略的桥值、 移动资金到/ 从钱包中 |

## 实例

[发送和索赔实例](https://github.com/debridge-finance/solana-contracts-client/tree/master/examples)

### 索赔流量

![sendClaim-Page-1 drawio](https://user-images.githubusercontent.com/11212162/165912819-52f54d7e-775e-4917-8d06-faa25b065adc.png)

### 发送流量

![sendClaim-Page-2 drawio](https://user-images.githubusercontent.com/11212162/165914211-cc0f80a1-0a47-4f4c-a628-11aa15e56ee7.png)

## 常见问题

### @debridge-finance/solana-contracts-client 是什么？

文档

### 如何安装 @debridge-finance/solana-contracts-client？

在项目目录运行 npm install @debridge-finance/solana-contracts-client，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：buffer（6\.0\.3）、@solana/web3\.js（^1\.95\.2）、@coral-xyz/anchor（^0\.31\.1）、@solana/buffer-layout（^4\.0\.0）、@solana/buffer-layout-utils（^0\.2\.0）、@debridge-finance/solana-utils（^6\.0\.0）、@debridge-finance/debridge-external-call（^2\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @debridge-finance/solana-contracts-client 支持 TypeScript 吗？

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

### @debridge-finance/solana-contracts-client 支持 ESM 还是 CommonJS？

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

### @debridge-finance/solana-contracts-client 可以商用吗？

@debridge-finance/solana-contracts-client 使用 GPL-3\.0-only 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @debridge-finance/solana-contracts-client 的下载量有多少？

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

### @debridge-finance/solana-contracts-client 还在维护吗？

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

