创建一个新项目
要使用 Foundry 启动一个新项目,请使用 forge init
:
$ forge init hello_foundry
这将从默认模板创建一个新目录 hello_foundry
。 这也会初始化一个新的 git
存储库。
如果你想使用不同的模板创建一个新项目,你可以传递 --template
指令,如下所示:
$ forge init --template https://github.com/foundry-rs/forge-template hello_template
现在,让我们检查一下默认模板的样子:
$ cd hello_foundry
$ tree . -d -L 1
.
├── lib
├── script
├── src
└── test
4 directories
默认模板安装了一个依赖项:Forge 标准库。 这是用于 Foundry 项目的首选测试库。 此外,该模板还附带一个空的入门合约和一个简单的测试。
让我们构建项目:
$ forge build
Compiling 27 files with Solc 0.8.19
Solc 0.8.19 finished in 1.08s
Compiler run successful!
并运行测试:
$ forge test
No files changed, compilation skipped
Ran 2 tests for test/Counter.t.sol:CounterTest
[PASS] testFuzz_SetNumber(uint256) (runs: 256, μ: 30977, ~: 31288)
[PASS] test_Increment() (gas: 31303)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 8.10ms (7.84ms CPU time)
Ran 1 test suite in 9.41ms (8.10ms CPU time): 2 tests passed, 0 failed, 0 skipped (2 total tests)
你会注意到产生了两个新目录:out
和 cache
。
out
目录包含你的合约工件(artifact,例如 ABI,而 cache
目录被 forge
使用来(记录),以便仅仅去重新编译那些必要编译的内容。