This due to the fact that if a user create a new lock, it will override the first one as seen here:
Imagine the following scenario:
user locks RAAC tokens in the veRAAC contract and receives veRAAC tokens
Then he gets some RAAC token rewards from the StabilityPool and wants to increase his voting power
If he do this he will lose his last lock (since it will be overriden as seen in the LockManager::createLock function), leading to loss of RAAC tokens for the user
This can be bypassed by transferring the tokens to another address and making a lock with it, but the user will lose RAAC tokens again, because of the applied fees in the RAACToken::_update function:
This leads to loss of RAAC tokens for the user and practically locked funds since if the user see this and decides to do nothing, his RAAC token is practically useless
Manual review
Implement a multiple lock functionality so the users can create a new lock without losing the old one
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.