The distributeRevenue function is designed to allocate revenue to different stakeholders. It splits the provided amount into:
80% allocated to veRAAC holders (veRAACShare)
20% allocated as a performance fee (performanceShare)
However, the function only distributes the veRAACShare to the respective gauges and completely ignores the performanceShare allocation. This results in the performance fee remaining unallocated, which contradicts the intended behavior.
The function calculates performanceShare = 20% of amount, but does nothing with it. The performanceShare remains unallocated, potentially causing fund mismanagement if untracked.
Since performanceShare is not explicitly distributed or stored in a trackable variable, these funds may remain stuck in the contract without a retrieval mechanism.
The event RevenueDistributed(gaugeType, amount, veRAACShare, performanceShare); is emitted, misleading observers into believing that the performance fee has been allocated, when in reality, it has not been handled.
Users relying on fee distributions may be impacted, as stakeholders expecting performance fees will not receive them.
Manual Review
Modify the distributeRevenue function to properly allocate the performance fee to an appropriate recipient.
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.