Before running any command, you need to create a .env
file and set a BIP-39 compatible mnemonic as an environment
variable. Follow the example in .env.example
. If you don't already have a mnemonic, use this website to generate one.
Then, proceed with installing dependencies:
yarn install
Compile the smart contracts with Hardhat:
$ yarn compile
Compile the smart contracts and generate TypeChain artifacts:
$ yarn typechain
Lint the Solidity code:
$ yarn lint:sol
Lint the TypeScript code:
$ yarn lint:ts
Run the Mocha tests:
$ yarn test
Generate the code coverage report:
$ yarn coverage
See the gas usage per unit test and average gas per method call:
$ REPORT_GAS=true yarn test
Delete the smart contract artifacts, the coverage reports and the Hardhat cache:
$ yarn clean
Deploy the contracts to Hardhat Network:
$ yarn deploy --greeting "Bonjour, le monde!"
If you use VSCode, you can enjoy syntax highlighting for your Solidity code via the vscode-solidity extension. The recommended approach to set the compiler version is to add the following fields to your VSCode user settings:
{
"solidity.compileUsingRemoteVersion": "v0.8.4+commit.c7e474f2",
"solidity.defaultCompiler": "remote"
}
Where of course v0.8.4+commit.c7e474f2
can be replaced with any other version.
arguments.js
is needed because we cannot verify constructor with arrays in the CLI
npx hardhat verify --network aurora --constructor-args verify/argumentsNRewarder.js 0x9E5c2dC717cCAc1eB0e8d267E43538E03531503d
- Forked contracts have been ignored from being linted, these include
amm
,stableswap
,multicall
andweth
folders. Run the following commands on your local to lint the files
yarn prettier
yarn lint
- Create new PR with rewarder/** branch name
- Create newRewarderConfig.json file, fill out value keys from newRewarderConfig.sample.json
- Once proposed gnosis safe signatures are signed and contracts are verified, we will merge your PR!
- Create new PR with allocation/** branch name
- Create allocationConfig.json file, fill out value keys from allocationConfig.sample.json
- Create new PR with rewarderTokensPerBlock/** branch name
- Create rewarderTokensPerBlock.json file, fill out value keys from rewarderTokensPerBlock.sample.json