in function calculateBoost wrong values are being fetched from updateTotalWeight() to calculate the user's boost .
calculateboost calls updateTotalWeight()to retrievetotalWeight totalVotingPower votingPower to pass for calculations of the user's boost amount
the issue is that when it calls updateTotalWeight() , the function retrieves getLockPosition for address(this) same with getVotingPower which will not return the user's
lockPosition and votingPower , it will instead return the contract's balances that is calling it because its hardcoded to return information about address(this) in this case the BoostController.sol
this will pass incorrect values for TotalVotingPower totalWeight,voting power for BoostCalculations.
in the call to updateTotalWeight i think its intention was to return totalWeight in the protocol but in this case it returns LockPosition for specific address as TotalWeight .
UpdateTotalWeight will return wrong values to _CalculateBoost which will lead to incorrect calculations of user boosts .
manual review
if you want to return totalWeight make a getter function and call it instead of getLockPosition.
instead of address this use the user address to fetch his needed balances .
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.