The veRAACToken.sol contract includes the whenNotPaused modifier in all functions, suggesting that the contract supports a pausable mechanism. However, the contract lacks _pause and _unpause functions, rendering the paused state immutable and always returning false. As a result, the contract can never be paused, defeating the purpose of the whenNotPaused modifier.
The contract includes the whenNotPaused modifier in all functions, intending to prevent operations when the contract is paused.
The paused variable, which determines whether the contract is paused, always returns false because there are no _pause and _unpause functions implemented to change its state.
Without a way to modify the paused state, the contract is permanently in an "unpaused" state, making the whenNotPaused modifier ineffective.
The pausable mechanism is completely non-functional, leading to a false sense of security for developers and users who assume that the contract can be paused during emergencies.
If the contract needs to be paused due to a security issue or maintenance, there is no way to stop operations, which could lead to financial losses or exploitation.
Manual Review
Implement _pause and _unpause functions to allow authorized roles (e.g., an admin or governance contract) to toggle the paused state.
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.