1 个稳定版本

3.0.0 2022年3月23日

#19 in #demonstrate

MIT 许可证

26KB
422

ERC-721

这是 ERC-721 代币实现的示例。

警告

此合约是一个 示例。它未经审计,也不适合生产使用。请不要依赖它来保持任何有价值的安全。

概述

此合约演示了如何使用 ink! 构建不可替代或独特的代币。

错误处理

任何修改状态的函数都返回一个 Result 类型,并在发生错误时不会改变状态。错误定义为 enum 类型。任何其他错误或不变量违反都会引发 panic,并因此回滚交易。

代币管理

创建新代币后,函数调用者成为所有者。代币可以被创建、转移或销毁。

代币所有者可以为其他账户分配代表他们转移特定代币的权限。还可以授权操作员(更高权限)处理另一个账户的代币。

代币创建

代币创建是通过调用 mint(&mut self, id: u32) 函数开始的。代币所有者成为函数调用者。需要指定代币 ID 作为此函数调用的参数。

代币转移

转移可以由以下方式发起:

  • 代币的所有者
  • 代币的批准地址
  • 代币当前所有者的授权操作员

代币所有者可以通过调用 transfertransfer_from 函数来转移代币。批准地址可以通过调用 transfer_from 函数进行代币转移。操作员可以代表另一个账户转移代币,或者可以为不同账户批准代币转移。

代币销毁

代币可以通过燃烧来销毁。只有代币所有者被允许销毁代币。

依赖项

~5–7MB
~131K SLoC