Requires npm
and forge
but after having those two npm install
has a post-install script that runs forge install
and some string replacement scripts for remapping import paths and dependencies in the submodules.
The submodules in lib/
will always have pending changes due to the change in import paths, don't commit them since git doesn't know where to get commits with the same hash and future git clones will fail. It is what it is but we can figure something out to make this repo neat and tidy later.
Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
Foundry consists of:
- Forge: Ethereum testing framework (like Truffle, Hardhat and DappTools).
- Cast: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
- Anvil: Local Ethereum node, akin to Ganache, Hardhat Network.
- Chisel: Fast, utilitarian, and verbose solidity REPL.
$ forge build
$ forge test
$ forge fmt
$ forge snapshot
$ anvil
$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>
$ cast <subcommand>
$ forge --help
$ anvil --help
$ cast --help