The contract sets poolBoost.workingSupply
to a single user’s calculated boost amount (newBoost) when updating a user’s boost, rather than adjusting it by the difference between newBoost and the existing boost. This causes workingSupply to be overwritten, ignoring all other users’ boosts in the pool.
Within updateUserBoost, the line:
unconditionally overwrites the pool’s entire workingSupply with the boost amount of one user. In a multi-user scenario, this will result in the total effective supply (and therefore any rewards based on workingSupply) being miscalculated because other users’ boosts are not taken into account.
All existing boosts in the pool are effectively nullified every time a single user updates their boost. This leads to an incorrect workingSupply and can cause unfair or inaccurate reward distribution among participants.
Manual Review
Replace the direct assignment of poolBoost.workingSupply
with an incremental or decremental update
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.