The distributeRevenue
function fails to distribute the performanceShare
portion of the revenue, causing funds to be stuck and unavailable for their intended purpose.
Affected Code: GaugeController::distributeRevenue
Within the distributeRevenue
function, the performanceShare
is calculated as 20% of the input amount
. However, after calculating this share, it is neither transferred nor allocated to any address:
Unlike the veRAACShare
, which is correctly distributed to the appropriate gauges, the performanceShare
remains unused.
The lack of proper handling for the performanceShare
results in funds being permanently stuck within the contract. This leads to:
Loss of funds that should be allocated to performance fee recipients.
Misalignment with the intended tokenomics and revenue distribution design.
Misleading event emitted that performance shares has been distributed.
Manual code review
To address this issue, implement logic to transfer or allocate the performanceShare
to the appropriate recipient(s). For example:
Alternatively, introduce a performanceFeeRecipient
variable within the contract to allow dynamic configuration of the recipient address via an admin function. Ensure appropriate tests are written to validate the correct distribution of this share.
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.