Skip to main content

概览

基础

Token 重用了在 sui::coin 模块中定义的 TreasuryCap,因此具有相同的初始化过程。coin::create_currency 方法确保了 TreasuryCap 的唯一性并强制创建了一个 CoinMetadata 对象。

铸造和销毁通过类似 Coin 的方法完成。两者都需要 TreasuryCap

  • token::mint - 铸造一个 Token
  • token::burn - 销毁一个 Token

请参阅 创建 Coin 指南,了解有关如何创建 Coin 的更多详细信息。

公共操作

Token 有一组公共和受保护的操作,用于管理代币。公共操作对所有人都可用,无需任何授权。它们具有类似于 Coin 的 API,但操作的是 Token 类型:

  • token::keep - 将 Token 发送给交易发送方
  • token::join - 合并两个 Token
  • token::split - 将 Token 拆分为两个,指定要拆分的数量
  • token::zero - 创建一个空的(零余额)Token
  • token::destroy_zero - 销毁零余额的 Token

请参阅 Coin 与 Token 方法对比 以比较 Coin 和 Token 的方法。

受保护的操作

受保护的操作是会触发 ActionRequest 的操作,必须解决 ActionRequest 才能使交易成功。解决 ActionRequest 的主要方式有 3 种,其中最常见的是通过 TokenPolicy

  • token::transfer - 将 Token 转移到指定地址
  • token::to_coin - 将 Token 转换为 Coin
  • token::from_coin - 将 Coin 转换为 Token
  • token::spend - 在指定地址上消费 Token

上述方法包含在基本实现中,但也可以为自定义操作创建 ActionRequest。

Token 策略与规则

受保护的操作默认情况下是禁用的,可以在 TokenPolicy 中启用。此外,Token 拥有者可以设置称为 Rules 的自定义限制,这些限制必须满足特定操作才能成功。