The contract declares a public boolean variable paused and implements the modifier whenNotPaused to prevent function execution when the contract is paused. However, there is no function in the contract that ever sets paused to true. As a result, the contract can never be paused because paused remains false by default, rendering the whenNotPaused modifier ineffective.
Variable Declaration:
Since no initializer or setter function is provided, paused defaults to false.
Modifier Implementation:
This modifier is intended to block function calls when the contract is paused. However, because paused is never updated, this check will always pass.
The intended functionality of pausing the contract (for emergency or maintenance purposes) is not operational. This could lead to issues in scenarios where the contract owner needs to halt operations (e.g., to mitigate an exploit).
Manual review
Implement Pause/Unpause Functions:
Add functions that allow the contract owner (or an authorized party) to set the paused variable. For example:
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.