Deposit Rewards
To incentivize stakers, users can deposit rewards into a Rewards Manager.
Note: Deposited rewards cannot be withdrawn - they can only be dripped to and claimed by stakers.
Using CozyRouter to deposit assets
Using the CozyRouter is the preferable way to deposit reward assets. To deposit assets using the CozyRouter, integrators can use CozyRouter.depositRewardAssets
:
This method will:
Transfer the underlying reward assets from the
msg.sender
to the Rewards Manager.Call
RewardsManager.depositRewardAssetsWithoutTransfer.
Prior to calling this function, the user must have approved CozyRouter
to a spend sufficient amount of their RewardsManager.rewardPools(rewardId).asset
balance.
Deposit mechanics
RewardsManager.depositRewardAssetsWithoutTransfer
assumes that the assets to be deposited has already been transferred to the Rewards Manager. Any excess assets transferred will be kept by the Rewards Manager.
On deposit, high-level the Rewards Manager does the following:
Check if the Rewards Manager is
PAUSED
. If so, revert.Check the Rewards Manager's asset balance to determine if the total deposit amount was transferred. If not, revert.
Update the relevant reward pool's internal
rewardPool.undrippedRewards
value.Emit a
Deposited
event.
Last updated