when a user calls veRAACToken.lock(), a brand new LockState.locks is created for a user via _lockState.createLock()
The problem arises when a user had previously locked huge amounts of raacTokens and tries to increase lockamounts via lock() itself rather than increase(). By doing so. all his previously locked raacTokens are overriden with the brand new lock data and there is no way to retrieve previous raacTokens
Imagine this scenario:
User locks 1 Million raacTokens by calling lock()
now _lockState.locks[user].amount == 1000000 * decimals
User increases 1 more raacToken, not by increase() but by lock() itself
A new call to _lockState.createLock() resets the previous user lockState
now _lockState.locks[user].amount == 1 * decimals
RESULT => USER LOST 1 MILLION RAAC TOKENS AND CAN'T RECOVER A DIME
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.