定义

Foundry 是一个由 Paradigm开发的智能合约开发工具包,用于在以太坊区块链上开发应用程序。Foundry 基于 Rust 运行,提供多种工具来开发和测试 Solidity 智能合约。Foundry 具有一套 CLI 命令,使创建新项目、编译、部署和与合约交互变得简单。

创建Foundry项目

  1. 安装命令:
1
2
curl -L <https://foundry.paradigm.xyz> | bash  //下载foundryup
foundryup //运行它安装 Foundry

安装后,有三个命令行工具 forge, cast, anvil 组成

  • forge: 用来执行初始化项目、管理依赖、测试、构建、部署智能合约 ;
  • cast: 执行以太坊 RPC 调用的命令行工具, 进行智能合约调用、发送交易或检索任何类型的链数据
  • anvil: 创建一个本地测试网节点, 也可以用来分叉其他与 EVM 兼容的网络。
  1. 初始化

通过 forgeforge init 初始化项目

1
forge init <project_name>

init 命令会创建一个项目目录,并安装好forge-std 库。

如需手动安装依赖库使用: forge install forge/forge-std

创建好的 Foundry 工程结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
> tree -L 2
.
├── foundry.toml //配置文件,配置连接的网络URL 及编译选项
├── lib //依赖库目录
│ └── forge-std
├── script //部署脚本文件
│ └── Counter.s.sol
├── src //智能合约目录
│ └── Counter.sol
└── test //智能合约测试用例文件夹
└── Counter.t.sol

5 directories, 4 files

Foundry 使用 Git submodule 来管理依赖库, .gitmodules 文件记录了目录与子库的关系

  1. 合约开发&编译

编写合约

foundry.toml 中使用solc配置编译器版本

编译合约

1
forge build
  1. 测试

参考

学习原文链接:https://decert.me/tutorial/solidity/tools/foundry/