When users increase their lock, the function calculates and updates their power based on an incorrect value.
When users increase their lock by transferring additional RAAC tokens, the function calculates and updates their power based on a wrong value:
The function first increases the _lockState lock amount of the user with amount, and afterwards calls _votingState.calculateAndUpdatePower() with userLock.amount + amount which is incorrect. Since the lock was already increased by amount, this will double count it.
originalAmount = 100
newAmount = 50
increaseLock(50) -> locked amount now 150
userLock.amount == 150
calculateAndUpdatePower(150 + 50) -> user's power updated with 2x amount
Users power gets updated with 2x the amount they increase their lock with.
Manual Review
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.