1 个稳定版本
3.0.0 | 2022年3月23日 |
---|
#19 in #demonstrate
26KB
422 行
ERC-721
这是 ERC-721 代币实现的示例。
警告
此合约是一个 示例。它未经审计,也不适合生产使用。请不要依赖它来保持任何有价值的安全。
概述
此合约演示了如何使用 ink! 构建不可替代或独特的代币。
错误处理
任何修改状态的函数都返回一个 Result
类型,并在发生错误时不会改变状态。错误定义为 enum
类型。任何其他错误或不变量违反都会引发 panic,并因此回滚交易。
代币管理
创建新代币后,函数调用者成为所有者。代币可以被创建、转移或销毁。
代币所有者可以为其他账户分配代表他们转移特定代币的权限。还可以授权操作员(更高权限)处理另一个账户的代币。
代币创建
代币创建是通过调用 mint(&mut self, id: u32)
函数开始的。代币所有者成为函数调用者。需要指定代币 ID 作为此函数调用的参数。
代币转移
转移可以由以下方式发起:
- 代币的所有者
- 代币的批准地址
- 代币当前所有者的授权操作员
代币所有者可以通过调用 transfer
或 transfer_from
函数来转移代币。批准地址可以通过调用 transfer_from
函数进行代币转移。操作员可以代表另一个账户转移代币,或者可以为不同账户批准代币转移。
代币销毁
代币可以通过燃烧来销毁。只有代币所有者被允许销毁代币。
依赖项
~5–7MB
~131K SLoC