Template to bootstrap solidity project
- 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
- Git
- You'll know you've done it right if you can run
git --version
- You'll know you've done it right if you can run
- Foundry / Foundryup
- This will install
forge
,cast
, andanvil
- 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
- This will install
- 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
make
- All commands/aliases are declared in the Makefile.
- use forge as solidity formatter in your IDE settings
- For VS it's recommended to use Juan Blanco Plugin and have the next sittings.json
{
"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"
}
}
Contributions are always welcome! Open a PR or an issue!