A calculated 20% performance fee remains permanently stranded/lost in the protocol due to incomplete fee handling logic. While the fee is correctly computed during revenue distribution, there's no mechanism to store or withdraw these funds.
The protocol calculates a 20% performance fee during revenue distribution (distributeRevenue()), but:
Fee amounts aren't stored in any storage variables
There is no withdrawal/claim functions for these funds
Fee value only appears in event emissions
This leaves 20% of every distributed revenue permanently inaccessible.
20% of all distributed revenue becomes protocol-owned but unreachable. And if fee collection was intentional, protocol fails to implement core functionality
Manual review
Add a state variable and a mechanism to store the fees via the variable. And then create a withdrawal function (with necessary access controls):
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.