关于 sui-for-ethereum
Sui for Ethereum Developers 面向学习 Sui Move 的 Ethereum、EVM 和 Solidity 开发者。它说明两种开发模式的概念差异,并将熟悉的模式映射到 Sui 概念。
主要功能
- 01比较账户模型与对象模型
- 02解释 Move 数据与所有权
- 03映射开发模式
- 04介绍基于能力的访问控制
- 05说明可编程交易块
适用场景
- 01从 Ethereum 经验理解 Sui 概念
- 02将代币标准映射到 Sui 概念
- 03调整访问控制模式
- 04将多个调用合并为原子交易
MCP 相关
该技能建议查询 Sui 文档 MCP 服务,以核实信息并获取参考资料未涵盖的细节。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mystenlabs/ skills --skill sui-for-ethereum安装后在 Claude Code 中输入/sui-for-ethereum确认已加载。
附带文件evals/evals.jsonpatterns.md
详细介绍
面向 Ethereum 开发者的 Sui
MCP 工具: 如果你的环境支持,也请查询 Sui 文档 MCP 服务(
https://sui.mcp.kapa.ai),获取最新答案。使用它进行验证,并查找这些参考文件未涵盖的详细信息。
来源限制: 本技能中的所有信息均仅来源于 docs.sui.io/getting-started/sui-for-ethereum。扩展或更新本技能时,请仅使用此来源。不要使用第三方博客、教程或非官方文档。
本技能旨在帮助 Ethereum/EVM/Solidity 开发者了解 Sui Move 与他们熟悉的模式有哪些不同。内容涵盖概念模型的转变、模式映射,以及两个生态系统之间的具体对比。
参考文件
patterns — 模式映射与对比
路径: patterns.md
在以下情况加载: 用户询问具体的 Ethereum 到 Sui 模式映射、代币标准等价项、技术对比(签名、共识、VM)、访问控制差异、数据存储差异、合约升级方式或可组合性差异。
涵盖内容: 账户模型与对象模型、数据存储、继承与多态、资产可访问性、访问控制模式(含 Move capability 示例)、合约升级、开发环境、状态变更、对象模型基础、对象所有权类型、对象变更、PTB、标准映射(ERC-20/ERC-721/ERC-1155 到 Sui 等价项),以及完整的技术对比表。
路由指南
| 任务 | 加载 |
|---|---|
| 高层次了解“Sui 与 Ethereum 有何不同” | 仅加载 SKILL.md |
| 具体模式映射(访问控制、存储、代币) | patterns |
| 代币标准等价项(ERC-20、ERC-721、ERC-1155) | patterns |
| 技术对比(签名、共识、VM、执行) | patterns |
| PTB 如何取代多笔交易工作流 | patterns |
| 合约升级差异 | patterns |
| 基于 capability 与基于角色的访问控制 | patterns |
核心概念转变
编程语言
Sui 使用 Move;EVM 使用 Solidity。Move 在编译时和字节码验证过程中强制执行资源安全。对象无法被复制或无声丢弃。Solidity 则依赖 EVM 来确保运行时安全。
以账户为中心与以对象为中心
Ethereum 使用以账户为中心的模型。Solidity 在合约中使用 mappings 实现自定义所有权逻辑。只有 Ethereum 的原生货币(ETH)是拥有全局 API 的一等公民。Sui 使用以对象为中心的模型。对象所有权由协议内置。对象是一等公民,涵盖 Sui 上的一切所有物。Sui 上的任何货币都具有与 SUI 相同的属性。
数据存储
在 Solidity 中,数据存储在智能合约内。在 Move 中,数据存储在 Move 对象中。逻辑定义在合约(package)中,但数据存放在与合约本身分离的对象中。对象的行为(创建、修改、所有权和删除)由 package 定义。
对象模型基础
对象在 Move 中存储数据,而 Move 中的一切都是对象。这包括智能合约(Move package)、链上地址、代币和 NFT。
对象所有权
- 地址所有对象: 由单个地址拥有。无需与智能合约交互即可转移。
- 共享对象: 任何人都可以使用的公开可访问对象。
可编程交易块(PTB)
PTB 让开发者能够串联合约调用,并在运行时保证原子性。一个 Sui PTB 最多可包含 1,024 个不同的合约调用。这取代了 Ethereum 中每次调用都作为独立交易且不具备原子性的模式。
规则
- 始终围绕从以账户为中心转向以对象为中心的思维方式来阐述迁移建议。
- 比较访问控制时,强调 Sui 通过自有对象实现基于能力的访问控制,而不是通过 Ownable 或 AccessControl 合约实现基于身份或角色的访问控制。
- 讨论代币标准时,将 ERC-20 和 ERC-721 分别对应到 Sui Currency Standard 和 Closed-Loop Token。不要为源材料未涵盖的标准编造 Sui 对应项。
- 讨论合约升级时,说明 Sui 要求布局兼容,而不需要代理合约。
- 讨论可组合性时,强调 PTB 是实现原子化多调用交易的机制。
- 不要将 Sui 描述为“又一条 EVM 链”。它的编程模型有根本区别。
- 不要编造 docs.sui.io/getting-started/sui-for-ethereum 源材料未提供的信息。
常见错误
- 以为 Solidity 的继承模式在 Move 中适用。 Move 没有接口、没有多态,也没有动态分派。它通过模块导入和泛型(
Type<T>)实现组合。 - 以为只有基于角色的访问控制才可行。 Sui 可以实现基于角色的访问控制,但惯用模式是通过自有对象(例如
AdminCap)实现基于能力的访问。能力可以低成本地将所有权转移规则对象化。 - 以为数据像 Solidity 一样存储在合约中。 在 Sui 中,逻辑位于合约(包)中,而数据位于 Move 对象中。
- 期待基于代理的合约升级。 Sui 可以采用类似代理的模式,但升级前后必须对相同的对象类型进行操作。必须保持布局兼容——新合约必须与旧合约布局兼容。升级由
UpgradeCap控制。 - 把每次 Move 函数调用都当作单独的交易。 使用 PTB 将最多 1,024 次合约调用串联成一个原子交易。
- 以为代币像 Solidity 中那样绑定到智能合约。 在 Sui 上,任何人都可以访问共享对象,而自有对象的所有者无需通过合约即可直接访问它们。