Web3 & DApp Development Fundamentals · Lekcja

cast i anvil

CLI i węzeł lokalny

Lekcja 4 z 413 kroki

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

Opcje 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 5

Odczytywanie danych łańcucha za pomocą Cast

cast bezpośrednio odczytuje stan łańcucha. Typowe polecenia odczytu:

  • cast block-number — bieżący blok
  • cast balance <addr> — saldo ETH
  • cast nonce <addr> — nonce konta
$ cast block-number --rpc-url http://127.0.0.1:8545
$ cast balance 0xf39F...2266

Wywoł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:8545

Wysył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:8545

Kodowanie i dekodowanie

Cast obsługuje konwersje ABI i danych:

  • cast abi-encode / cast calldata — tworzy calldata
  • cast 4byte — wyszukuje selektor funkcji
  • cast --to-dec / --to-hex — konwertuje podstawę liczby
  • cast 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 transakcji
  • cast receipt <hash> — paragon transakcji, w tym gasUsed i logi
  • cast 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:8545

Sztuczki w Anvil

Anvil udostępnia specjalne metody RPC do testów, odzwierciedlające cheatcodes Foundry:

  • anvil_setBalance — ustawia saldo dowolnego konta
  • anvil_impersonateAccount — wysyła transakcje jako dowolny adres
  • anvil_mine — wydobywa bloki na żądanie
  • evm_increaseTime — przesuwa zegar do przodu

Wywołuj je za pomocą cast rpc.

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

Lokalny obieg pracy

Typowy lokalny obieg pracy:

  • Uruchom anvil w jednym terminalu
  • Wdróż kontrakt za pomocą forge script lub forge create, kierując operację do tego węzła
  • Użyj cast send i cast 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:8545

Forkowanie 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:

  • anvil uruchamia szybki lokalny węzeł z wstępnie zasilonymi kontami i obsługą forków
  • cast call odczytuje stan, a cast send go modyfikuje
  • Cast koduje i dekoduje calldata, oblicza hashe oraz analizuje paragony i ślady wykonania
  • cast run odtwarza transakcje na potrzeby debugowania
  • Cheatcodes RPC Anvil pozwalają modyfikować salda, czas i wydobywanie bloków

To kończy kurs Foundry Toolkit.

Bezpłatny start

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.

Wszystkie lekcje w tym kursie

  1. Foundry a Hardhat
  2. Testowanie za pomocą forge
  3. Fuzzing i niezmienniki
  4. cast i anvil
← Powrót do Web3 & DApp Development Fundamentals