The RAACGauge::setWeeklyEmission can only be called by the controller address (GaugeController). This function is meant to allow adjusting the weekly emission rate for RAAC tokens. However, while the GaugeController has the necessary CONTROLLER_ROLE permissions, it lacks any implementation to actually call this function.
The RAACGauge::setWeeklyEmission function:
has the onlyController modifier which comes from BaseGauge. Looking at BaseGauge, this modifier is defined as:
In BaseGauge's constructor, the controller address is granted the CONTROLLER_ROLE:
Looking at the GaugeController contract, there isn't any direct function to call setWeeklyEmission. Additionally, this function is not included in the IGauge interface that GaugeController uses to interact with gauges.
No mechanism exists to adjust weekly emission rates through the controller, despite the contract being designed with this intention. The setWeeklyEmission function becomes effectively unusable because the authorized controller has no way to call it.
Manual review
Add setWeeklyEmission to the IGauge interface and implement the corresponding function in GaugeController.
IGauge.sol
GaugeController.sol
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.