Inconsistency in how emission rates are configured and calculated between the Gauges and GaugeController contracts. In this report I'll refer to the RAACGauge but the same issue also effects the RWACGauge.
The RAACGauge uses a maximum weekly emission of 500,000 tokens, while the GaugeController hardcodes a different value of 250,000 tokens for RAAC emissions. The emission in the Gauge itself can be changed via setWeeklyEmission() or setEmission()so it allows dynamic values.
This mismatch can lead to reward calculation errors, failed distributions, and unexpected behavior in the reward system. Because the RAACGaugeuses the emission from the periodState and not the hardcoded value from the GaugeController.
Emission for Gauges is hardcoded in GaugeController:
Reward Calculations in GaugeController are based on hardcoded values:
Reward Distribution Failures:
GaugeController calculates rewards based on 250K weekly tokens
RAACGauge validates against 500K weekly tokens
This can lead to transactions reverting due to RewardCapExceeded error
Incorrect Reward Calculations:
Users may receive different rewards than intended
System may distribute fewer tokens than designed
No way to keep the values in sync because of hardcoded values
Manual Review
Foundry
The GaugeController should use the value from the Gauges for it's calculations.
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.