# @esseyonsui/sui-sdk 中文文档

规范地址：https://npmcn.com/package/%40esseyonsui/sui-sdk/

版本：0\.1\.12
npm 元数据更新时间：2026-11-10T17:33:38.164Z
中文译文更新时间：2026-11-13T23:53:39.414Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40esseyonsui/sui-sdk
原文对照：https://npmcn.com/package/%40esseyonsui/sui-sdk/?lang=original

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

- 包体积（解压后）：767 kB，167 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：6 个
- 首次发布：2026-10-31T22:34:32.059Z
- 最新版本发布：2026-11-10T17:33:37.961Z
- 近 30 天下载量：2833（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

Essey on Sui的TypeScript客户端：事务构建器，链阅读器，借贷规则检查，封闭房间打开，未签名的所有者事务构建，以及键分离检查。仅限测试网和本地网。

## 安装

```sh
npm install @esseyonsui/sui-sdk
```

也可以使用：`pnpm add @esseyonsui/sui-sdk`、`yarn add @esseyonsui/sui-sdk`、`bun add @esseyonsui/sui-sdk`

## README

# @sesyonsui/sui-sdk (英语)

Sui 上的 Essey 的 TypeScript 客户端: 交易构建器、 链读取器、 借出规则检查、 密封室 开通,所有者交易未签名构建,并进行密钥分隔检查. 测试网和当地网只限.

`0.1.11` 是已发布的软件包;安装该软件包。 这棵树 `package.json` 实值 `0.1.12` 还没有在npm. `EsseyOwner.sign` 允许部署 `oraclePkg` 并拒绝以屏蔽方式提取中继器费或更少的中继器费 `ZERO_WITHDRAW` (取自SDK 0.1.12 / MCP 0.1.16). 安装 `0.1.11` 与 `"overrides": { "underscore": "1.13.8" }` 在消费项目的包中`site/content/sdk/install.md`) (中文(简体) ). `snarkjs@0.7.6` 牵引 `bfj` → `jsonpath` → `underscore@1.13.6` (GHSA-qpx9-hpmf-5gmw;npm只从该根应用了超接. `groth16.fullProve` 不调用 `bfj`。没有中继器类型 `repay_v2`; v2 贷款用 `repayCoinV2Tx`。 。 。 . `0.1.10` 修正v1 `saleBidTx` (准入和闸门),需要集合投标证书,从地址余额中提取SUI存款和v2抵押,并添加v2注销,到期,清算,债权违约, `recoverRoomNote`,包键中止名称, `readingFor` 财务报告和审定财务报表 `suiFaucetError`。 。 。 . `0.1.9` 是上一个软件包版本(ESM,节点22+; `npm run build` 写入 `dist/`),在npm上进行. `0.1.9` 添加 `buildPoolBidV2` 财务报告和审定财务报表 `buildOfferV2` (单位:千美元)`src/shielded/spend-v2.ts`),它构成一个v2池花及其 `bid_v2` 编号 : `loan_offer_v2` 一个呼叫中的中继器机体,在封存或证明链条或中继器会拒绝什么之前,拒绝;v2打开并证明构建者 `openSaleV2Tx`, (中文(简体) ), `attestSellerV2Tx`, (中文(简体) ), `openPrivateLoanV2Tx`, (中文(简体) ), `attestBorrowerV2Tx`· ; `fetchSettleKeys` 用于解决(16)密钥;以及 `snarkjs` 0.7.6 作为一种依赖,因此 `snarkjsProver`, (中文(简体) ), `settleProver` 财务报告和审定财务报表 `provedPassFor` 自己装入( o)`ProverPaths.snarkjs` 为可选的)。 还出口 `persistentMemberSecrets`, (中文(简体) ), `walletGasMode` 财务报告和审定财务报表 `wireBidExt`。 。 。 . `fetchProofBundle` 下载 TEST-ONLY 成员并花费密钥(`@esseyonsui/proving-keys-testonly`并且拒绝任何不是已部署核查员的散列文件; `fetchSettleKeys` 对 `@esseyonsui/settle-keys-testonly`保持游泳池的大小 在现场回报 `pool::rate_bps` 并且不签名,当该读数缺失或没有从0到10万的整数。 贷款按自己的利率发放。 用 MCP 软件包安装它( Name`site/content/sdk/install.md`) (中文(简体) ). `0.1.3` 读取 `deployment.oraclePkg` 何时 `pyth_oracle` 是它自己的软件包,就像测试网剪接一样; 保留它和阅读器 留下来 `${pkg}::${reader}`。 。 。 . `0.1.2` 已添加 `TESTNET_PRIVATE` 编号 : `testnetPrivateMcp()` 财务报告和审定财务报表 `deployment.access` 存款, 邮箱,填充和游泳池借入。 在这个仓库里 `packages/mcp` 按名称导入,决心 `src/` 通过根 tsconfig `paths`。主机后端在 `agents/` 财务报告和审定财务报表 `services/` 仍然使用自己的这些模块; 切换它是一个单独的改变.

## 两把钥匙

一个特工用它自己的钥匙运行 所有代理标志都经过 `EsseyAgent.execute` (单位:千美元)`src/agent.ts`),在每次签名前重新运行密钥分隔检查,拒绝,使用 `NOT_AGENT_CALL`, (中文(简体) ), 代理道外的任何交易(`src/lane.ts`数字 : `lendingFunctions`, (中文(简体) ), `LANE_COMMANDS`,同样的服务器列表 (b) 支持《公约》的国家 所以每一笔贷款 代理签个名 国库. 借款人用自己的钱包管理一个密封的房间(`Ptb.openRoom`, (中文(简体) ), `openRoomBids`, (中文(简体) ), `Ptb.settle`),已签名 外部 `EsseyAgent`。所有者动作(创建账户, 规定贷款人的任务、存款、延期、撤销、撤回、收取违约款、对借款人贷款采取行动) `src/owner.ts` 返回时 `unsignedTx` (单位:千美元)`src/unsigned.ts`)作为所有者在另一个设备上签名的字节. 没有 函数在此软件包中使用所有者键.

