In the BoostController contract, the updateUserBoost()
function directly overwrites the pool's workingSupply
with a user's new boost amount instead of properly accumulating the total working supply across all users. This leads to incorrect tracking of the total working supply for pools.
The function correctly updates totalBoost by calculating the difference between new and old boost values
However, it then incorrectly assigns workingSupply = newBoost, overwriting the entire pool's working supply with a single user's boost
This effectively erases all other users' contributions to the working supply
Tracking of working supply is wrong => while this has no direct impact on the contracts calculation itself, there might be some other parts of the system or off-chain mechanism that relies on this information.
Manual Review
The working supply should be updated by accounting for the difference between old and new boost values
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.