0Pricing
Web3 & DApp Development Fundamentals · درس

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

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

Reading Chain Data with Cast

cast queries chain state directly. Common read commands:

  • cast block-number — current block
  • cast balance <addr> — ETH balance
  • cast nonce <addr> — account nonce
$ cast block-number --rpc-url http://127.0.0.1:8545
$ cast balance 0xf39F...2266

Calling 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:8545

Sending 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:8545

Encoding and Decoding

Cast handles ABI and data conversions:

  • cast abi-encode / cast calldata — build calldata
  • cast 4byte — look up a function selector
  • cast --to-dec / --to-hex — number base conversion
  • cast 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 details
  • cast receipt <hash> — receipt including gasUsed and logs
  • cast 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:8545

Cheats on Anvil

Anvil exposes special RPC methods for testing, mirroring Foundry cheatcodes:

  • anvil_setBalance — set any account's balance
  • anvil_impersonateAccount — send as any address
  • anvil_mine — mine blocks on demand
  • evm_increaseTime — advance the clock

Call them through cast rpc.

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

A Local Workflow

A typical local loop:

  • Start anvil in one terminal
  • Deploy with forge script or forge create against it
  • Use cast send and cast call to 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:8545

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

  • anvil runs a fast local node with pre-funded accounts and forking
  • cast call reads state; cast send writes it
  • Cast encodes/decodes calldata, hashes, and inspects receipts and traces
  • cast run replays 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Foundry مقابل Hardhat
  2. اختبار forge
  3. الاختبار العشوائي والثوابت
  4. cast وanvil
← العودة إلى Web3 & DApp Development Fundamentals