ant-design-web3 icon indicating copy to clipboard operation
ant-design-web3 copied to clipboard

feat: Support Sui

Open gin-lsl opened this issue 7 months ago • 8 comments

[中文版模板 / Chinese template]

💡 Background and solution

添加 Sui 适配。

内部使用了 Sui 官方提供的 @mysten/dapp-kit@mysten/sui,请求基于 React Query。

一些简单的概念:

  • Sui 将它的状态称为 Object,包括资产、合约状态等,所以会看到一些链方法例如 “getObject” 等。
  • Sui 使用 Move 编写智能合约,所以相对应的有个 moveObject 的概念,所以有时候会遇到单词 move,要注意它不是“移动”的意思。
  • 编译后的合约代码称为 Package;将数据、资源等称为 moveObject(例如 NFT、代币等)。
  • ZAN 已支持 Sui 的 mainnet 和 testnet。
  • Sui 官方实现了 Wallet Standard 标准,一些常见钱包都支持(例如 Sui WalletSuiet);
  • 账户下可以有多种 Coin(这里有一份 Coin List)。所以它除了有 getBalance 外,还有 getBalances 接口(此 PR 使用了 getBalance,获取的是默认的 Sui Coin)
  • 官网提供了从 faucet 获取代币的方法 Get Sui Tokens。如果安装了 Sui Wallet 钱包,可以在钱包中一键获取。

一些跟此 PR 无关但比较有意思的概念 😄️:

  • Sui 的合约是可升级的
  • Sui 的 NFT 是可组合的。例如一个游戏角色可以装备某些武器,武器作为它的属性。当然武器也可以有自己的属性,可以添加装饰、附魔 Buff 等。

Todo List:

  • [x] 测试用例
  • [x] Demo
  • [x] 文档
  • [x] Readme

🔗 Related issue link

gin-lsl avatar Jul 08 '24 08:07 gin-lsl