The BaseGauge contract initializes minBoost with 18 decimals (1e18) while maxBoost is set to 25000 (2.5x with 4 decimals). This decimal mismatch causes maxBoost to be less than minBoost, leading to an arithmetic underflow in the BoostCalculator library when calculating the boost range.
In BaseGauge.sol, minBoost is set to 1e18 (1 with 18 decimals)
maxBoost is set to 25000 (2.5x with 4 decimals, representing 2.5x as 25000 basis points)
The BoostCalculator.calculateBoost() function calculates boostRange = params.maxBoost - params.minBoost
Since 25000 < 1e18, this subtraction will revert due to underflow.
The boost calculation will always revert, making the gauge system completely unusable
Users will be unable to receive any boosted rewards, effectively breaking the core functionality of the gauge system
Manual Review
: The minBoost should be set using the same decimal precision as maxBoost (4 decimals for basis points). The correct initialization should be:
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.