# @ar\.io/solana-contracts 中文文档

规范地址：https://npmcn.com/package/%40ar.io/solana-contracts/

版本：1\.5\.0
npm 元数据更新时间：2026-10-08T23:28:44.127Z
中文译文更新时间：2026-11-06T15:41:11.121Z
软件包许可：AGPL-3\.0-or-later

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

原始 npm 页面：https://www.npmjs.com/package/%40ar.io/solana-contracts
原文对照：https://npmcn.com/package/%40ar.io/solana-contracts/?lang=original
项目主页：https://github.com/ar-io/ar-io-solana-contracts/tree/main/clients/ts
源码仓库：https://github.com/ar-io/ar-io-solana-contracts

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

- 包体积（解压后）：6.9 MB，1957 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：@solana/kit \>=6 \<7
- 首次发布：2026-05-12T03:58:36.931Z
- 最新版本发布：2026-10-08T23:28:43.832Z
- 近 30 天下载量：2866（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：19（近 12 个月 19 个）

## 中文简介

AR.IO索拉纳程序(ario-core,ario-gar,ario-arns,ario-ant,ario-ant-escrow)的TypeScript客户端. 哥达马生成的每个程序客户端加上IDL不曝光的手写助手(例如ANT-escrow canonic-message buildingers s)

## 安装

```sh
npm install @ar.io/solana-contracts
```

也可以使用：`pnpm add @ar.io/solana-contracts`、`yarn add @ar.io/solana-contracts`、`bun add @ar.io/solana-contracts`

## README

# `@ar.io/solana-contracts`

Codama为AR.IO索拉纳程序生成了TypeScript客户端.

| 程序 | 子路径 |
| --- | --- |
| `ario-core` (ARIO SPL 令牌,金库,主名) | `@ar.io/solana-contracts/core` |
| `ario-gar` (Gateway地址登记、查证、划时代、奖励) | `@ar.io/solana-contracts/gar` |
| `ario-arns` (档案名称登记册、需求系数、定价) | `@ar.io/solana-contracts/arns` |
| `ario-ant` (Arweave Name Token-Metaplex Core NFT) (韩语) | `@ar.io/solana-contracts/ant` |
| `ario-ant-escrow` (无信多议定书ANT监护) | `@ar.io/solana-contracts/ant-escrow` |

