Due to inaccurate reward distribtin, rewards are distributed over multiple missed epochs.
The _checkEpochRollover
function calculates pendingRewardsPerToken
by aggregating all rewards accumulated since the last processed epoch. This total is meant to be distributed over a single epoch, with all pending rewards included in the rewardPerToken for that epoch. But, if multiple epochs are missed, the same pendingRewardsPerToken
value is applied across all missed epochs. This could occur an unfairly excessive distribution of rewards.
As well, since totalRewards
increases as the pendingRewards
value, the rewards available for latter epoches would exceed the intended amount. This discrepancy prevents users from claiming their rightful rewards.
Below is the implementation of _checkEpochRollover
function.
Applying the same pendingRewardsPerToken
to multiple missed epochs causes an over-distribution of rewards beyond the balance, and future reward calculations may overlook reserved rewards, potentially preventing users from claiming their entitlements.
Manual review
Update _checkEpochRollover
function to prevent any over-distribution of rewards and provide a healthy rewards liqudity for honest users.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.