1 个不稳定版本
0.1.0 | 2024年6月25日 |
---|
#15 在 #nfc
21KB
459 行
- 用于互联网计算机的 ICRC7 NFT 实现框架
** 简单 NFT
*** 在 Cargo.toml #+BEGIN_SRC toml uncensored-greats-dao = "0.1" serde = { version = "1", features = ["derive"] } serde_json = "1" candid = "0.10" #+END_SRC
*** 在 src/lib.rs 中创建具有符号 TT 和名称 TestToken 的 NFT 结构 TestToken,添加 #+BEGIN_SRC rust use serde::{Deserialize, Serialize}; use uncensored_greats_dao::{Icrc7, Metadata, Storage}; use candid::CandidType;
#[derive( CandidType, Clone, Hash, Default, Serialize, Deserialize, )] pub struct TestToken { pub name: String, pub description: Option, }
impl Metadata for TestToken { fn metadata(&self) -> String { serde_json::to_string(&serde_json::json!({ "name": self.name, "description": self.description })) .unwrap_or_default() } }
#[derive(Icrc7, Storage, Deserialize, Serialize, Default)] #[icrc7(token_type = "TestToken")] #[icrc7(symbol = "TT")] #[icrc7(name = "Test Token")] pub struct TokenCollections {} #+END_SRC
*** 构建并部署到测试网络 #+BEGIN_SRC bash rustup target add wasm32-unknown-unknown cargo install candid-extractor cargo build --release --target wasm32-unknown-unknown --package test_token candid-extractor target/wasm32-unknown-unknown/release/test_token.wasm > test_token.did
dfx start --clean --background dfx deploy test_token #+END_SRC
*** 创建代币 #+BEGIN_SRC bash dfx canister call test_token create_token
"(record{ token=record { name="test"; description=opt"test description" }; })" #+END_SRC
*** 创建的代币已铸币 #+BEGIN_SRC bash dfx canister call test_token mint
"(record{ token_id=1; holders=vec{record{owner=principal"$YOU"}} })" #+END_SRC
要查看更多方法,请检查 examples/test_token
依赖项
~9MB
~157K SLoC