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.