-
NodeJS >=18.0.0
-
Solc v0.8.25 (https://github.com/ethereum/solidity/releases/tag/v0.8.25)
yarn install
Linting is done using eslint for typescript and solhint for solidity. Prettier is used to format solidity and typescript files.
To check linting and formatting on all files run:
$ yarn lint
Linting command can be run with the fix flag to fix eligible errors automatically
$ yarn lint:sol --fix
$ yarn lint:ts --fix
To pretty all files run:
$ yarn prettier
npx hardhat test
- To run fork tests add FORK=true, FORKED_NETWORK and one ARCHIVE_NODE var in the .env file.
The project supports compilation for both regular Ethereum networks and ZKSync networks.
npx hardhat compile
npx hardhat compile --config hardhat.config.zksync.ts
yarn compile
This command compiles contracts for both regular and ZKSync configurations.
Releases are automatically managed using semantic-release and commit messages.
npx hardhat deploy
- This command will execute all the deployment scripts in
./deploy
directory - The default network will be
hardhat
- Deployment to another network:
- Make sure the desired network is configured in
hardhat.config.ts
- Add
DEPLOYER_PRIVATE_KEY
variable in.env
file - Execute deploy command by adding
--network <network_name>
in the deploy command above, e.g.npx hardhat deploy --network bsctestnet
- Make sure the desired network is configured in
For ZKSync networks, use the ZKSync configuration:
npx hardhat deploy --config hardhat.config.zksync.ts --network zksyncsepolia
Available ZKSync networks:
-
zksyncsepolia
- ZKSync Sepolia testnet -
zksyncmainnet
- ZKSync mainnet -
Execution of single or custom set of scripts is possible, if:
- In the deployment scripts you have added
tags
for example: -func.tags = ["MockTokens"];
- Once this is done, adding
--tags "<tag_name>,<tag_name>..."
to the deployment command will execute only the scripts containing the tags.
- In the deployment scripts you have added
npx hardhat etherscan-verify --network <network-name>
npx hardhat accounts
npx hardhat compile
npx hardhat clean
npx hardhat test
npx hardhat node
npx hardhat help
REPORT_GAS=true npx hardhat test
npx hardhat coverage
TS_NODE_FILES=true npx ts-node scripts/deploy.ts
npx eslint '**/*.{js,ts}'
npx eslint '**/*.{js,ts}' --fix
npx prettier '**/*.{json,sol,md}' --check
npx prettier '**/*.{json,sol,md}' --write
npx solhint 'contracts/**/*.sol'
npx solhint 'contracts/**/*.sol' --fix
Documentation is autogenerated using solidity-docgen.
They can be generated by running yarn docgen