1. 安装Foundry
1.1 跨平台安装步骤
Linux/macOS 用户:
# 安装 Foundryup 管理工具
curl -L https://foundry.paradigm.xyz | bash
# 安装最新工具链
foundryup
1.2 验证安装
# 验证安装
forge --version # 显示版本号(如 forge 0.5.0)
cast --help # 查看 Cast 工具命令列表
anvil -v # 检查 Anvil 版本
2. 初始化项目
# 初始化项目
forge init my-project && cd my-project
目录功能详解:
- src: 存放主合约文件(示例包含 Counter.sol)
- test: 基于 Solidity 的测试合约(继承 forge-std/Test.sol)
- script: 部署脚本支持多链参数(如 --rpc-url)
- lib: 通过 Git Submodule 管理依赖
3. 依赖管理与工程配置
3.1 安装依赖
# 安装 OpenZeppelin库
forge install OpenZeppelin/openzeppelin-contracts --no-commit
3.2 依赖映射配置
创建 remappings.txt文件定义路径别名:
@openzeppelin/=lib/openzeppelin-contracts-upgradeable/
forge-std/=lib/forge-std/src/
3.3 编译器参数调优
修改 foundry.toml 配置:
[profile.default]
solc = "0.8.27"
optimizer = true
optimizer_runs = 100
[profile.test]
sender = '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' # 测试账户
[fmt]
single_line_statement_blocks = "single"
multiline_func_header = "attributes_first"
sort_imports = true
contract_new_lines = true
override_spacing = true
line_length = 130
tab_width = 4
quote_style = "double"
number_underscore = "thousands"
3.4 测试环境配置
# 启动本地节点
anvil --fork-url $RPC_URL --chain-id 1337
4. 开发工作流实践
4.1 合约编译与构建
# 编译合约
forge build
4.2 测试用例编写示例
创建 test/Counter.t.sol:
// test/Counter.t.sol
import {Test} from "forge-std/Test.sol";
import {Counter} from "../src/Counter.sol";
contract CounterTest is Test {
Counter public counter;
function setUp() public {
counter = new Counter();
}
function testIncrement() public {
counter.increment();
assertEq(counter.number(), 1);
}
}
运行测试:
forge test -vvvvv --match-test CounterTest
4.3 部署与测试
# 部署合约
forge script script/Counter.sol:CounterScript --rpc-url $RPC_URL --chain-id 1337 --private-key $PRIVATE_KEY --broadcast