总结

Sui 代币标准是 Sui 网络上与以太坊网络上的 ERC-20 等效的概念,但更容易使用。

coin::create_currency 创建一个新代币,返回一个存储有关该代币(符号、名称、描述和 logo URL)信息的元数据对象,并返回用于管理代币的 Treasury Cap 对象。 coin::mint 创建新代币,无需指定 MyCoin 作为类型参数,因为编译器可以推断出来。 我们可以使用 TreasuryCap<CoinType> 对象来铸造代币。然而,只有 TreasuryCap 的所有者才能调用它。如果我们想允许用户自由铸造代币, 可以将 TreasuryCap 对象包装在一个共享对象中。 我们还可以通过调用 coin::burn 函数使用 TreasuryCap 来销毁代币。这也会销毁 Coin 对象本身。

Coin 与 Balance

  1. Coin 对象更像一个钱包。Coin 钱包有一个内部余额,可以从中取出现金(Balance)并存入另一个 Coin 钱包对象。 代币也可以很容易地使用 coin::splitcoin::join 拆分和合并。
  2. Balance 更像是现金。它不能单独存储,需要放入钱包或口袋中。开发人员可以选择创建自己的“口袋”对象来存储 Balance。 几个重要的 Balance 函数是 sui::balancesplitwithdraw_all

小数 通常用于代币/代币以减少舍入误差。小数是一个特殊情况,没有更新函数,因为小数是代币的基本属性, 如果更新会改变每个人的余额。因此,为了安全和简化,Sui 的代币标准不允许修改小数。

Gas 是在网络上执行操作(如交易或智能合约)所需的费用。它代表了一种以用户为中心的、承担成本的机制, 维护了区块链网络的去中心化和透明性。应用程序可以接受 SUI 代币作为其应用程序的 gas 费用,或者它们可以接受其他类型的代币作为付款。 在后一种情况下,可以使用 Listing 对象和 buy_coins 函数。