`SeparationCheck` (单位:千美元)`src/separation.ts`拒绝:

| 代码 | 含义 |
| --- | --- |
| `KEYS_NOT_SEPARATE` | 代理人自己的地址拥有一个金库的所有人 拥有一个代理Cap |
| `OWNER_CAP_PUBLIC` | 所有者Cap是共享或被冻结的,所以任何密钥都可以作为所有者 |
| `OWNER_CAP_UNVERIFIABLE` | 无法找到或读取所有者 Cap, 或坐在由模块决定使用对象的物体内 |
| `AGENT_CAP_MISMATCH` | 配置的 AgentCap 不为此密钥所持有, 或属于另一个金库 |

它检查每个金库 钥匙持有一个特工Cap, 不只是配置的。 每个金库都有一个 所有者Cap, 在交易中创建, 释放其 `TreasuryCreated` 活动(`move/essey_sui/sources/treasury.move` `share`;其id被缓存,其所有者在每次运行时再次被读取. 无法看到的: 保存在 同一机器上的不同地址.

## 快速启动( 本地网)

```ts
import { connect, deploymentOf, EsseyAgent, loadAgentKey } from "@esseyonsui/sui-sdk";

const chain = await connect({ network: "localnet", rpcUrl: "http://127.0.0.1:9000" });
const agent = await EsseyAgent.start({
  chain,
  deployment: deploymentOf(JSON.parse(deploymentJson)),
  signer: loadAgentKey("/path/to/agent.env", "localnet"),
  account: { treasuryId, agentCapId, cash: { treasuryId: cashTreasuryId, capId: cashCapId } },
  gas: "address-balance",
});
const landed = await agent.borrowFromOffer(offerId, 25_000_000_000n, 5_000_000n);
if (!landed.ok) console.log(landed.abort); // e.g. { module: "treasury", name: "ERateBelowFloor", code: 17, ... }
```

借款人的办公桌电话被连锁扣在借款规则上,其所有者在SUI上限上设定(最大利率,最短) 学期,最近成熟; `borrowerOwnerTx("deposit", ..., { limits, borrow })`) (中文(简体) ). 在他们外边装满一个桌子 中止 `treasury::ERateAboveCeiling` (24个), `ETermTooShort` (25个)或 `EPastRepayBy` (26个),没有规定, `ENoBorrowMandate` (23个). 规则还规定,池借人可以使用的一个池(`borrow.poolId`; 无效拒绝 每个游泳池); 从其他游泳池借到的办公桌中止 `EPoolNotAllowed` (27个). 他们也给国库的现金起名 一定要落地 在(借款人自有现金一方,取自国库配对,绝不取自代理输入) 其他终止 `ECashNotAllowed` (28) (英语). 他们有津贴,办公桌还可以借用(a) 再融资只用新本金偿还旧债;借过后就终止了 `EOverAllowance` (29起),偿还确实 不恢复它, 主人的下一组是. `EsseyAgent.allowance()` 读出剩下的内容.

拒绝的交易仍然占地: `Landed.ok` 是虚假的, `digest` 是真实的,而且 `abort` 名称移动常数 (单位:千美元)`src/aborts.ts` `MOVE_ABORTS`,以 `test/aborts.test.ts`) (中文(简体) ).

