总结
Sui 代币标准是 Sui 网络上与以太坊网络上的 ERC-20 等效的概念,但更容易使用。
coin::create_currency
创建一个新代币,返回一个存储有关该代币(符号、名称、描述和 logo URL)信息的元数据对象,并返回用于管理代币的 Treasury Cap 对象。
coin::mint
创建新代币,无需指定 MyCoin
作为类型参数,因为编译器可以推断出来。
我们可以使用 TreasuryCap<CoinType>
对象来铸造代币。然而,只有 TreasuryCap 的所有者才能调用它。如果我们想允许用户自由铸造代币,
可以将 TreasuryCap 对象包装在一个共享对象中。
我们还可以通过调用 coin::burn
函数使用 TreasuryCap 来销毁代币。这也会销毁 Coin 对象本身。
Coin 与 Balance
- Coin 对象更像一个钱包。Coin 钱包有一个内部余额,可以从中取出现金(Balance)并存入另一个 Coin 钱包对象。
代币也可以很容易地使用
coin::split
和coin::join
拆分和合并。 - Balance 更像是现金。它不能单独存储,需要放入钱包或口袋中。开发人员可以选择创建自己的“口袋”对象来存储 Balance。
几个重要的 Balance 函数是
sui::balance
、split
和withdraw_all
。
小数 通常用于代币/代币以减少舍入误差。小数是一个特殊情况,没有更新函数,因为小数是代币的基本属性, 如果更新会改变每个人的余额。因此,为了安全和简化,Sui 的代币标准不允许修改小数。
Gas 是在网络上执行操作(如交易或智能合约)所需的费用。它代表了一种以用户为中心的、承担成本的机制,
维护了区块链网络的去中心化和透明性。应用程序可以接受 SUI 代币作为其应用程序的 gas 费用,或者它们可以接受其他类型的代币作为付款。
在后一种情况下,可以使用 Listing
对象和 buy_coins
函数。