1 unstable release
0.1.0 | Jun 25, 2024 |
---|
#15 in #nfc
21KB
459 lines
- Framework for ICRC7 NFT implementation for Internet Computer
** Simple NFT
*** add next to dependences in Cargo.toml
#+BEGIN_SRC toml
uncensored-greats-dao = "0.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
candid = "0.10"
#+END_SRC
*** to create NFT struct TestToken with symbol TT and name TestToken in src/lib.rs add
#+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
*** build and deploy to test network #+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
*** creating token
#+BEGIN_SRC bash
dfx canister call test_token create_token
"(record{
token=record {
name="test";
description=opt"test description"
};
})"
#+END_SRC
*** mint created token
#+BEGIN_SRC bash
dfx canister call test_token mint
"(record{
token_id=1;
holders=vec{record{owner=principal"$YOU"}}
})"
#+END_SRC
to check more methots please check examples/test_token
Dependencies
~8–16MB
~211K SLoC