1 unstable release

0.1.0 Jun 25, 2024

#15 in #nfc

Apache-2.0

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
~214K SLoC