When users claim their rewards, the following function calculates the amount to receive:
Then the mapping userRewards is updated to the total distributed amount:
The logic is incorrect as it assumes the user has claimed a lot more than what the user has actually claimed, additionally this mechanism only allows user to claim rewards based on the current veToken holdings. Once claimed at a percentage of the total supply, let's say 10%, that user won't ever be entitled to a claim unless he increases the balance.
Users will receive less rewards than what they are entitled to.
Manual review.
The correct mechanism to handle rewards distribution I'd say is something similar to the guages. Keep track of the total distribution at which a user made a claim and then assign rewards based on the difference between the previous and the current mark times the percentage of the total supply of veTokens held by the user.
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.