Uses
- Hardhat: compile and run the smart contracts on a local development network
- TypeChain: generate TypeScript types for smart contracts
- Ethers: Ethereum library and wallet implementation
- Waffle: tooling for writing comprehensive smart contract tests
- Solhint: Solidity linter
- Prettier Plugin Solidity: code formatter
This is a GitHub template, which means you can reuse it as many times as you want. You can do that by clicking the "Use this template" button at the top of the page.
Before running any command, make sure to install dependencies:
$ yarn
Compile the smart contracts with Hardhat:
$ yarn compile
This also generates the Typechain types
Run the Mocha tests:
$ yarn test
To run tests against a Mainnet fork, set your ALCHEMY_KEY
in .env
and run
$ yarn test-integration
To get a gas report based on unit test calls:
$ yarn gasReport
npx hardhat run --network rinkeby ./scripts/deploy.ts
npx hardhat verify --network <network> <DEPLOYED_CONTRACT_ADDRESS> "Constructor argument 1"
- Gas reporter hardhat-gas-reporter
- Etherscan hardhat-etherscan