1 个不稳定版本
0.3.0 | 2024年1月9日 |
---|
#308 in #pure
39KB
527 代码行
在纯 ink 中实现 PSP22 令牌标准!包含以下扩展 trait
- 元数据
- 可燃烧
- 可铸造
- 可暂停
- 包装器
- 所有者
构建
https://github.com/paritytech/cargo-contract
cargo contract build --release --features "contract"
单元测试
cargo test --features "contract"
关于
模块概述
lib.rs
:包含所有其他模块并重新导出关键组件的主要模块。data.rs
:定义结构体和枚举,用于管理令牌数据和事件。errors.rs
:包含错误处理枚举。traits.rs
:声明了多个 trait,如PSP22
、PSP22Metadata
、PSP22Burnable
、PSP22Mintable
、PSP22Pausable
、PSP22Wrapper
和Ownable
,这些 trait 定义了 PSP22 令牌的标准功能。
lib.rs
Token
:表示 PSP22 令牌的主要结构体。它包括创建令牌的方法(new
)和发出事件的方法(emit_events
)。Approval
和Transfer
:用于发出与令牌转移和批准相关事件的事件结构体。
data.rs
PSP22Data
:一个结构体,用于维护所有账户余额和允许的状态。包括令牌供应管理、余额查询和允许管理的方法。PSP22Event
:一个枚举,表示在PSP22Data
状态变化期间发生的事件。
errors.rs
PSP22Error
:一个枚举,用于 PSP22 特定错误,例如余额不足或允许不足。OwnableError
:一个枚举,用于与所有权管理相关的错误。
traits.rs
PSP22
:一个 trait,定义了 PSP22 令牌的核心功能,包括查询供应、余额和允许的方法,以及执行转移和批准的方法。PSP22Metadata
:一个用于访问代币元数据(如名称、符号和小数位数)的特质。PSP22Burnable
:一个用于代币燃烧功能的特质。PSP22Mintable
:一个用于代币铸造功能的特质。PSP22Pausable
:一个用于暂停和恢复代币转账的特质。PSP22Wrapper
:一个用于存款和提现功能的特质。Ownable
:一个用于所有权管理的特质,包括查询所有者、转移所有权和放弃所有权。
一般说明
- 该库遵循PSP22标准,适用于可交易代币。
PSP22Data
中的大多数方法和traits.rs
中的特质返回Result
类型,表示它们可能会因PSP22Error
而失败。- 事件是库的必要部分,用于指示状态变化,如转账和批准。
本文档提供了您Rust库结构和功能的概述。为了全面理解,用户应参考每个模块中的详细注释和实现。
依赖项
~7–11MB
~194K SLoC