In the UpliftOnlyExample.sol, the onAfterSwap hook calculates a fee to cover protocol expenses, splitting it into an admin fee and an owner fee. While the admin fee is correctly sent to the quantAMMAdmin, the owner fee is sent to the contract itself:
Since no functionality exists for the contract owner to withdraw the locked fees and also cannot use further, these funds are effectively lost.
The funds designated as the owner fee are sent to the contract’s address itself and cannot be retrieved due to the absence of a withdrawal function or mechanism.
Loss of owner fees, locking them permanently in the contract.
Reduction in protocol revenue
Manual Review
Add functionality in the contract to withdraw it by the admin. OR
Change the receiver address if the ownerFee > 0
Likelihood: High, every swap. Impact: High, funds are stuck.
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.