- LDO token -
0x5a98fcbea516cf06857215779fd812ca3bef1b32
- stETH token -
0xae7ab96520de3a18e5e111b5eaab095312d7fe84
- DAI token -
0x6b175474e89094c44da98b954eedeac495271d0f
- 1INCH token -
0x111111111117dc0aa78b770fa6a738034120c302
- 1INCH liquidity pool -
Mooniswap
(source) - 1INCH rewards contract -
FarmingRewards
(source) - LIDO rewards manager -
RewardsManager
- LDO token is deployed.
- 1INCH token is deployed.
- DAI token is deployed.
- stETH token is deployed.
Mooniswap
is deployed:- Pair of tokens is stETH and DAI.
Mooniswap
provides LP tokens as result of depositing.
FarmingRewards
is deployed:- Target pool is previously deployed
Mooniswap
. - Initial gift is 1INCH token (scale and duration are TBD).
- Initial gift distribution is TBD, but expected to be related to 1INCH.
- Initial gift reserves index
0
intokenRewards
array.
- Target pool is previously deployed
RewardsManager
is deployed:GIFT_INDEX
constant value is set to1
.- Target rewards contract is previously deployed
FarmingRewards
. - Target rewards token is LDO token.
FarmingRewards
owner adds new gift (callsaddGift()
):- Gift token is LDO.
- Gift distribution is
RewardsManager
. - Gift is REQUIRED to be at index
1
intokenRewards
array (this MUST match withGIFT_INDEX
constant value inRewardsManager
). - Gift
scale
andduration
have to be determined carefully:- Method
addGift()
has a very basic check forscale
and no check for duration. - Method
notifyRewardAmount()
has more strong math-based checks. This means that if gift added with improperscale
andduration
, thennotifyRewardAmount()
will not allow to start rewarding period until these parameters are properly adjusted viasetDuration()
and/orsetScale()
.
- Method
- LIDO triggers new reward period (via Aragon Voting):
- LDO tokens is transferred to an address of
RewardsManager
. - Method
start_next_rewards_period()
is called onRewardsManager
.RewardsManager
transfers all LDO tokens to an address ofFarmingRewards
.RewardsManager
calls methodnotifyRewardAmount()
method onFarmingRewards
.- LDO tokens CAN NOT be recovered (via
recover_erc20()
method call orrescueFunds()
) after this action.
- LDO tokens is transferred to an address of
- There is a User, that has stETH and DAI tokens.
- User calls method
deposit()
onMooniswap
and provides stETH and DAI tokens.- User receives LP tokens as the result.
- User calls method
approve()
onMooniswap
.- Recipient is
FarmingRewards
. - Amount is TBD.
- Recipient is
- User calls method
stake()
onFarmingRewards
.- User receives staking tokens as the result.
- After some time User calls method
claim()
onFarmingRewards
.- User receives 1INCH and LDO tokens as the result.
- LP tokens are left in
FarmingRewards
.
- User calls method
withdraw()
onFarmingRewards
.- User receives his LP tokens.
- 1INCH and LDO are left in
FarmingRewards
.
- User calls method
exit()
onFarmingRewards
.- User receives 1INCH and LDO tokens as the result.
- User receives his LP tokens.