Reward accounting is a mess due to _getBaseWeight getting weight for the gauge and not the user
Users rewards are calculated with earned, which in order to get what each user deserves needs to first get their proportions of the staking token/veToken.
https://github.com/Cyfrin/2025-02-raac/blob/main/contracts/core/governance/gauges/BaseGauge.sol#L583
For that it calls ``getUserWeight, which in theory will get the user wight. However in practice it gets the gauge weight instead, as _getBaseWeightcallgetGaugeWeight(address(this))`
https://github.com/Cyfrin/2025-02-raac/blob/main/contracts/core/governance/gauges/BaseGauge.sol#L594
User weights are misconfiguration, their rewards too.
Internal accounting is broken.
First users will claim huge rewards and the rest won't be able to claim any. That is because every user weight is gonna be about the same.
Manual review
Consider changing _getBaseWeight to
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.