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.