cast og anvil
CLI og lokal node
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...ff80Anvil-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 5Læsning af kædedata med Cast
cast forespørger direkte i kædens tilstand. Almindelige læsekommandoer:
cast block-number— den aktuelle blokcast balance <addr>— ETH-saldocast nonce <addr>— kontoens nonce
$ cast block-number --rpc-url http://127.0.0.1:8545
$ cast balance 0xf39F...2266Kald 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:8545Afsendelse 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:8545Kodning og afkodning
Cast håndterer ABI- og datakonverteringer:
cast abi-encode/cast calldata— opbyg calldatacast 4byte— slå en funktionsvælger opcast --to-dec/--to-hex— konverter talbasercast 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>— transaktionsoplysningercast receipt <hash>— kvittering inklusive gasUsed og loggecast 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:8545Snydekoder i Anvil
Anvil stiller særlige RPC-metoder til rådighed til test, som afspejler Foundry-cheatcodes:
anvil_setBalance— angiv enhver kontos saldoanvil_impersonateAccount— send som en hvilken som helst adresseanvil_mine— min blokke efter behovevm_increaseTime— skru tiden frem
Kald dem via cast rpc.
$ cast rpc anvil_setBalance 0xUser 0xDE0B6B3A7640000
$ cast rpc evm_increaseTime 3600En lokal arbejdsgang
En typisk lokal arbejdsgang:
- Start
anvili én terminal - Deploy med
forge scriptellerforge createmod den - Brug
cast sendogcast calltil 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:8545Forking 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:
anvilkører en hurtig lokal node med forudfinansierede konti og forkningcast calllæser tilstanden, menscast sendskriver til den- Cast koder og afkoder calldata, beregner hash og undersøger kvitteringer og spor
cast runafspiller transaktioner igen til fejlfinding- Anvils RPC-snydekoder manipulerer saldi, tid og mining
Dette afslutter kurset Foundry Toolkit.
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.