It can be seen that when updateUserBoost is called in the BoostController.sol function, the poolBoost.totalBoost, poolBoost.workingSupply etc are updated accordingly. But this updation is missing when a user delegates using the delegateBoost() function
In the updateUserBoost, the poolBoost variables are updated
But these updations are missing in the delegateBoost function. This causes the updateUserBoost to be unusable after sometime.Because assume user A has called the delegateBoost function which updates his userBoost.amount to 10 (for example). after a while his voting power comes down, and updateUserBoost function is called, here the reduction of his voting power is subtracted from the poolBoost.totalBoost. This will revert since it was never added in the first place thus going negative.
updateUserBoost function wont work, and entire accounting will be wrong.
manual review
update the poolBoost variables in the delegateBoost function too.
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.