The adminFeePercent parameter in the fee distribution logic can be set to 100%, which allocates all collected fees to the admin. This configuration poses several risks, including reduced incentives for liquidity providers (LPs) and operational imbalance.
The adminFeePercent can be set to 100% results in all fees being allocated to the admin, with no portion reinvested into the pool
The setQuantAMMUpliftFeeTake function allows adminFeePercent to be set up to 100% (1e18).
The loop calculates the exitFee for each token and splits it into admin fees (accruedQuantAMMFees) and fees to be donated back to the pool (accruedFees).
If adminFeePercent is set to 100%, the entire exit fee for each token will be allocated to accruedQuantAMMFees, leaving accruedFees as zero.
The conditional check if (localData.adminFeePercent != 1e18) ensures that fees are only donated back to the pool if adminFeePercent is less than 100%. Setting it to 100% bypasses this donation logic.
With 100% of fees going to the admin, LPs receive no benefit from fee reinvestment, potentially discouraging liquidity provision.
The condition if (localData.adminFeePercent != 1e18) prevents any fees from being donated back to the pool, as it would not be met when adminFeePercent is 100%.
The reinvestment of fees back into the pool is crucial for maintaining liquidity and incentivizing participation. Setting adminFeePercent to 100% disrupts this balance.
Manual Review
Limit adminFeePercent to a value less than 100% to ensure that a portion of the fees is always reinvested into the pool, benefiting all liquidity providers.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.