#dusk $DUSK READMEMIT licence
DRC20 - Veřejný standard pro fungibilní tokeny pro DuskDS
Stav: Referenční implementace / návrh: standard a rozhraní jsou stále otevřené pro zpětnou vazbu. Prosím, otevřete problém (nebo PR) s návrhy, okrajovými případy nebo otázkami kompatibility.
Minimální implementace fungibilního tokenu podobná ERC20 pro síť DuskDS.
Rozložení repozitáře#Listing
contract/ — on-chain DRC20 kontrakt (WASM)
types/ — sdílené typy (účty, argumenty volání, události, řetězce chyb)
data-driver/ — data-driver zkompilovaný do *_driver_opt.wasm pro nástroje SDK pro prohlížeč
web/ — minimální správní/manažerské uživatelské rozhraní (připojení + čtení + odesílání transakce)
Rozhraní
Zobrazení#dusk
name() -> Řetězec
symbol() -> Řetězec
decimals() -> u8
total_supply() -> u64
balance_of(BalanceOf) -> u64
allowance(Allowance) -> u64
Změna stavu
transfer(TransferCall)
approve(ApproveCall)
transfer_from(TransferFromCall)
Události
transfer (events::Transfer)
approval (events::Approval)
Sestavení
Předpoklady
Nástrojový řetězec Rust je pevně stanoven v rust-toolchain.toml
wasm cíl:
rustup target add wasm32-unknown-unknown
jq je používán Makefile (parsuje cargo metadata).Volitelně: wasm-opt (z Binaryen) pro optimalizované výstupy.
1) Sestavte kontrakt WASM
make wasm-opt # výstup: target/wasm32-unknown-unknown/release/drc20_opt.wasm
2) Sestavte data-driver WASM (pro prohlížeč)
make data-driver-js # výstup: target/wasm32-unknown-unknown/release/drc20_driver_opt.wasm
Zkopírujte jej do webové aplikace:
cp target/wasm32-unknown-unknown/release/drc20_driver_opt.wasm web/public/data_driver.wasm
3) Spusťte webové manažerské uživatelské rozhraní
cd web
npm i
npm run dev
Otevřete:
http://localhost:5173/?network=testnet&contractId=0xVAŠE_32B_ID_KONTRAKTU
Volitelné přepsání:
&nodeUrl=https://testnet.nodes.dusk.network&driverUrl=/data_driver.wasm
Nasazení
1) Připravte argumenty konstruktoru (Init)
Tento repozitář očekává soubor init.json v kořenovém adresáři popisující počáteční rozdělení.
Soubor init.json je ignorován git (takže můžete bezpečně uchovávat lokální adresy / konfigurace mimo kontrolu verzí).example.init.json je přidán jako výchozí bod.
