The contract lacks any function to set the paused variable, rendering the pause functionality inoperative.
In veRAACToken.sol, there is a modifier named whenNotPaused():
This modifier is supposed to protect certain functions from being called when the contract is paused. However, there is no implemented function to set or update the paused variable within the contract. As a result, the paused state cannot be toggled, rendering the pause functionality effectively useless.
Since the paused variable can never be changed, the functions protected by whenNotPaused() can always be called. This undermines the intended safety measure of pausing critical operations during emergencies or maintenance windows, reflecting a significant governance and security gap.
Manual code review of veRAACToken.sol
Provide functions (e.g., pause() and unpause()) to toggle the paused variable. Ensure these functions are correctly restricted (e.g., only the owner or a valid governance contract can call them).
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.