创建一个新项目

要使用 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)

您会注意到产生了两个新目录:outcache

out 目录包含您的合约工件(artifact,例如 ABI,而 cache 目录被 forge 使用来(记录),以便仅仅去重新编译那些必要编译的内容。