yarnThere 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 testdapp testThe latter requires additional step to set up your machine:
Install dapptools (Following instruction here):
# user must be in sudoers
curl -L https://nixos.org/nix/install | sh
# Run this or login again to use Nix
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
curl https://dapp.tools/install | shThen install solc with the correct version:
nix-env -f https://github.com/dapphub/dapptools/archive/master.tar.gz -iA solc-static-versions.solc_0_8_9forge testThis 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 lint and format check your code. the :fix version will modifiy the files to match the requirement specified in .eslintrc and .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