foundry框架

学习笔记web3

Foundry

forge

  • 用于编译、测试和部署智能合约
  • forge init hello_foundry 初始化项目
  • forge build 构建项目
  • forge test 运行测试
    • -vv 显示日志
    • -vvv 显示更详细的日志
    • -vvvv 显示跟踪信息
    • --match-test testFunctionName 运行指定测试函数
  • forge create --rpc-url <your_rpc_url> --private-key <your_private_key> src/MyContract.sol:MyContract 部署合约
  • forge fmt 格式化代码
  • forge snapshot 生成 gas 报告
  • forge coverage 生成测试覆盖率报告

Cast

  • 用于发送交易,查询数据,编码和解码数据,与智能合约交互
  • cast send 发送交易
  • cast call 调用只读函数
  • cast balance 查询账户余额
  • cast --to-wei 1eth ETH 转换为 Wei
  • cast --from-wei 1000000000000000000 Wei 转换为 ETH
  • cast sig "transfer(address,uint256)" 获取函数签名

Anvil

  • 用于本地测试,账号管理
  • anvil 启动本地测试网络
  • 默认配置:
    • 端口:8545
    • 预设 10 个测试账户,每个账户 10000 ETH
  • 常用参数:
    • --port 指定端口
    • --block-time 设置出块时间
    • --fork-url 指定分叉网络

Chisel

  • 用于快速测试本地或分叉网络上 Solidity 片段的行为,新版功能
  • chisel 启动 Solidity REPL 环境
  • 支持直接编写和测试 Solidity 代码
  • 可以导入本地合约
  • 可以与分叉网络交互