The boos multiplier is incorrectly applied to a weight amount instead to the user's LP. This will result in wrong reward distribution.
BaseGauge::earned() should calculate the earned rewards for an account. The user's weight (which in fact it's gauge's weight) is multiplied by latest Reward Per Token - user's stored reward per token. The getRewardPerToken returns current reward per staked token.
At the end, user's accumulated rewards is summed.
getUserWeight applies the boost to gauge's weight. Instead it should have been applied to user's LP.
When veRaac holders vote on gauge weights, they decide how much rewards each gauge receives. However, the user's boost should be applied to the user's staked amount in the gauge to incentivize liquidity provision.
For comparison, Curve's adjusted stake is computed using:
Adjusted Stake =
Where 2.5 is the maxBoost and 1.5 is maxBoost - minBoost.
The boosted amount is incrrrectly calculated. The rewards will not be distributed based on locked liquidity, disincentivizing LPing.
Apply the boost to user's staked amount.
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.