The StakingPool contract enforces a limit where the sum of all fees (_totalFeesBasisPoints) cannot exceed 4000 basis points, while the OperatorVCS contract enforces a maximum of 3000 basis points. This disparity in fee validation between the two contracts can cause issues with fee distribution, especially when calculating rewards across multiple strategies. When StakingPool::_updateStrategyRewards is called, the difference in fee basis points can result in insufficient funds to properly pay all fee receivers.
The StakingPool contract, upon deployment, ensures that the total sum of fees (_totalFeesBasisPoints) does not exceed 4000 basis points (or 40%). Conversely, the OperatorVCS contract limits the total sum of fees to 3000 basis points (or 30%). This difference can lead to accounting issues when rewards are distributed.
When StakingPool::_updateStrategyRewards() is called, the contract first triggers the updateDeposits function in all linked strategies, including OperatorVCS. Inside OperatorVCS::updateDeposits, the fees are calculated based on the fee receivers’ basis points:
In StakingPool::_updateStrategyRewards, these fee amounts are summed up to calculate the totalFeeAmounts to be distributed among all fee receivers. However, due to the differing _totalFeesBasisPoints between StakingPool (4000) and OperatorVCS (3000), the rewards available for distribution may fall short of the total required to satisfy all the fee receivers.
The mismatch in _totalFeesBasisPoints between StakingPool and OperatorVCS can result in insufficient fees being available to distribute to fee receivers. This could lead to unfair or incomplete reward distributions, undermining the accuracy and fairness of the protocol's reward system.
Manual
Ensure that the _totalFeesBasisPoints is consistent across both StakingPool and OperatorVCS to avoid discrepancies during fee distribution. Additionally, consider implementing logic that handles scenarios where the fees to be distributed exceed the total available rewards, ensuring a fair distribution across all receivers.
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.