建造在 [`@solana/kit`](https://github.com/anza-xyz/kit) (同类依赖). 创建于 [科达马](https://github.com/codama-idl/codama)。 。 。 .

## 安装

```bash
yarn add @ar.io/solana-contracts @solana/kit
# or
npm install @ar.io/solana-contracts @solana/kit
```

## 使用

```ts
import { getBalanceEncoder } from '@ar.io/solana-contracts/core';
import { PurchaseType }      from '@ar.io/solana-contracts/arns';
import { GatewayStatus }     from '@ar.io/solana-contracts/gar';

const bytes = getBalanceEncoder().encode({
  owner: '...',
  amount: 1_000_000n,
  bump: 254,
});
```

每个子路径都暴露了科达马的标准地表:

-   `accounts/` – 每一个PDA的打出编码器/解码器(`getBalanceEncoder`, (中文(简体) ), `getBalanceDecoder`, (中文(简体) ), `getBalanceCodec`页:1
-   `types/` ——指导-论证结构+enum(`PurchaseType`, (中文(简体) ), `GatewayStatus`, (中文(简体) ), `Protocol`(中文(简体) )
-   `instructions/` ——同声/同步指令构建器 (单位:千美元)`getJoinNetworkInstructionAsync`页:1
-   `pdas/` - PDA衍生工具(`findBalancePda`页:1
-   `errors/` – 每个程序输入的 Anchor 错误常数
-   `programs/` ——柯达玛计划工厂+ `identify*Instruction` 帮助者

## 这是什么?

AR.IO网络的链上程序运行于索拉纳. 他们住在这里 [这个 还原](https://github.com/ar-io/ar-io-solana-contracts) 下级 `programs/`· ; 此软件包是下游自动生成的 TypeScript 客户端 消费者(公共AR.IO SDK,第三方集成商)从.

出品文物(`src/<program>/` + 键 `lib/`(b) 未作出承诺—— 每一 发布运行 `anchor build && yarn codegen && yarn build` 从干净 退出并公布由此而来的柏球.

## 版本

独立出品. Anchor 程序中的线格式变化 (IDL-fefficing source editers) 撞出主. 增加表面变化 撞倒未成年人。 补丁版本涵盖非破解的密码修正.

软件包版本是 **没有** 锁定到已部署的程序版本.. 程序身份由链式部署的程序ID提供,而不是由 客户端软件包版本.

### 集群耦合(已解决——ADR-024)

以往使用的两个零副本登记册账户 `#[cfg(feature = "devnet-shrunk")]` 以交换固定阵列大小 主网和一个收缩的devnet, 所以哥达马编码器(它嵌入这些 大小在 codegen 时间)只匹配一个集群.

**该功能已退役(ADR-024).** 每个集群——地方网, 装配(在索拉纳德文网上)和主网——现在编译相同的 生产规模登记册:

| 账户 | 所有分组 |
| --- | --- |
| `GatewayRegistry.gateways` | 3 000个插槽 |
| `NameRegistry.names` | 50 000个空档(可扩大到200 000个) |
| `Epoch.failure_counts` | 3 000个插槽 |

因此,每个部署都有一个公布的软件包匹配——没有 编码器/账号大小不匹配到原因,以及 `staging` 对 `@latest` ditt-tag 仅因释放通道而异, 不因编码而异 尺寸.

## 本地 dev

```bash
git clone https://github.com/ar-io/ar-io-solana-contracts.git
cd ar-io-solana-contracts
anchor build              # produces target/idl/*.json
cd clients/ts
yarn install              # postinstall regenerates src/<program>/
yarn build:tsc            # compiles to lib/
```

`CLUSTER` (单位:千美元)`staging` | `mainnet`默认值 `staging`现在只选择 npm 发布通道; 各集群的注册大小相同(参见 以上"组合相通".

## 出版

CI 工作流程 `.github/workflows/release-clients-ts.yml` 实值 \[工作流 发送\]-与 `cluster` (站住主网), 选项 `version` 覆盖和可选 `dry_run`。 。 。 .

认证用途 **npm OIDC 信任出版** 同型号 `@ar.io/sdk`。 。 。 . 没有 `NPM_TOKEN` 隐秘在CI。 工作流程宣布 `id-token: write`· ; npm CLI 9.5 与npmjs.com谈判OIDC握手并证明 既包括出版商身份,也包括建立出处.

### 第一次出版(鸡蛋)

信任的出版商已配置 **每个软件包** 时间,所以 在添加可信任的-publisher规则之前,软件包必须存在. 一次性拖带 :

1.  发布 `0.1.0-staging.0` 手动从本地取出 `npm publish --access public --tag staging` (使用个人语言) npm 证书).
2.  在npmjs.com上:导航到 `@ar.io/solana-contracts` → **设置** → **受托出版商** → **添加信任的发布器**数字 :
    -   发布者: GitHub 动作
    -   组织: `ar-io`
    -   仓库 : `ar-io-solana-contracts`
    -   工作流程文件名 : `release-clients-ts.yml`
    -   环境: _(留下空白)_
3.  随后的发行(Stage reductions,主网推广,版本) cumps),全部通过CI运行——没有符号,没有手动步骤.

### 对立

| 标记 | 组 | 用于 |
| --- | --- | --- |
| `@latest` | 主网 | `yarn add @ar.io/solana-contracts` |
| `@staging` | 中转( 索拉纳德文网) | `yarn add @ar.io/solana-contracts@staging` |

## 许可证

[AGPL-3.0- 或- 后期](https://npmcn.com/package/%40ar.io/solana-contracts/LICENSE)。 。 。 .

## 常见问题

### @ar\.io/solana-contracts 是什么？

AR\.IO索拉纳程序\(ario-core,ario-gar,ario-arns,ario-ant,ario-ant-escrow\)的TypeScript客户端\. 哥达马生成的每个程序客户端加上IDL不曝光的手写助手\(例如ANT-escrow canonic-message buildingers s\)

### 如何安装 @ar\.io/solana-contracts？

在项目目录运行 npm install @ar\.io/solana-contracts，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@solana/kit（\>=6 \<7）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @ar\.io/solana-contracts 支持 TypeScript 吗？

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

### @ar\.io/solana-contracts 支持 ESM 还是 CommonJS？

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

### @ar\.io/solana-contracts 可以商用吗？

@ar\.io/solana-contracts 使用 AGPL-3\.0-or-later 许可。最严格的 Copyleft：除分发外，通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括，不构成法律意见，请以许可原文为准。

### @ar\.io/solana-contracts 的下载量有多少？

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

### @ar\.io/solana-contracts 还在维护吗？

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

