A boost of 1x multiplier will increase the staker's balance by 100%.
In test files, boost are set to 8x multiplier.
If the protocol decides to reduce boost from 8x to 1x, calculations in effectiveBalances
and totalEffectiveBalance
may underflow.
In _storeUpdatedLock()
of SDLPoolPrimary.sol, the duration of the lock can be updated by the user. If the user wants to lock with a longer duration, but did not realize that the boost multiplier has been decreased, the diffTotalAmount
will be a negative number.
If the boost reduction is extremely large, effectiveBalances
and totalEffectiveBalance
will underflow, resulting in users being unable to lengthen their existing lock duration. They also won't be able to transfer their locks because transferring will mean that onTokenTransfer()
is called which calls _storeUpdatedLock()
.
Users will not be able to update their lock duration or transfer their locks if multiplier is reduced.
Manual Review
Ensure that a reduction in multiplier will not affect the current protocol functionality. Best is to make sure that the multiplier cannot be decreased at all.
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.