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