contracts-starter
contracts-starter copied to clipboard
A robust smart contract development template for Ethereum and EVM chains
Hardhat Boilerplate
Setup
$ yarn install
$ yarn prepare
Create a .env
following the .env.example
:
INFURA_API_KEY=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
MNEMONIC=here is where your twelve words mnemonic should be put my friend
Compile
Compile the smart contracts with Hardhat:
$ yarn compile
TypeChain
Compile the smart contracts and generate TypeChain artifacts:
$ yarn typechain
Lint Solidity
Lint the Solidity code:
$ yarn lint:sol
Lint TypeScript
Lint the TypeScript code:
$ yarn lint:ts
Format files
$ yarn prettier
Test
Run unit tests:
$ yarn test
Run a single test:
$ yarn test test/MyContract.test.ts
Coverage
Generate a test coverage report:
$ yarn coverage
Deploy and Verify
$ yarn deploy:kovan
$ yarn verify:kovan
Clean
Delete the smart contract artifacts, the coverage reports and the Hardhat cache:
$ yarn clean
Tooling
- Hardhat: compile and run the smart contracts on a local development network
- TypeChain: generate TypeScript types for smart contracts
- Ethers: renowned Ethereum library and wallet implementation
- Waffle: tooling for writing comprehensive smart contract tests
- Solhint: linter
- Solcover code coverage
- Prettier Plugin Solidity: code formatter