cast 与 anvil
CLI 与本地节点
cast 与 anvil 是 CoddyKit 上的免费 Web3 & DApp Development Fundamentals 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 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.
用 AI 导师学习 Web3 & DApp Development Fundamentals — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 29
- 课程
- 105
常见问题解答
「cast 与 anvil」课时是免费的吗?
是的 — 「cast 与 anvil」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Web3 & DApp Development Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Web3 & DApp Development Fundamentals 课程共包含 4 节课。
「cast 与 anvil」这节课中我会学到什么?
CLI 与本地节点 你通过在浏览器中直接运行的动手代码来练习 Web3 & DApp Development Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Web3 & DApp Development Fundamentals 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Web3 & DApp Development Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「cast 与 anvil」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Web3 & DApp Development Fundamentals 课中编写并运行代码吗?
能。每节 Web3 & DApp Development Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Foundry 与 Hardhat 对比
- forge 测试
- 模糊测试与不变量
- cast 与 anvil