/foundry-template

Foundry project template

Primary LanguageSolidityApache License 2.0Apache-2.0

Foundry Template

Important

  • This is a foundry project template, using Foundry 0.2.0 (Forge 0.2.0, Cast 0.2.0, ...);
  • In order to use another version of Solidity, please change the value of solc in forge.toml and solidity.compileUsingRemoteVersion in .vscode/settings.json. This repo's Solidity version is 0.8.21;

Introduction

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.

Documentation

https://book.getfoundry.sh/

Usage

Build

$ forge build

Test

$ forge test

Format

$ forge fmt

Gas Snapshots

$ forge snapshot

Anvil

$ anvil

Deploy

$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>

Cast

$ cast <subcommand>

Help

$ forge --help
$ anvil --help
$ cast --help