# @fairmint/canton-node-sdk 中文文档

规范地址：https://npmcn.com/package/%40fairmint/canton-node-sdk/

版本：0\.0\.277
npm 元数据更新时间：2026-11-13T22:01:56.673Z
中文译文更新时间：2026-11-14T09:04:16.011Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40fairmint/canton-node-sdk
原文对照：https://npmcn.com/package/%40fairmint/canton-node-sdk/?lang=original
项目主页：https://github.com/Fairmint/canton-node-sdk/wiki
源码仓库：https://github.com/Fairmint/canton-node-sdk

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

- 包体积（解压后）：6.4 MB，1555 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：11 个
- 首次发布：2025-07-17T15:38:10.984Z
- 最新版本发布：2026-11-13T22:01:56.298Z
- 近 30 天下载量：30022（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：247（近 12 个月 145 个）

## 中文简介

州节点 SDK

## 安装

```sh
npm install @fairmint/canton-node-sdk
```

也可以使用：`pnpm add @fairmint/canton-node-sdk`、`yarn add @fairmint/canton-node-sdk`、`bun add @fairmint/canton-node-sdk`

## README

# 州-节点- sdk

用于Canton Network节点的低级TypeScript SDK(Ledger JSON API,验证器API,Scan API).

## 开发者文档

