Skip to content

Forkable template to get you started with Foundry's Forge

License

Notifications You must be signed in to change notification settings

pollum-io/forge-template

 
 

Repository files navigation

#forge-template

Github Actions

Template repository for getting started quickly with Foundry projects.

Forked from Foundry's original repo with extra code to save you time.

Getting Started

Click "Use this template" on GitHub to create a new repository with this repo as the initial state.

Writing your first test

All you need is to import forge-std/Test.sol and then inherit it from your test contract. Forge-std's Test contract comes with a pre-instatiated cheatcodes environment, the vm. It also has support for ds-test-style logs and assertions. Finally, it supports Hardhat's console.log. The logging functionalities require -vvvv.

pragma solidity 0.8.10;

import "forge-std/Test.sol";

contract ContractTest is Test {
    function testExample() public {
        vm.roll(100);
        console.log(1);
        emit log("hi");
        assertTrue(true);
    }
}

Addresses

Goerli

Mainnet

Development

This project uses Foundry. See the book for instructions on how to install and use Foundry.

Deploying

You can either deploy individual contracts or the whole system at once, depending on which script you run.

For individual contracts, run:

cp .env.example .env
## insert RPC, Etherscan & priv key
source .env
forge script script/DeployContractTestnet.s.sol:Deploy --rpc-url $GOERLI_RPC_URL --broadcast --verify -vvvv

To deploy the whole system + setup, run:

forge script script/DeploySystemTestnet.s.sol:Deploy --rpc-url $GOERLI_RPC_URL --broadcast --verify -vvvv

It's recommended to delete your broadcast/ folder when switching back and forth from single and full deployment scripts, as there are instances where Foundry may interprit legacy hardcoded parameters from single script contracts to the complete flow.

Docs

Auto-generate docs via forge doc.

About

Forkable template to get you started with Foundry's Forge

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Solidity 85.1%
  • Shell 14.9%