The executeEmergencyAction()
in TimelockController.sol executes the actions in operation[id] but it does not delete the _operations[id]
mapping.
When an operation is in the execution stage and emergencyAction()
is called, the action can be executed again.
An operation can be scheduled in TimelockController.sol directly through scheduleBatch()
or through a successful proposal in Governance.sol.
For proposals in Governance.sol, this is the rough timeline:
If anywhere after the first execute()
and emergencyAction()
is called, this proposal will still continue to go through the stages and can be called again unless the CANCELLER_ROLE
cancels the operation.
Actions can be called again.
Manual Review
Delete _operations[id]
in the emergencyAction()
function.
Or set the _operations[id].executed
to true so it cannot be executed again
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.