公众 [GitHub 维基百科](https://github.com/Fairmint/canton-node-sdk/wiki) 是犬科指南 用于配置、API边界、外部签名、LocalNet、示例和贡献。 这个 公开 [`src/index.ts`](https://github.com/Fairmint/canton-node-sdk/blob/main/src/index.ts) 定义 支持的软件包表面; 使用已安装的宣告和公开 [`examples/`](https://github.com/Fairmint/canton-node-sdk/tree/main/examples) 财务报告和审定财务报表 [`test/`](https://github.com/Fairmint/canton-node-sdk/tree/main/test) 准确方法,请求 形状和错误行为.

## 安装

```bash
npm install @fairmint/canton-node-sdk
```

```ts
import { Canton } from '@fairmint/canton-node-sdk';

async function main(): Promise<void> {
  const canton = new Canton({ network: 'localnet' });
  const version = await canton.ledger.getVersion();
  console.log(version);
}

main().catch((error: unknown) => {
  console.error(error);
  process.exitCode = 1;
});
```

## 按接口读取分类账

`getActiveContracts`, (中文(简体) ), `subscribeToUpdates`, (中文(简体) ), `getUpdateById` 财务报告和审定财务报表 `getUpdateByOffset` 接受 `interfaceIds` 过滤器,使用 `includeInterfaceView` 财务报告和审定财务报表 `includeCreatedEventBlob` 返回每个 合同的界面视图和创建-事件 blob. `streamActiveContracts` 读取大型活动 合同设定时没有将其收藏在记忆中:当物品运抵时,它会产生这些物品,施加回压 对参与者,如果连接在快照完成前关闭,则丢出。 内容 `activeAtOffset` 转至 `subscribeToUpdates` 作为 `beginExclusive`。见 [`examples/stream-active-contracts.ts`](https://github.com/Fairmint/canton-node-sdk/blob/main/examples/stream-active-contracts.ts)。 。 。 .

## 阅读为每个政党

政党名单是一个过滤器:它错过的政党,如后来分配的政党,被读作没有 已存在。 构建事件格式的每个读取也都使用 `anyParty: true` 而不是政党名单 (单位:千美元)`subscribeToUpdates`, (中文(简体) ), `getUpdateById`, (中文(简体) ), `getActiveContracts`, (中文(简体) ), `streamActiveContracts`, (中文(简体) ), `getEventsByContractId`,则 `buildEventFormat` 编号 : `buildTransactionFormat` 编号 : `buildUpdateFormat` 用于 `getUpdateByOffset` 财务报告和审定财务报表 `getUpdatesPage`,其任何缔约方参数为: `AnyPartyEventFormatBuilderParams` 及其交易和更新变体)。 它发出 `filtersForAnyParty`,它涵盖每个参与者东道方,需要用户的 `CanReadAsAnyParty` 对; `assertCanReadAsAnyParty(client)` 检查一下,扔出一个 `MissingUserRightError` 命名用户及其拥有的权利。 拒绝类型 `anyParty` 合并 `parties` 或者说 `readAs`,则读数在运行时拒绝组合。 无 `anyParty`每一个读取都像以前一样.

对于一个档案 分类账说, `getRawUpdatesPage` 财务报告和审定财务报表 `subscribeToRawUpdates` 返回每个 页、页项或框架作为与会者发送的确切文本及其 `JSON.parse` 值,无 计划正常化,但如果解析会改变一个数字,则失败(例如: JavaScript 无法精确地持有)或放下重复的密钥. 存储 `text` 每个页面项目或框架; 重新序列化 `json` 重排整数键 溪流传递出各种各样的 (交易、改派、地形交易和抵消检查站) 顺序,应用后压,以理性结束 `token-refresh` 在访问符到期前,以及 曝光情况 `lastOffset` 继续. `subscribeToRawCompletions` 读取一个用户的完成 同样的方式;它要求明确 `userId` 和一无所有 `parties` 列表,与 Ledger API 一样. 见 [`examples/read-any-party.ts`](https://github.com/Fairmint/canton-node-sdk/blob/main/examples/read-any-party.ts)。 。 。 .

## 通过 CIP-0103 钱包移动动作

`Wallets` 数字资产工具登记处文书上的持有人行动 通过任何CIP-0103(Canton dApp API)钱包提供者:列表控股,薄荷出价,转让出价 和燃烧请求; 接受薄荷提议; 预览并发送传输; 接受、拒绝或撤回 转让要约; 请求烧伤; 并创建转让预先批准(实验性). 它代表了选择 来自 DA 公共事业 API 的可注入 `fetch`,只与钱包交谈 通过CIP-0103(`getPrimaryAccount`, (中文(简体) ), `ledgerApi`, (中文(简体) ), `prepareExecuteAndWait`因此,没有钱包SDK是 参与.

它是浏览器安全:导入 `@fairmint/canton-node-sdk/build/src/wallets/index.js`,没有负载 sDK的节点依赖。 软件包根也作为 `Wallets` 名称空间.

```ts
import {
  createDaUtilitiesClient,
  createTokenWallet,
  type Cip103Provider,
} from '@fairmint/canton-node-sdk/build/src/wallets/index.js';

async function send(provider: Cip103Provider, receiver: string): Promise<void> {
  const tokens = createTokenWallet({
    provider, // any connected CIP-0103 provider
    registry: createDaUtilitiesClient({ network: 'devnet' }),
  });
  const instrumentId = { admin: 'registrar::1220...', id: 'XMPL' };
  const kind = await tokens.previewTransfer({ receiver, instrumentId, amount: '10' });
  await tokens.transfer({ receiver, instrumentId, amount: '10', expectedKind: kind });
}
```

-   写作从不重试. A 类 `WalletSubmitError` 已经 `outcome` `rejected-by-user` (CIP-0103 4001) (中文(简体) ), `failed` (3-2003,或钱包在接受之前被拒绝的请求)或 `unknown` (届会) 4100/4900/4901 在提交、超时、其他任何文件时出错: 在钱包之前检查 重新报到.
-   每个令牌钱包一次写一次: 开始写一次, 正在写一次被拒绝 `busy` 在阅读之前,所以两个写作 从来没有选择相同的控股.
-   控股只有在登记员签名时才算数 只有在信任时才提议和请求 登记提供商签名。 默认情况下,登记员必须是自己的提供者;对于登记员而言 由另一个供应商通行证服务 `trustedProviders` 改为 `createDaUtilitiesClient`任何合同 其他供应商从未被列入清单或对其采取行动.
-   数量是精确的十进制( 在 Daml 内部, 最多10个位数) `Numeric 10`);选择投入 决了. `requirePreapproval: true` 仅在接收器预先批准时发送 转让,以及 `expectedKind` 拒绝自预览以来类型已改变的传输 .

## 仓库设置和检查

```bash
git submodule update --init --depth 1 libs/splice
git submodule update --init --recursive libs/cn-quickstart
npm install
npm run fix
npm test
npm run build
```

### 本地网络( 由 `@fairmint/canton-dev-tools`(中文(简体) )

本地网络生命周期和共享测试帮助者生活在 [`@fairmint/canton-dev-tools@0.1.13`](https://www.npmjs.com/package/@fairmint/canton-dev-tools) (见 联合国 [职责. md](https://github.com/Fairmint/canton-dev-tools/blob/main/COMPATIBILITY.md)) (中文(简体) ). 此 SDK 不发布本地网络 CLI 或 `scripts/localnet-cloud.sh`。 。 。 .

```bash
npm install   # installs @fairmint/canton-dev-tools as an exact-pinned devDependency
npm run localnet:start
npm run localnet:readiness   # alias: localnet:smoke
npm run localnet:teardown    # alias: localnet:stop

# Or call the Dev Tools CLI directly:
npx @fairmint/canton-dev-tools start
npx @fairmint/canton-dev-tools readiness
npx @fairmint/canton-dev-tools teardown
```

融合帮助者:

```ts
import {
  buildIntegrationTestClientConfig,
  getLocalnetParticipantAdminLedgerClient,
} from '@fairmint/canton-dev-tools/testing';
```

见 [文档/包装边界.md](https://npmcn.com/package/%40fairmint/canton-node-sdk/docs/package-boundary.md) npm 软件包所发布的内容 仅使用 CI 表面`npm run check:package-artifacts`) (中文(简体) ).

## 常见问题

### @fairmint/canton-node-sdk 是什么？

州节点 SDK

### 如何安装 @fairmint/canton-node-sdk？

在项目目录运行 npm install @fairmint/canton-node-sdk，或使用 pnpm add / yarn add / bun add。

### @fairmint/canton-node-sdk 支持 TypeScript 吗？

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

### @fairmint/canton-node-sdk 支持 ESM 还是 CommonJS？

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

### @fairmint/canton-node-sdk 需要什么版本的 Node\.js？

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

### @fairmint/canton-node-sdk 可以商用吗？

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

### @fairmint/canton-node-sdk 的下载量有多少？

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

### @fairmint/canton-node-sdk 还在维护吗？

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

