The veRAACToken
contract includes a paused
state variable and a whenNotPaused
modifier to restrict certain functions when the contract is paused. However, there is no functionality to actually pause or unpause the contract. As a result, the paused
state variable remains unused, and functions protected by the whenNotPaused
modifier cannot be paused as intended.
The paused
state variable is initialized in the contract, but there are no functions to modify its state (e.g., pause
or unpause
). This renders the whenNotPaused
modifier ineffective, as the paused
variable will always remain in its initial state (likely false
). Consequently, functions intended to be pausable cannot be paused, undermining the contract's ability to handle emergencies or security incidents.
The inability to pause the contract has the following implications:
Lack of Emergency Control: In the event of a security issue or critical bug, the contract cannot be paused to prevent further damage.
Functionality Risks: Functions that should be pausable remain operational even when they should be restricted, potentially exposing the contract to exploitation or misuse.
Manual review
To address this issue, implement pause
and unpause
functions in the veRAACToken
contract. These functions should be restricted to authorized roles (e.g., the contract owner or administrator) to ensure proper access control.
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.