The GaugeController
is used to control gauge weights and reward distribution for RWA and RAAC emissions. Whenever a gauge is deployed, the controller is set to its controller
storage variable and allows functions marked with the onlyController
to be invoked. However, there are several functions in the BaseGuage
that have the onlyController
, but are not being invoked in the controller, nor does the controller have explicit functions to call them.
Let's look at the GaugeController
documentation:
From here we can see that this is the controller to be set in each deployed gauge:
From the above, we know that the controller is the contract that should invoke functions with the onlyController
modifier in each gauge. This is observed with the notifyRewardAmount(...) function. However, there are several other important functions with this modifier, which are not implemented anywhere in the controller - updatePeriod, setEmission and setInitialWeight. Because of this gauges cannot be properly maintained, which could lead to invalid rewards emissions for users.
Inability to update gauge weights and reward distribution states.
Manual review
Implement the required logic in the GaugeController to allow updates of the aforementioned 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.