SuperAPI AI 工具集

move-patterns

编程与开发

查看项目

更新于 10-16 06:50

技能介绍

用途:为 Sui Move 智能合约开发提供一组设计模式参考,帮助编写规范、可组合的合约代码。

主要能力:

  1. 事件:对所有客户端需要观察的状态变更操作发出事件,使用 sui::event 与 event::emit,事件结构体需具备 copy、drop 能力。
  2. 错误处理:错误常量使用 EPascalCase 与 u64 值,配合 assert! 使用;可用 #[error] 注解携带人类可读消息(常用 vector<u8>),Sui CLI 与 GraphQL 服务会自动解码为可读信息。注意 clever error 的 abort code 会编码源码行号,文件重排后 u64 值可能变化,测试与链下工具应按常量名匹配而非硬编码。assert! 也可不带 abort code,自动从源码行派生。
  3. 一次性见证(OTW):用于需要唯一、不可复制发布证明的模块(如 coin 类型、publisher 对象),OTW 名称必须与模块名全大写完全一致,在 init 中使用。
  4. 能力模式:用能力对象而非 ctx.sender() 检查来限制特权函数,更可组合、可测试,能力可由合约持有而非仅钱包。参数顺序为对象在前、原始类型在后,能力参数置于对象之后。
  5. 纯函数与可组合性:核心逻辑函数保持纯函数,按引用/值接收对象并返回值,不要在核心逻辑内调用 transfer::transfer 把结果发给调用者;应返回结果供调用者组合。内部转账(如销毁代币到 @0x0、共享新建对象)可接受。多余代币即使价值为零也应返回,由调用者决定处理方式。

使用方式:作为 Sui Move 开发时的模式参考,在编写合约时按上述约定组织事件、错误、权限与函数设计。

适用场景:Sui 链上 Move 合约开发,尤其是需要可组合性、权限控制与可观测事件的 DeFi 等协议。

限制:资料未提供安装命令、版本要求或完整示例代码;具体 API 与行为以官方文档为准。