Writed in Solidity 0.8.2 and uses Hardhat
The contract is designed to be used for staking Pera tokens by giving reward coefficients due to staking time. Pera rewards keeps going for the whole staking period, but new reward tokens can be added for specified periods.
The version in hacken-audit
branch is audited by Hacken, see audit report.
Download the dependencies by
npm install --save-dev hardhat
npm install @openzeppelin/contracts
npm install --save-dev @nomiclabs/hardhat-ethers ethers @nomiclabs/hardhat-waffle ethereum-waffle chai
Put your Alchemy API key for test with Ethereum mainnet fork.
Create keys/privatekey.json
file in your project directory with your private key.
{
"key" : "PRIVATE_KEY"
}
contracts
├──── PeraStaking.sol
├──── MockToken.sol