The GaugeController.sol contract has a critical implementation flaw where the _updateGaugeWeight function, designed to update gauge weights based on voting power changes, is never called. This omission breaks core functionality of the gauge voting system since gauge weights are never properly updated after votes are cast. This effectively renders the entire voting weight mechanism non-functional, leading to stale or incorrect gauge weights being used for reward distribution.
The _updateGaugeWeight function is defined but never used:
This function should be called in critical voting operations, such as:
When users vote on gauges:
When voting power changes:
Voting System Failure:
Votes don't affect gauge weights
Reward distribution uses stale weights
Voting power changes not reflected
Entire voting mechanism broken
Economic Impact:
Incorrect reward distribution
Misallocation of protocol resources
Unfair reward distribution
Loss of voting incentives
System Integrity:
Broken governance mechanism
Ineffective gauge weight system
Compromised protocol democracy
Loss of voting utility
implement it in these functions.
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.