Liquidity Mining Smart Contracts
Contracts that the Merit Circle DAO utilizes for the staking pools
The Merit Circle liquidity mining utilizes the following smart contracts
AbstractRewards.solis a generic contract for distributing pro-rata rewards amongst an arbitrary number of "tokenholders", where the inheriting contract defines what a tokenholder is and how many shares they have. This contract is a fork with minor modifications of the Indexed Finance contract.
BasePool.solis a generic ERC20 compatible contract which inherits from the ERC20Votes contract from OpenZeppelin and the
AbstractRewards.solcontract and adds external functions for distributing and claiming rewards. Additionally it hooks into the internal
minthooks to properly track rewards when account balances are changing.
TokenSaver.solis a contract which allows a whitelisted address to transfer out any token out of a contract inheriting from it in case of emergencies or misplaced tokens.
TokenSaver.sol. Adds external functions to deposit tokens and in return receive
TimeLockPoolshares. The bonus for longer locking durations is configurable.
TimeLockPool.soland removes transferability of the pool shares.
LiquidityMiningManager.solmanages the distribution to staking pools. It exposes external functions which allow pools to be added and removed. It also allows the distribution per second to be set and the share each pool will receive of those rewards.
Liquidity Mining V2 is based on V1 smart contract structure with the addition of new functionalities: contract upgradeability, time and amount deposit increase and customizable staking multiplier curve.
Merit Circle multisig is the only wallet that has upgradeable capabilities, that is, ownership of the
ProxyAdmin. The multisig it is also the only wallet that has both
GOV_ROLE, which is necessary to submit changes to the parameters of the pools.
For further reading please see: https://github.com/Merit-Circle/merit-liquidity-mining/tree/staking-v2
Last modified 3mo ago