SuperAPI AI 工具集

sui-ts-sdk

编程与开发

查看项目

更新于 10-16 01:33

技能介绍

用途:本技能面向使用 @mysten/sui SDK(v2+)编写与 Sui 区块链交互的 TypeScript 代码,适用于后端脚本和前端应用;前端可先配合 sui-frontend 技能处理 dApp Kit、钱包连接与 React 集成,再应用本文的 PTB 与客户端模式。

安装与导入:包名为 @mysten/sui,旧包名 @mysten/sui.js 已弃用。安装:npm install @mysten/sui。导入使用子路径,如 '@mysten/sui/transactions'、'@mysten/sui/keypairs/ed25519'、'@mysten/sui/grpc',不要从包根导入。

客户端:新代码推荐 SuiGrpcClient(性能最佳、类型安全的 protobuf),JSON-RPC 已弃用;另有 SuiJsonRpcClient(v2 需 network)和 SuiGraphQLClient(高级查询)。gRPC 客户端暴露带类型的服务客户端,用于交易执行、账本查询、Move 包自省与 SuiNS。

交易构造:PTB 用 Transaction 类构建(旧名 TransactionBlock 已弃用),包含命令与输入,命令按顺序执行并可引用先前结果。克隆用 Transaction.from,序列化用 await tx.toJSON() 并可反序列化。纯值输入使用 tx.pure.<type>() 辅助方法(u8/u16/u32/u64/u128/u256、bool、string、address、id、vector、option),不宜手动 BCS 编码;无内置辅助的类型可回退到 tx.pure(bcsBytes)。对象输入用 tx.object(id),SDK 自动解析版本与所有权,不要硬编码对象版本;并有 system、clock、random、denyList、option 等快捷方式;Receiving 参数由 SDK 自动转换。

内置命令:splitCoins、mergeCoins、transferObjects、moveCall(支持返回结果链式传递与解构)、makeMoveVec、publish。tx.gas 为 gas 币引用,可用于拆分、合并、转移或作为 moveCall 参数;SDK 自动设置 gas 价格、预算并选择 gas 币,必要时可覆盖(gas 支付币不得与交易输入对象重叠)。非 SUI 币可用 coinWithBalance 意图自动查找、合并、拆分,搭配非 SUI 类型时必须 setSender。

执行与查询:使用 client.signAndExecuteTransaction 后必须检查状态(如 result.$kind === 'FailedTransaction'),因交易可能上链但仍失败;可通过 include 参数获取 effects、events、transaction、balanceChanges、objectTypes、bcs 等;也支持分离的签名与执行流程。执行后查询前应调用 waitForTransaction 等待索引,默认 2 秒轮询、60 秒超时。密钥对支持 Ed25519、Secp256k1、Secp256r1,可随机生成、从助记词派生或从私钥创建。离线构建需完整指定输入与 gas 配置,使用 Inputs 辅助方法提供对象引用或共享对象初始版本。

限制:资料未提供收费、价格或平台细节;除上述内容外,其他功能与应用场景暂未提供。