The legitimate user loses rewards of raacToken in FeeCollector.
FeeCollector.sol#_calculatePendingRewards() function is as follows.
As we can see above, totalDistributed is total distributed reward amount.
And we can see that userRewards[user] is variable to track claimed rewards.
And FeeCollector.sol#claim() function is as follows.
In upper code, userRewards[user] is set by bigger value than normal.
This leads to user's loss.
Following scenario shows error.
Protocol distributes some funds : totalDistributed = 1e18.
And a user has 10% of voting power and claimes 0.1e18 of rewards as his voting power. At this time, userRewards[user] = 1e18(instead of 0.1e18).
And then, protocol distributes additional funds. totalDistributed = 2e18. (1e18 of additional distribution)
And then, he claims again. But he receives zero rewards because userRewards[user] = 1e18 > 0.2e18.
This is user's loss.
Manual review
Please modify FeeCollector.sol#claim() function as follows.
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.