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.