In the RAAC protocol, users can lock their RAAC tokens in in exchange for veRAAC token, which serves as a voting token in the governance part. However, when a proposal is to be executed, it incorrectly calculates for the quorum, and affecting the outcome of a proposal.
When proposal is to be executed, Governance::state
is called to determine the state of the proposal, if the proposal has its voting period ended and enough for votes, quorum will be calculated and compared with threshold value:
And we will see the quorum
function:
Also veRAACToken::getTotalVotingPower
:
So it's fetching the total supply of the current timestamp, but not the snapshot of when proposal has ended.
For example, if the total votes collected is 400, and total supply at proposal voting end time is 9000, this proposal should be considered passed. But when execute
is called, the total supply has reached 11000, it would make proposal insufficient to pass, despite already passed quorum when proposal voting has concluded.
Some proposal may not be executed successfully
Manual review
Use total supply of time/block number at proposal end time.
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.