可以本地构建solidity合约,并提供了简易的本地节点用于部署调试,还提供了EVM级别的调试器

https://github.com/foundry-rs/foundry

完整教程:

Introduction - Foundry Book (getfoundry.sh)

调试器教程:

Debugging Contracts with Foundry - Network (mantle.xyz)

forge

初始化

forge init xxx ,会初始化.git,执行其他forge指令时如果出现下方的错误,可以试试先commit一下

"The target directory is a part of or on its own an already initialized git repository,"

也可以在initinstall时添加--no-git

安装依赖

实际就是从github clone,用的git submodule实现

下方指令指的是fetch https://github.com/Vectorized/solady,并checkout到a6a95729f947bb2a24e05e862ba9522c10453a70

forge install Vectorized/solady@a6a95729f947bb2a24e05e862ba9522c10453a70

编译

forge build

会把srcscript目录下的所有sol都编译

运行


# run script on local node (run by `anvil`)
# you can choose a privkey from anvil output as $DEPLOYER_PRIVKEY (with eth balance)
forge script --rpc-url <http://localhost:8545> --private-key $DEPLOYER_PRIVKEY --broadcast script/Deploy.sol:Deploy 

# deploy contract
forge create --rpc-url <http://localhost:8545> --private-key $DEPLOYER_PRIVKEY src/MyContract.sol:MyContract

# forge debug 用法很奇怪,不太清楚是否真的放链上运行了
# 建议用cast run --debug来调试一个transaction
forge debug --debug src/SomeContract.sol --sig "myFunc(uint256,string)" 123 "hello"