Web3 & DApp Development Fundamentals · Lektion

cast und anvil

CLI und lokaler Node

Lektion 4 von 413 Schritte

cast und anvil ist eine kostenlose Web3 & DApp Development Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Web3 & DApp Development Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Zwei CLI-Arbeitspferde

Neben forge liefert Foundry cast und anvil mit. cast ist ein Schweizer Taschenmesser für die Interaktion mit Chains und Contracts über das Terminal. anvil ist ein schneller lokaler Ethereum-Node für die Entwicklung.

Zusammen ermöglichen sie Ihnen, Contracts zu deployen, aufzurufen und zu untersuchen, ohne Anwendungscode schreiben zu müssen.

Anvil starten

Durch das Ausführen von anvil wird eine lokale Chain unter http://127.0.0.1:8545 gestartet. Dabei werden zehn vorfinanzierte Accounts mit ihren privaten Schlüsseln ausgegeben, die sofort zum Testen bereitstehen.

Standardmäßig wird für jede Transaktion sofort ein Block gemined, sodass keine Wartezeit entsteht.

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

Anvil-Optionen

Anvil lässt sich umfassend konfigurieren:

  • --fork-url — den Zustand eines Live-Netzwerks forken
  • --block-time — in einem festen Intervall statt nach jeder Transaktion minen
  • --accounts / --balance — Test-Accounts steuern
  • --chain-id — die Chain-ID festlegen
$ anvil --fork-url https://eth.example.com --block-time 5

Chain-Daten mit Cast lesen

cast fragt den Zustand der Chain direkt ab. Häufig verwendete Lese-Befehle:

  • cast block-number — aktueller Block
  • cast balance <addr> — ETH-Guthaben
  • cast nonce <addr> — Nonce des Accounts
$ cast block-number --rpc-url http://127.0.0.1:8545
$ cast balance 0xf39F...2266

View-Funktionen aufrufen

cast call führt einen schreibgeschützten Aufruf einer Contract-Funktion aus und gibt das Ergebnis zurück, ohne eine Transaktion zu senden oder Gas zu verbrauchen.

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

Transaktionen senden

cast send signiert und verbreitet eine zustandsändernde Transaktion. Sie geben die Contract-Adresse, die Funktionssignatur, die Argumente und einen privaten Schlüssel an.

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

Kodieren und dekodieren

Cast verarbeitet ABI- und Datenkonvertierungen:

  • cast abi-encode / cast calldata — Calldata erstellen
  • cast 4byte — einen Funktionsselektor nachschlagen
  • cast --to-dec / --to-hex — Zahlenbasis konvertieren
  • cast keccak — einen Wert hashen
$ cast calldata "transfer(address,uint256)" 0xBob 100
$ cast keccak "Transfer(address,address,uint256)"

Transaktionen untersuchen

Untersuchen Sie nach dem Senden die Ergebnisse:

  • cast tx <hash> — Transaktionsdetails
  • cast receipt <hash> — Receipt einschließlich gasUsed und Logs
  • cast run <hash> — mit einem vollständigen Trace erneut ausführen

cast run ist für die Fehlersuche bei zurückgesetzten Transaktionen besonders hilfreich.

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

Cheats in Anvil

Anvil stellt spezielle RPC-Methoden zum Testen bereit, die Foundry-Cheatcodes nachbilden:

  • anvil_setBalance — das Guthaben eines beliebigen Accounts festlegen
  • anvil_impersonateAccount — als beliebige Adresse senden
  • anvil_mine — Blöcke nach Bedarf minen
  • evm_increaseTime — die Uhr vorstellen

Rufen Sie sie über cast rpc auf.

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

Ein lokaler Workflow

Ein typischer lokaler Ablauf:

  • anvil in einem Terminal starten
  • Mit forge script oder forge create darauf deployen
  • Mit cast send und cast call mit dem Contract interagieren
  • Fehler mit cast run untersuchen

All das, ohne die Kommandozeile zu verlassen.

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

Forks für realistische Tests

Wenn Sie anvil --fork-url mit cast kombinieren, können Sie lokal mit einem Snapshot des Mainnets experimentieren: impersonieren Sie einen Whale, rufen Sie ein Live-Protokoll auf und beobachten Sie das echte Verhalten, ohne echte Mittel auszugeben.

Dies ist der sicherste Weg, Interaktionen mit deployten Contracts zu prototypisieren.

Kurze Überprüfung

Welcher Befehl führt einen schreibgeschützten Aufruf einer Contract-Funktion aus, ohne eine Transaktion zu senden oder Gas zu verbrauchen?

Zusammenfassung

Sie haben die Tools cast und anvil gelernt:

  • anvil führt einen schnellen lokalen Node mit vorfinanzierten Accounts und Forking aus
  • cast call liest den Zustand; cast send schreibt ihn
  • Cast kodiert und dekodiert Calldata, hasht Daten und untersucht Receipts und Traces
  • cast run führt Transaktionen zur Fehlersuche erneut aus
  • Anvil-RPC-Cheats manipulieren Guthaben, Zeit und Mining

Damit ist der Foundry-Toolkit-Kurs abgeschlossen.

Kostenlos starten

Lerne Web3 & DApp Development Fundamentals mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
29
Lektionen
105

Häufig gestellte Fragen

Ist die Lektion „cast und anvil“ kostenlos?

Ja — der vollständige Text von „cast und anvil“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Web3 & DApp Development Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „cast und anvil“?

CLI und lokaler Node Du übst Web3 & DApp Development Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Web3 & DApp Development Fundamentals zu starten?

Keine Vorkenntnisse erforderlich. Web3 & DApp Development Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „cast und anvil“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Web3 & DApp Development Fundamentals-Lektion Code schreiben und ausführen?

Ja. Jede Web3 & DApp Development Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Foundry vs. Hardhat
  2. forge-Tests
  3. Fuzzing und Invarianten
  4. cast und anvil
← Zurück zu Web3 & DApp Development Fundamentals