Uses https://github.com/wighawag/template-ethereum-contracts as base template.
Adds nomicfoundation/hardhat-foundry
npm package and divides tests into hardhat and foundry. foundry.toml
is modified with several configurations including remappings, solc version test directory.
yarn
There are 3 flavors of tests: hardhat, dapptools and forge
- One using hardhat that can leverage hardhat-deploy to reuse deployment procedures and named accounts:
yarn test:hardhat
yarn test:foundry
This require the installation of forge (see foundry)
Here is the list of npm scripts you can execute:
Some of them relies on ./_scripts.js to allow parameterizing it via command line argument (have a look inside if you need modifications)
As a standard lifecycle npm script, it is executed automatically upon install. It generate config file and typechain to get you started with type safe contract interactions
These will format check your code. the :fix
version will modifiy the files to match the requirement specified in .prettierrc.
These will compile your contracts
This will deploy your contracts on the in-memory hardhat network and exit, leaving no trace. quick way to ensure deployments work as intended without consequences
These will execute your tests using mocha. you can pass extra arguments to mocha
These will produce a coverage report in the coverage/
folder
These will produce a gas report for function used in the tests
These will run a local hardhat network on localhost:8545
and deploy your contracts on it. Plus it will watch for any changes and redeploy them.
This assumes a local node it running on localhost:8545
. It will deploy your contracts on it. Plus it will watch for any changes and redeploy them.
This will execute the script <file.ts>
against the specified network
This will deploy the contract on the specified network.
Behind the scene it uses hardhat deploy
command so you can append any argument for it
This will export the abi+address of deployed contract to <file.json>
This will execute the script <file.ts>
against a temporary fork of the specified network
if --deploy
is used, deploy scripts will be executed
This will deploy the contract against a temporary fork of the specified network.
Behind the scene it uses hardhat deploy
command so you can append any argument for it
This will test the contract against a temporary fork of the specified network.
This will deploy the contract against a fork of the specified network and it will keep running as a node.
Behind the scene it uses hardhat node
command so you can append any argument for it