The emergencyRevoke
function has two key issues:
Tokens are transferred to the contract (address(this)
) instead of a designated treasury wallet (TREASURY_WALLET
). This could lead to inefficient fund management.
The function does not include a reason
parameter, making it harder to track why an emergency revocation was triggered.
The function currently transfers unreleased vested tokens to address(this)
.
If the contract is compromised because some issues, these tokens may become inaccessible.
Instead, the funds should be transferred to a designated treasury wallet (TREASURY_WALLET
)
Emergency revocations often happen due to fraud, compliance issues, or admin decisions.
Without a reason
parameter, there is no way to track why a revocation occurred, leading to poor transparency and accountability.
Adding a reason
(string) to the function and event ensures better documentation and future audits.
Locked or Mismanaged Funds: If tokens are sent to address(this)
, they may be permanently locked unless another function allows retrieval.
Transparency & Accountability Issues: Without a reason for revocation, it is difficult to justify emergency actions to stakeholders, auditors, or governance bodies.
Manual Review
Transfer Unreleased Tokens to Treasury (TREASURY_WALLET
)
Modify the function signature to include a string memory reason
:
Modify the event to contain "reason".
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.