The getTotalVotingPower
function incorrectly returns the total supply of veRAACToken
instead of the actual decayed voting power. Since voting power decays over time but total supply does not, this discrepancy leads to an overestimation of total voting power, causing miscalculations in reward distribution within the FeeCollector
contract.
The getTotalVotingPower
function should return the actual aggregate voting power based on decay calculations. Instead, it directly returns totalSupply()
, which does not decay. This results in reward calculations being skewed, as the sum of individual voting powers will always be smaller than the assumed total voting power.
A user locks tokens and receives veRAACToken
with full voting power.
Over time, the user's voting power decays as expected.
The getTotalVotingPower
function, however, still returns the non-decayed total supply.
In the _calculatePendingRewards
function of the FeeCollector
contract, total voting power is overestimated, causing incorrect reward calculations.
As a result, users with valid voting power may receive a lower share of rewards than they should.
FeeCollector
Contract:Incorrect Reward Distribution: The sum of users' actual voting power is lower than the falsely inflated total voting power, leading to users receiving fewer rewards than they should.
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.