@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) (中文(简体) ). [email protected] 牵引 bfj → jsonpath → [email protected] (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 软件包安装它( Namesite/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被缓存,其所有者在每次运行时再次被读取. 无法看到的: 保存在
同一机器上的不同地址.
快速启动( 本地网)
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/ 保存提取模块的原始套件
调整其进口量(使用主机担保车道或自助服务表格的五项测试与
原作),外加新的测试,用于构建者,阅读者,分离,代理,网络,密钥和事件.