Crates.io | uncensored-greats-dao |
lib.rs | uncensored-greats-dao |
version | 0.1.0 |
source | src |
created_at | 2024-06-25 17:01:40.529952 |
updated_at | 2024-06-25 17:01:40.529952 |
description | ICRC implemenations |
homepage | https://github.com/UncensoredGreats/NFT |
repository | https://github.com/UncensoredGreats/NFT |
max_upload_size | |
id | 1283513 |
size | 18,773 |
** 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