## 公共 API (英语:`src/index.ts`(中文(简体) )

-   连接 : `connect`, (中文(简体) ), `resolveNetwork`, (中文(简体) ), `assertChainId`, (中文(简体) ), `TESTNET`, (中文(简体) ), `MAINNET_CHAIN_ID`, (中文(简体) ), `LOCALNET_RPC_URL`; 类型 `EsseyChain`, (中文(简体) ), `EsseyNetwork`, (中文(简体) ), `NetworkConfig`。 Mainnet 不是网络值, 主网链 ID 被拒绝 .
-   密钥 : `loadAgentKey`, (中文(简体) ), `createAgentKeyFile` (KEY=VALUE文件,模式600,被其网络所标记).
-   探员: `EsseyAgent` 与 `start`, (中文(简体) ), `execute`, (中文(简体) ), `separation`, (中文(简体) ), `postOffer`, (中文(简体) ), `cancelOffer`, (中文(简体) ), `borrowFromOffer`, (中文(简体) ), `borrowFromPool`, (中文(简体) ), `repay`, (中文(简体) ), `refinance`, (中文(简体) ), `addCollateral`, (中文(简体) ), `claim`, (中文(简体) ), `bidSealed`, (中文(简体) ), `offer`, (中文(简体) ), `loan`, (中文(简体) ), `myLoans`, (中文(简体) ), `limits`, (中文(简体) ), `recipients`, (中文(简体) ), `capSides`, (中文(简体) ), `warnings`; 类型 `AgentAccount`, (中文(简体) ), `AgentOptions`, (中文(简体) ), `Warning`。 。 。 .
-   代理车道 : `lendingFunctions`, (中文(简体) ), `loanRoomFunctions`, (中文(简体) ), `BORROWER_DESK`, (中文(简体) ), `LANE_COMMANDS`, (中文(简体) ), `outsideLane`, (中文(简体) ), `assertAgentLane`, (中文(简体) ), `normalizeTarget`; 类型 `Lane`。 。 。 .
-   构建器 : `Ptb` (每个代理PTB,包括借款人办公桌) `desk*` 电话); 类型 `Me`, (中文(简体) ), `PtbBook`。 。 。 .
-   读者: `Book` (出价、贷款、房间、房价、 持有的贷款、契约、池子股份、报价、欠款、水下贷款、限制), 授权、结余、时钟).
-   所有人(未签字): `ownerTx`, (中文(简体) ), `borrowerOwnerTx`, (中文(简体) ), `renewTx`, (中文(简体) ), `unsignedTx`, (中文(简体) ), `OWNER_ACTIONS`, (中文(简体) ), `BORROWER_OWNER_ACTIONS`, (中文(简体) ), `LENDER_CAP_LIMIT`; 类型 `OwnerRefs`, (中文(简体) ), `BorrowerOwnerRefs`, (中文(简体) ), `ChainMandate`, (中文(简体) ), `RenewSide`, (中文(简体) ), `UnsignedTx`。 。 。 .
-   规则: `src/rules.ts` 财务报告和审定财务报表 `src/policy.ts` (单位:千美元)`drawFault`, (中文(简体) ), `termsFault`, (中文(简体) ), `allowedFills`, (中文(简体) ), `parsePolicy`, (中文(简体) ), `repayBound`(中文(简体) ).
-   密封室: `openRoomBids`, (中文(简体) ), `rankOpenings`, (中文(简体) ), `bidTerms`, (中文(简体) ), `offerCommitment`, (中文(简体) ), `consentDigest`, (中文(简体) ), `encryptOffer`, (中文(简体) ), `sealClient`, (中文(简体) ), `OFFER_CT_LEN`,, , , , , , , , .
-   密封结算 v2( 出售 room v2, 私人 room v2; Sui testnet ids) `TESTNET_SALE_ROOM_V2`, (中文(简体) ), `TESTNET_PRIVATE_LOAN_V2`: `openSaleV2Tx`, (中文(简体) ), `attestSellerV2Tx`, (中文(简体) ), `bidV2Tx`, (中文(简体) ), `poolBidV2Tx`, (中文(简体) ), `finishV2Tx`, (中文(简体) ), `slashBidV2Tx`, (中文(简体) ), `openPrivateLoanV2Tx`, (中文(简体) ), `attestBorrowerV2Tx`, (中文(简体) ), `offerV2Tx`, (中文(简体) ), `settleV2Tx`, (中文(简体) ), `settleRelayedV2Tx`, (中文(简体) ), `repayV2Tx`, (中文(简体) ), `repayCoinV2Tx`, (中文(简体) ), `slashOfferV2Tx`· ; 编曲 `buildPoolBidV2`, (中文(简体) ), `buildOfferV2` (结束) `Spend` 加减 `bid_v2` 编号 : `loan_offer_v2` 体质; `bidV2Body`, (中文(简体) ), `loanOfferV2Body`, (中文(简体) ), `poolSpendOf`, (中文(简体) ), `ShieldedWallet.spendDeps`(三); `commitV2`, (中文(简体) ), `plaintextV2`, (中文(简体) ), `sealEntryV2`, (中文(简体) ), `openRoomEntries`, (中文(简体) ), `settlePlan`, (中文(简体) ), `settleProver`, (中文(简体) ), `fetchSettleKeys`, (中文(简体) ), `settleProvingKeys` (TST -ONLY 密钥) `@esseyonsui/settle-keys-testonly`, (中文(简体) ), `readSaleRoomV2`, (中文(简体) ), `readPrivateLoanV2`; 类型 `SaleRoomV2Config`, (中文(简体) ), `PrivateLoanV2Config`, (中文(简体) ), `SettleStatement`, (中文(简体) ), `PoolBidV2Request`, (中文(简体) ), `OfferV2Request`。主机解密其房间的条目 在当地定居,有Groth16证明;只有赢家和赢家的价值连锁交易.
-   链式助手 : `simulate`, (中文(简体) ), `landedOf`, (中文(简体) ), `createdOf`, (中文(简体) ), `oneCreated`, (中文(简体) ), `parseAbort`; 类型 `Landed`, (中文(简体) ), `GasMode`, (中文(简体) ), `ChainEvent`, (中文(简体) ), `EventSource`。 。 。 .
-   错误 : `EsseyError` (单位:千美元)`code: EsseyErrorCode`, (中文(简体) ), `isEsseyError`, (中文(简体) ), `ESSEY_ERROR_CODES`代码永远不会重新命名. `NOT_AGENT_CALL`数字 : `execute` 拒绝代理车道以外的交易;没有签名.

