Before running any command, you need to create a .env
file
Follow the example in .env.example
.
Then, proceed with installing dependencies:
yarn install
Compile the smart contracts with Hardhat:
$ yarn compile
Lint the Solidity code:
$ yarn lint:sol
Run the 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
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.
This is the core protocol for the me3 farming contract.
stake();
Parameter | Type | Description |
---|---|---|
amount |
uint256 | The amount a user wants to stake in the me3 farm |
lockPeriod |
uint256 | Total amount of time user wants his funds to be locked |
withdraw();
Parameter | Type | Description |
---|---|---|
amount |
uint256 | The amount of stake a user wants to withdraw from the me3 farm |
calculateReward();
Parameter | Type | Description |
---|---|---|
recordId |
uint256 | Calculates the reward a particular stake record will recieve in me3 Tokens |
calculateHoursPassed();
Parameter | Type | Description |
---|---|---|
duration |
uint256 | Calculates the number of hours that have been passed |
The Me3 storage contract is the DB of the me3 protocol. It holds the getter and setter methods of the me3 protocol