#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.