The BaseGauge contract is an abstract contract that is implemented in RWAGauge and RAACGauge. The issue arises when the BaseGauge contract initializes the boostState.minBoost parameter incorrectly.
The boostState struct is responsible for boost calculations. It appears that both boostState.maxBoost and boostState.minBoost are expected to be in BASIS_POINT. However, while boostState.maxBoost is correctly set to 25000 (representing a 2.5x boost), boostState.minBoost is mistakenly set to 1e18, which is significantly higher than maxBoost. Ideally, minBoost should be below 10000, which aligns with BASIS_POINT.
The incorrect minBoost value directly impacts the reward update mechanism for users. The minBoost value is used in _applyBoost() to calculate the boost factor. This function is then called in getUserWeight(), which is further used in earn(), and ultimately affects _updateReward(), the function responsible for updating user rewards.
Because of this issue, users may experience incorrect or unfair reward calculations until the minBoost parameter is corrected.
While minBoost can be updated using setBoostParameters(), the incorrect initial value can cause significant problems until it is manually corrected.
Incorrect minBoost will lead to inaccurate reward distribution.
VS Code
Ensure that minBoost is set to a within the expected range (ideally below 10000).
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.