Grundlæggende udvikling af Web3- og DApp-programmer · Lektion

cast og anvil

CLI og lokal node

Lektion 4 af 413 trin

cast og anvil er en gratis Grundlæggende udvikling af Web3- og DApp-programmer-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende udvikling af Web3- og DApp-programmer, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 4 lektioner i alt.

To stærke kommandolinjeværktøjer

Ud over forge leverer Foundry cast og anvil. cast er et schweizerknivsværktøj til at interagere med kæder og kontrakter fra terminalen. anvil er en hurtig lokal Ethereum-node til udvikling.

Sammen lader de dig deploye, kalde og undersøge kontrakter uden at skrive programkode til en applikation.

Start Anvil

Når du kører anvil, starter den en lokal kæde på http://127.0.0.1:8545. Den udskriver ti forudfinansierede konti med deres private nøgler, klar til test.

Som standard miner den en blok for hver transaktion med det samme, så du ikke skal vente.

$ anvil
Listening on 127.0.0.1:8545
Available Accounts
(0) 0xf39F...2266 (10000 ETH)
Private Keys
(0) 0xac09...ff80

Anvil-indstillinger

Anvil kan konfigureres i høj grad:

  • --fork-url — fork tilstanden fra et aktivt netværk
  • --block-time — min en blok med et fast interval i stedet for pr. transaktion
  • --accounts / --balance — styr testkonti
  • --chain-id — angiv kædens id
$ anvil --fork-url https://eth.example.com --block-time 5

Læsning af kædedata med Cast

cast forespørger direkte i kædens tilstand. Almindelige læsekommandoer:

  • cast block-number — den aktuelle blok
  • cast balance <addr> — ETH-saldo
  • cast nonce <addr> — kontoens nonce
$ cast block-number --rpc-url http://127.0.0.1:8545
$ cast balance 0xf39F...2266

Kald af view-funktioner

cast call udfører et skrivebeskyttet kald til en kontraktfunktion og returnerer resultatet uden at sende en transaktion eller bruge gas.

$ cast call 0xToken "balanceOf(address)(uint256)" 0xUser \
    --rpc-url http://127.0.0.1:8545

Afsendelse af transaktioner

cast send signerer og udsender en transaktion, der ændrer tilstanden. Du angiver kontraktadressen, funktionssignaturen, argumenterne og en privat nøgle.

$ cast send 0xToken "transfer(address,uint256)" 0xBob 100 \
    --private-key $PK --rpc-url http://127.0.0.1:8545

Kodning og afkodning

Cast håndterer ABI- og datakonverteringer:

  • cast abi-encode / cast calldata — opbyg calldata
  • cast 4byte — slå en funktionsvælger op
  • cast --to-dec / --to-hex — konverter talbaser
  • cast keccak — beregn hash af en værdi
$ cast calldata "transfer(address,uint256)" 0xBob 100
$ cast keccak "Transfer(address,address,uint256)"

Undersøgelse af transaktioner

Undersøg resultaterne efter afsendelse:

  • cast tx <hash> — transaktionsoplysninger
  • cast receipt <hash> — kvittering inklusive gasUsed og logge
  • cast run <hash> — afspil med et fuldt spor

cast run er uvurderlig til fejlfinding af, hvorfor en transaktion reverterede.

$ cast receipt 0xabc...123
$ cast run 0xabc...123 --rpc-url http://127.0.0.1:8545

Snydekoder i Anvil

Anvil stiller særlige RPC-metoder til rådighed til test, som afspejler Foundry-cheatcodes:

  • anvil_setBalance — angiv enhver kontos saldo
  • anvil_impersonateAccount — send som en hvilken som helst adresse
  • anvil_mine — min blokke efter behov
  • evm_increaseTime — skru tiden frem

Kald dem via cast rpc.

$ cast rpc anvil_setBalance 0xUser 0xDE0B6B3A7640000
$ cast rpc evm_increaseTime 3600

En lokal arbejdsgang

En typisk lokal arbejdsgang:

  • Start anvil i én terminal
  • Deploy med forge script eller forge create mod den
  • Brug cast send og cast call til at afprøve kontrakten
  • Fejlfind fejl med cast run

Alt sammen uden at forlade kommandolinjen.

$ forge create src/Counter.sol:Counter \
    --private-key $PK --rpc-url http://127.0.0.1:8545

Forking til realistiske test

Ved at kombinere anvil --fork-url med cast kan du eksperimentere lokalt med et øjebliksbillede af mainnet: efterligne en hval, kalde en aktiv protokol og se den virkelige adfærd uden at bruge rigtige midler.

Det er den sikreste måde at udvikle prototyper af interaktioner med deployede kontrakter.

Hurtigt tjek

Hvilken kommando udfører et skrivebeskyttet kald til en kontraktfunktion uden at sende en transaktion eller bruge gas?

Opsummering

Du har lært værktøjerne cast og anvil:

  • anvil kører en hurtig lokal node med forudfinansierede konti og forkning
  • cast call læser tilstanden, mens cast send skriver til den
  • Cast koder og afkoder calldata, beregner hash og undersøger kvitteringer og spor
  • cast run afspiller transaktioner igen til fejlfinding
  • Anvils RPC-snydekoder manipulerer saldi, tid og mining

Dette afslutter kurset Foundry Toolkit.

Gratis at komme i gang

Lær Grundlæggende udvikling af Web3- og DApp-programmer med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
29
Lektioner
105

Ofte stillede spørgsmål

Er lektionen “cast og anvil” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende udvikling af Web3- og DApp-programmer, inklusive “cast og anvil”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “cast og anvil”?

CLI og lokal node Du øver dig i Grundlæggende udvikling af Web3- og DApp-programmer med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende udvikling af Web3- og DApp-programmer?

Der kræves ingen tidligere erfaring. Grundlæggende udvikling af Web3- og DApp-programmer på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “cast og anvil”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende udvikling af Web3- og DApp-programmer-lektion?

Ja. Alle Grundlæggende udvikling af Web3- og DApp-programmer-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Foundry kontra Hardhat
  2. forge-test
  3. Fuzzing og invariants
  4. cast og anvil
← Tilbage til Grundlæggende udvikling af Web3- og DApp-programmer