## 活动

测试网从Sui GraphQL读取事件. 本地网从全诺德的GRPC读取 `LedgerService.ListEvents`(中文(简体) ) 1.82 将JSON-RPC从全节点上移除(MystenLabs/sui#27907).

## 实例(当地网)

`scripts/sdk-e2e-local.sh` 开始一个新的本地网并按顺序运行,然后重读每一份打印摘要:

-   `examples/localnet.ts` 出版Essey immutable(升级Cap在出版的PTB中被销毁,因为 代理/部署.ts发布Immutable does)并播放所有者设备(所有者密钥与每个代理密钥分开).
-   `examples/lend.ts` 员额提议;根据任务授权提出的提议被连锁拒绝`treasury::ERateBelowFloor`) (中文(简体) ).
-   `examples/borrow-repay.ts` 然后借钱还债 财务处.
-   `examples/sealed-room.ts`:借款人-1的代理密钥被拒绝开放房间(`NOT_AGENT_CALL`)借款人自己的 钱包,单独的普通密钥 `examples/localnet.ts` 资金,打开房间, 两个出贷人投标密封 钱包中最便宜的和解并偿还。 localnet没有封存密钥服务器,所以放款人会随机放置封存长度的字节; 在 同一文件的测试网使用"封".
-   `examples/keys-together.ts` 显示SDK和MCP拒绝拥有自己所有者Cap的代理.
-   `../mcp/examples/claude.ts` 驱动MCP服务器的方式克洛德.

## 测试

`npm test` 财务报告和审定财务报表 `npm run typecheck` 在此文件夹中. `test/` 保存提取模块的原始套件 调整其进口量(使用主机担保车道或自助服务表格的五项测试与 原作),外加新的测试,用于构建者,阅读者,分离,代理,网络,密钥和事件.

## 常见问题

### @esseyonsui/sui-sdk 是什么？

Essey on Sui的TypeScript客户端：事务构建器，链阅读器，借贷规则检查，封闭房间打开，未签名的所有者事务构建，以及键分离检查。仅限测试网和本地网。

### 如何安装 @esseyonsui/sui-sdk？

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

### @esseyonsui/sui-sdk 支持 TypeScript 吗？

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

### @esseyonsui/sui-sdk 支持 ESM 还是 CommonJS？

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

### @esseyonsui/sui-sdk 需要什么版本的 Node\.js？

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

### @esseyonsui/sui-sdk 可以商用吗？

@esseyonsui/sui-sdk 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @esseyonsui/sui-sdk 的下载量有多少？

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

### @esseyonsui/sui-sdk 还在维护吗？

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

