The GaugeController
contract fails to handle additional votes when a user increases their veRAACToken
balance.
Users cannot vote again on the same gauge after acquiring more veRAACTokens. The _updateGaugeWeight
function assumes that the user's voting power remains unchanged between votes, leading to incorrect calculations and a revert due to overflow.
Lets assume the following:
User has 1000 veRAACTokens, therefore he has a voting power of 1000.
Now lets go to the votings:
User votes for a gauge (rwaGauge) with a weight of 5000 (50%). The gauge weight increases accordingly, as expected.
After some time the user gets additional 1000 veRAACTokens.
He cast a vote for the same gauge with the same weight.
The transaction reverts
Inside of GaugeController.test.js put:
Prevents users from allocating their increased voting power for the gauge weight distribution.
Manual review, automated unit tests
N/A
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.