Awesome
Hardhat Boilerplate
Why ?
Thought to have a fast way of bootstraping projects with best practice's in mind. Having linters, prettiers, standards on how to commit, and changelog creation & maintenance.
How ?
This is achieved using several hardhat plugins, and external known packages.
Setup
# Install dependencies
yarn install
# Copy Env example file
cp .env.example .env
After installing dependencies and copying the example environment, you will have to update your .env
file with
at least you alchemy API KEY (NODE_URI_ETHEREUM
).
<br/>
You can generate your API KEY in the Alchemy site.
Tools
This boilerplate includes:
- Hardhat
- Solhint
- Prettier
- Coverage
- Gas reporter
- Commitlint
- Standard version
- Uniswap + Internal tooling
Commands
Coverage
yarn coverage
Runs solidity code coverage <br/>
Fork
yarn fork
Runs a mainnet fork via hardhat's node forking util.
yarn fork:script {path}
Runs the script in mainnet's fork.
yarn fork:test
Runs tests that should be run in mainnet's fork. <br/>
Lint
yarn lint:check
Runs solhint. <br/>
Prettier (lint fix)
yarn lint:fix
Runs prettier <br/>
Release
yarn release
Runs standard changelog, changes package.json version and modifies CHANGELOG.md accordingly. <br/>
Test
yarn test:all
Runs all solidity tests. <br/>
yarn test:unit
Runs all solidity tests in folder unit <br/>
yarn test:e2e
Runs all solidity tests in folder e2e <br/>
Gas report
yarn test:gas
Runs all tests and report gas usage.