GaugeController implements two emergency functions:
emergencyShutdown()
setEmergencyPause
While the emergencyShutdownonly deactivate specific gauges from the distribution, the setEmergencyPauseblocks multiple GaugeControllerfunctions. One of these functions is the access-controlled distributeRevenuecreate to distribute during emergency periods.
The distributeRevenue function is called by the same actor who declares the emergency action. This means it has access control and there is no reason to be blocked during emergency circuit breakers as it will halt the protocol's ability to distribute the revenue.
By using the whenNotPausedmodifier on the distributeRewardfunction, the function purpose is halted and none of the users will be able to receive their revenues.
Code Review
Remove the whenNotPausedmodifier from the access-controlled function to allow revenue distribution during emergency actions and fulfill the function's purpose.
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.