cast i anvil
CLI i węzeł lokalny
cast i anvil to bezpłatna lekcja Web3 & DApp Development Fundamentals na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Web3 & DApp Development Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Web3 & DApp Development Fundamentals zawiera 4 lekcji w sumie.
Dwa podstawowe narzędzia CLI
Oprócz forge pakiet Foundry zawiera narzędzia cast i anvil. cast to wszechstronne narzędzie do interakcji z łańcuchami i kontraktami z poziomu terminala. anvil to szybki lokalny węzeł Ethereum do celów deweloperskich.
Razem pozwalają wdrażać, wywoływać i analizować kontrakty bez pisania jakiegokolwiek kodu aplikacji.
Uruchamianie Anvil
Uruchomienie anvil tworzy lokalny łańcuch pod adresem http://127.0.0.1:8545. Narzędzie wyświetla dziesięć wstępnie zasilonych kont wraz z ich kluczami prywatnymi, gotowych do testów.
Domyślnie wydobywa blok natychmiast po każdej transakcji, więc nie trzeba czekać.
$ anvil
Listening on 127.0.0.1:8545
Available Accounts
(0) 0xf39F...2266 (10000 ETH)
Private Keys
(0) 0xac09...ff80Opcje Anvil
Anvil można w dużym stopniu konfigurować:
--fork-url— tworzy fork stanu działającej sieci--block-time— wydobywa bloki w stałych odstępach zamiast po każdej transakcji--accounts/--balance— steruje kontami testowymi--chain-id— ustawia identyfikator łańcucha
$ anvil --fork-url https://eth.example.com --block-time 5Odczytywanie danych łańcucha za pomocą Cast
cast bezpośrednio odczytuje stan łańcucha. Typowe polecenia odczytu:
cast block-number— bieżący blokcast balance <addr>— saldo ETHcast nonce <addr>— nonce konta
$ cast block-number --rpc-url http://127.0.0.1:8545
$ cast balance 0xf39F...2266Wywoływanie funkcji view
cast call wykonuje wywołanie funkcji kontraktu tylko do odczytu i zwraca wynik bez wysyłania transakcji ani zużywania gazu.
$ cast call 0xToken "balanceOf(address)(uint256)" 0xUser \
--rpc-url http://127.0.0.1:8545Wysyłanie transakcji
cast send podpisuje i rozgłasza transakcję zmieniającą stan. Należy podać adres kontraktu, sygnaturę funkcji, argumenty i klucz prywatny.
$ cast send 0xToken "transfer(address,uint256)" 0xBob 100 \
--private-key $PK --rpc-url http://127.0.0.1:8545Kodowanie i dekodowanie
Cast obsługuje konwersje ABI i danych:
cast abi-encode/cast calldata— tworzy calldatacast 4byte— wyszukuje selektor funkcjicast --to-dec/--to-hex— konwertuje podstawę liczbycast keccak— oblicza hash wartości
$ cast calldata "transfer(address,uint256)" 0xBob 100
$ cast keccak "Transfer(address,address,uint256)"Analizowanie transakcji
Po wysłaniu transakcji można przeanalizować jej wyniki:
cast tx <hash>— szczegóły transakcjicast receipt <hash>— paragon transakcji, w tym gasUsed i logicast run <hash>— ponowne wykonanie z pełnym śladem
cast run jest niezwykle przydatne podczas debugowania przyczyn zrewertowania transakcji.
$ cast receipt 0xabc...123
$ cast run 0xabc...123 --rpc-url http://127.0.0.1:8545Sztuczki w Anvil
Anvil udostępnia specjalne metody RPC do testów, odzwierciedlające cheatcodes Foundry:
anvil_setBalance— ustawia saldo dowolnego kontaanvil_impersonateAccount— wysyła transakcje jako dowolny adresanvil_mine— wydobywa bloki na żądanieevm_increaseTime— przesuwa zegar do przodu
Wywołuj je za pomocą cast rpc.
$ cast rpc anvil_setBalance 0xUser 0xDE0B6B3A7640000
$ cast rpc evm_increaseTime 3600Lokalny obieg pracy
Typowy lokalny obieg pracy:
- Uruchom
anvilw jednym terminalu - Wdróż kontrakt za pomocą
forge scriptlubforge create, kierując operację do tego węzła - Użyj
cast sendicast call, aby wykonywać operacje na kontrakcie - Debuguj błędy za pomocą
cast run
Wszystko to bez opuszczania wiersza poleceń.
$ forge create src/Counter.sol:Counter \
--private-key $PK --rpc-url http://127.0.0.1:8545Forkowanie na potrzeby realistycznych testów
Połączenie anvil --fork-url z cast pozwala eksperymentować lokalnie na migawce sieci głównej: podszyć się pod wieloryba, wywołać działający protokół i obserwować rzeczywiste zachowanie bez wydawania prawdziwych środków.
To najbezpieczniejszy sposób prototypowania interakcji z wdrożonymi kontraktami.
Szybkie sprawdzenie
Jakie polecenie wykonuje wywołanie funkcji kontraktu tylko do odczytu, bez wysyłania transakcji ani zużywania gazu?
Podsumowanie
Dowiedziałeś się, jak korzystać z narzędzi cast i anvil:
anviluruchamia szybki lokalny węzeł z wstępnie zasilonymi kontami i obsługą forkówcast callodczytuje stan, acast sendgo modyfikuje- Cast koduje i dekoduje calldata, oblicza hashe oraz analizuje paragony i ślady wykonania
cast runodtwarza transakcje na potrzeby debugowania- Cheatcodes RPC Anvil pozwalają modyfikować salda, czas i wydobywanie bloków
To kończy kurs Foundry Toolkit.
Ucz się Web3 & DApp Development Fundamentals dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 29
- Lekcje
- 105
Często zadawane pytania
Czy lekcja „cast i anvil” jest bezpłatna?
Tak — pełny tekst „cast i anvil” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Web3 & DApp Development Fundamentals, przejdź na CoddyKit PRO. Kurs Web3 & DApp Development Fundamentals zawiera 4 lekcji w sumie.
Co nauczysz się w „cast i anvil”?
CLI i węzeł lokalny Ćwiczysz Web3 & DApp Development Fundamentals z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Web3 & DApp Development Fundamentals?
Nie wymagamy żadnego doświadczenia. Web3 & DApp Development Fundamentals w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „cast i anvil”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Web3 & DApp Development Fundamentals?
Tak. Każda lekcja Web3 & DApp Development Fundamentals zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.