cast وanvil
CLI وعقدة محلية
cast وanvil درس مجاني في Web3 & DApp Development Fundamentals على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Web3 & DApp Development Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Web3 & DApp Development Fundamentals 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Two CLI Workhorses
Beyond forge, Foundry ships cast and anvil. cast is a Swiss-army knife for interacting with chains and contracts from the terminal. anvil is a fast local Ethereum node for development.
Together they let you deploy, call, and inspect contracts without writing any application code.
Starting Anvil
Running anvil spins up a local chain at http://127.0.0.1:8545. It prints ten pre-funded accounts with their private keys, ready for testing.
By default it mines a block for every transaction instantly, so there is no waiting.
$ anvil
Listening on 127.0.0.1:8545
Available Accounts
(0) 0xf39F...2266 (10000 ETH)
Private Keys
(0) 0xac09...ff80Anvil Options
Anvil is highly configurable:
--fork-url— fork a live network's state--block-time— mine on a fixed interval instead of per-transaction--accounts/--balance— control test accounts--chain-id— set the chain id
$ anvil --fork-url https://eth.example.com --block-time 5Reading Chain Data with Cast
cast queries chain state directly. Common read commands:
cast block-number— current blockcast balance <addr>— ETH balancecast nonce <addr>— account nonce
$ cast block-number --rpc-url http://127.0.0.1:8545
$ cast balance 0xf39F...2266Calling View Functions
cast call performs a read-only call to a contract function, returning the result without sending a transaction or spending gas.
$ cast call 0xToken "balanceOf(address)(uint256)" 0xUser \
--rpc-url http://127.0.0.1:8545Sending Transactions
cast send signs and broadcasts a state-changing transaction. You supply the contract address, the function signature, arguments, and a private key.
$ cast send 0xToken "transfer(address,uint256)" 0xBob 100 \
--private-key $PK --rpc-url http://127.0.0.1:8545Encoding and Decoding
Cast handles ABI and data conversions:
cast abi-encode/cast calldata— build calldatacast 4byte— look up a function selectorcast --to-dec/--to-hex— number base conversioncast keccak— hash a value
$ cast calldata "transfer(address,uint256)" 0xBob 100
$ cast keccak "Transfer(address,address,uint256)"Inspecting Transactions
After sending, inspect results:
cast tx <hash>— transaction detailscast receipt <hash>— receipt including gasUsed and logscast run <hash>— replay with a full trace
cast run is invaluable for debugging why a transaction reverted.
$ cast receipt 0xabc...123
$ cast run 0xabc...123 --rpc-url http://127.0.0.1:8545Cheats on Anvil
Anvil exposes special RPC methods for testing, mirroring Foundry cheatcodes:
anvil_setBalance— set any account's balanceanvil_impersonateAccount— send as any addressanvil_mine— mine blocks on demandevm_increaseTime— advance the clock
Call them through cast rpc.
$ cast rpc anvil_setBalance 0xUser 0xDE0B6B3A7640000
$ cast rpc evm_increaseTime 3600A Local Workflow
A typical local loop:
- Start
anvilin one terminal - Deploy with
forge scriptorforge createagainst it - Use
cast sendandcast callto exercise the contract - Debug failures with
cast run
All without leaving the command line.
$ forge create src/Counter.sol:Counter \
--private-key $PK --rpc-url http://127.0.0.1:8545Forking for Realistic Tests
Combining anvil --fork-url with cast lets you experiment against a snapshot of mainnet locally: impersonate a whale, call a live protocol, and see real behavior without spending real funds.
This is the safest way to prototype interactions with deployed contracts.
Quick Check
Which command performs a read-only call to a contract function without sending a transaction or spending gas?
Recap
You learned the cast and anvil tools:
anvilruns a fast local node with pre-funded accounts and forkingcast callreads state;cast sendwrites it- Cast encodes/decodes calldata, hashes, and inspects receipts and traces
cast runreplays transactions for debugging- Anvil RPC cheats manipulate balances, time, and mining
This completes the Foundry Toolkit course.
الأسئلة الشائعة
هل درس «cast وanvil» مجاني؟
نعم — نص درس «cast وanvil» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Web3 & DApp Development Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Web3 & DApp Development Fundamentals 4 دروس في المجموع.
ماذا ستتعلم في «cast وanvil»؟
CLI وعقدة محلية تتمرن على Web3 & DApp Development Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Web3 & DApp Development Fundamentals؟
لا تُشترط خبرة سابقة. Web3 & DApp Development Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «cast وanvil»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Web3 & DApp Development Fundamentals هذا؟
نعم. كل درس في Web3 & DApp Development Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.