The decimal mismatch in BaseGauge.sol will cause incorrect reward distributions for users as the boost calculation uses basis points (10000) instead of the expected 1e18 precision.
In BaseGauge.sol and BoostCalculator.sol, there is a decimal mismatch between the boost calculation and its application:
getUserWeight() works with 18 decimals from the voting power
calculateBoost() returns boost in basis points (10000)
The final calculation in _applyBoost() incorrectly divides by 1e18 instead of the boost precision
Users receive significantly fewer rewards than intended due to the decimal mismatch in the boost calculation. The impact is proportional to the boost amount and affects all users claiming rewards.
The issue occurs in these steps:
getUserWeight() gets the base weight with 18 decimals
calculateBoost() returns a value in basis points (10000)
_applyBoost() incorrectly divides by 1e18 instead of the boost's precision
This results in much smaller rewards being distributed than intended
Modify _applyBoost() to use the correct precision divisor:
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.