The getBoostMultiplier function in the contract contains a issue where the boost multiplier calculation always returns MAX_BOOST if userBoost.amount > 0 and MIN_BOOST if userBoost.amount > 0 , leading to an incorrect boost determination. This makes it unfair for users that heve much boost amount and ones that have just "1".
Affected Function: BoostController:getBoostMultiplier
Issue:
This logic results in a division where baseAmount cancels out userBoost.amount * 10000, always returning MAX_BOOST when userBoost.amount > 0.
Loss of Intended Functionality: The function does not differentiate boost levels correctly.
Alice (userBoost.amount = 0) → Returns MIN_BOOST (as per function logic)
Bob (userBoost.amount = 1) → Returns MAX_BOOST
Charlie (userBoost.amount = 10000) → Returns MAX_BOOST
Correct the calculation to reflect the intended scaling
The current implementation of getBoostMultiplier results in all users receiving MAX_BOOST, rendering the function ineffective. Fixing the calculation will restore accurate boost determination and prevent potential manipulation.
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.