Skip to content
/ sol-starter Public template

Template to bootstrap solidity project with foundry and hardhat

License

Notifications You must be signed in to change notification settings

dgma/sol-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sol-starter

Template to bootstrap solidity project

Features

  • Foundry for unit testing
  • Hardhat for JS integration tests & deployment
  • hardhat-sol-bundler for declarative deployments and upgrades
  • linters, code formatter, pre-commit and pre-push hooks
  • Makefile & Docker dev container for convenient and safe development
  • Custom github action and quality gate workflow for flexible CI strategy implementation

Requirements

  • Git
    • You'll know you've done it right if you can run git --version
  • Foundry / Foundryup
    • This will install forge, cast, and anvil
    • You can test you've installed them right by running forge --version and get an output like: forge 0.2.0 (f016135 2022-07-04T00:15:02.930499Z)
    • To get the latest of each, just run foundryup
  • Node.js
  • Optional. Docker
    • You'll need to run docker if you want to use dev container and safely play with smartcontracts & scripts

note: For windows os you'll need to install make. For instance via choco: sh choco install make

Installation

make

Configuration

  • All commands/aliases are declared in the Makefile.
  • use forge as solidity formatter in your IDE settings
{
  "solidity.formatter": "forge",
  "solidity.packageDefaultDependenciesContractsDirectory": "src",
  "solidity.packageDefaultDependenciesDirectory": ["node_modules", "lib"],
  "solidity.remappings": [
    "@std=lib/forge-std/src/",
    "forge-std/=lib/forge-std/src/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "src=src/"
  ],
  "solidity.defaultCompiler": "localNodeModule",
  "[solidity]": {
    "editor.defaultFormatter": "JuanBlanco.solidity"
  }
}

Contributing

Contributions are always welcome! Open a PR or an issue!

Resources