In the BaseGauge
contract, a large staker can manipulate reward rates by withdrawing their stake to drastically reduce totalSupply
.
Staking increases and withdrawing decreases totalSupply
. The getRewardPerToken
calculation depends on totalSupply
as denominator:
Example scenario (for illustration purposes, assume the whale holds 80% of the pool):
Withdrawing 8000 tokens leaves 2000 in pool, which increases rewardPerTokenStored
5 times
Staking/withdrawing has no cooldown
High: Large stakers can manipulate reward rates, leading to unfair reward distribution.
Consider implementing a cooldown mechanism for staking and withdrawing or fixing the calculations to prevent manipulation of reward rates through totalSupply
changes.
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.