The withdraw
and emergencyWithdraw
functions do not update _lockState.totalLocked
when locked tokens are withdrawn.
The function deletes the user data, but it does not update the _lockState.totalLocked. This means the totalLocked will remain the same even after users have unlocked or withdrawn their tokens. If the lock function is checking for the MAX_TOTAL_LOCKED_AMOUNT, the check won't be accurate because the _lockState.totalLocked will not return the correct value.
The contract is not tracking the correct amount of locked tokens.
Manual Review
Modify withdraw
and emergencyWithdraw
to decrease _lockState.totalLocked
when users withdraw their locked tokens.
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.