1 个稳定版本
1.0.0 | 2024 年 5 月 6 日 |
---|
#21 在 #coin
每月下载 34 次
27KB
348 行
Wrapped AZERO
此仓库包含了一个用于 Aleph Zero 区块链的 ink! 智能合约,该合约可以将原生链币(AZERO)包装成遵循 PSP22 标准的通用代币。
该合约已部署到以下测试网和主网地址下
- Aleph Zero 主网:
5CtuFVgEUz13SFPVY6s2cZrnLDEkxQXc19aXrNARwEBeCXgg
- Aleph Zero 测试网:
5EFDb7mKbougLtr5dnwd5KDfZ3wK55JPGPLiryKq4uRMPR46
artifacts
文件夹包含已部署的确切编译二进制文件,以及用于验证的所有其他编译工件。
此仓库的内容已发布到 crates.io,以便于其他项目轻松集成。
如何从其他合约交互 Wrapped AZERO
- 在你的项目的
Cargo.toml
中添加 wrapped-azero 依赖项
wrapped-azero = { version = "1.0", default-features = false, features = ["ink-as-dependency"] }
# ...
[features]
# ...
std = [
# ...
"wrapped-azero/std",
]
- 要从你的合约调用
deposit
和withdraw
方法,使用contract_ref
宏与WrappedAZERO
特性
use ink::{codegen::TraitCallBuilder, contract_ref};
use wrapped_azero::{WrappedAZERO, MAINNET};
let mut wazero: contract_ref!(WrappedAZERO) = MAINNET.into();
wazero.withdraw(amount); // returns Result<(), PSP22Error>
// Deposit call must be composed manually to be able to attach AZERO transfer
wazero.call_mut().deposit().transferred_value(amount).invoke(); // returns Result<(), PSP22Error>
- 要从你的合约调用常规 PSP22 方法(转账、余额、批准),使用
contract_ref
宏与PSP22
特性
use ink::contract_ref;
use ink::prelude::vec;
use wrapped_azero::{PSP22, MAINNET};
let mut wazero: contract_ref!(PSP22) = MAINNET.into();
let balance = wazero.balance_of(some_account);
wazero.transfer(recipient, value, vec![]); // returns Result<(), PSP22Error>
如何通过 Web 界面手动交互 Wrapped AZERO
- 访问 Contracts UI。
- 从左上角的网络菜单中选择 "Aleph Zero"(或 "Aleph Zero 测试网")。
- 选择 "添加新合约" 然后选择 "使用链上合约地址"。
- 粘贴上述列出的主网(测试网)地址。
- 选择您喜欢的任何名称,并使用从
artifacts
文件夹中获取的 元数据文件。 - 选择调用者以及要调用的方法。对于只读方法(如
psp22::balanceOf
),您将立即看到响应。对于其他方法,填写参数(所有限制值保持默认值),并签署交易(您需要连接到 Contracts UI 的 Aleph Zero Signer 或类似浏览器扩展)。
依赖项
~7–11MB
~196K SLoC