The emergencyShutdown
function effectively pauses the contract and sets the emissionRate
to zero, preventing further emissions. However, there is no built-in restart mechanism. Although unpause
can resume contract operations, the emissionRate
remains at zero, requiring a manual call to updateEmissionRate
to restore functionality.
The emergencyShutdown
function calls _pause()
, halting operations.
It sets emissionRate = 0
, effectively disabling emissions.
The contract lacks an explicit function to revert the shutdown state.
After unpausing, the contract remains inoperable unless updateEmissionRate
is manually invoked.
This introduces an operational risk where an admin may forget to restore the emission rate after unpausing, causing unintended downtime.
Once emergencyShutdown
is called, contract functionality remains partially disabled even after unpausing.
Requires an additional manual transaction (updateEmissionRate
) to restore emissions, increasing operational complexity and potential for human error.
Users may experience prolonged service disruptions if the emission rate is not promptly restored.
Manual code review
Introduce a restart
function that unpauses the contract and restores the emission rate in a single transaction.
Modify emergencyShutdown
to store the last emission rate and provide a mechanism to reinstate it after unpausing.
Add an event log to track when updateEmissionRate
is called post-unpause for better monitoring.
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.