#dusk $DUSK CITIȚI-MI licența
DRC20 - Standardul public fungibil pentru DuskDS
Stare: implementare de referință / draft: standardul și interfața sunt încă deschise pentru feedback. Vă rugăm să deschideți o problemă (sau o solicitare de îmbunătățire) cu sugestii, cazuri extreme sau preocupări legate de compatibilitate.
O implementare minimă de tip ERC20 pentru tokenuri fungibile pe rețeaua DuskDS.
Structura repozitoriului#Listing
contract/ — contractul DRC20 pe lanț (WASM)
types/ — tipuri partajate (conturi, argumente de apel, evenimente, șiruri de erori)
data-driver/ — driverul de date compilat în *_driver_opt.wasm pentru instrumentele SDK pentru browser
web/ — interfață minimă de administrare (conectare + citire + trimitere tranzacții)
Interfață
Vizualizări#dusk
name() -> String
symbol() -> String
decimals() -> u8
total_supply() -> u64
balance_of(BalanceOf) -> u64
allowance(Allowance) -> u64
Stare modificată
transfer(TransferCall)
approve(ApproveCall)
transfer_from(TransferFromCall)
Evenimente
transfer (events::Transfer)
approval (events::Approval)
Construire
Prerequisitoare
Toolchain-ul Rust este fixat în rust-toolchain.toml
target WASM:
rustup target add wasm32-unknown-unknown
jq este folosit de Makefiles (parsare cargo metadata).
Opțional: wasm-opt (din Binaryen) pentru ieșiri optimizate.
1) Construiți WASM-ul contractului
make wasm-opt # ieșire: target/wasm32-unknown-unknown/release/drc20_opt.wasm
2) Construiți WASM-ul driverului de date (pentru browser)
make data-driver-js # ieșire: target/wasm32-unknown-unknown/release/drc20_driver_opt.wasm
Copiați-l în aplicația web:
cp target/wasm32-unknown-unknown/release/drc20_driver_opt.wasm web/public/data_driver.wasm
3) Rulați interfața web de administrare
cd web
npm i
npm run dev
Deschideți:
http://localhost:5173/?network=testnet&contractId=0xIDUL_TĂU_DE_32_DE_BIȚI
Suprascrieri opționale:
&nodeUrl=https://testnet.nodes.dusk.network&driverUrl=/data_driver.wasm
Deploiare
1) Pregătiți argumentele constructorului (Init)
Acest repozitoriu așteaptă un init.json în rădăcina repo-ului, care descrie distribuția inițială.
init.json este ignorat de git (așa că puteți păstra în siguranță adresele locale / configurațiile în afara controlului versiunii).
example.init.json este comitat ca punct de pornire.
