The protocol is designed to collect fee, expressed as percentage of 3%, on each order transaction. This fee is calculated and deducted from the order payment amount before funds are transferred to the seller. However, when the order value is sufficiently small, the computed fee rounds down to zero due to Solidity's integer division and lack of floating-point support. As a result, the fee is silently omitted, and the full payment is transferred to the seller without any protocol fee being retained.
Likelihood: High
This issue will occur whenever the order price is too low for the computed fee to be at least 1 unit of the quote token.
Attackers can exploit this by splitting large orders into multiple smaller ones that individually fall below the minimum fee threshold, thus avoiding protocol fees entirely.
Impact: High
The protocol fails to collect intended fees on low-value orders, resulting in lost revenue. The absence of minimum fee opens the door to fee avoidance and could undermine the economic integrity and long-term viability of the protocol.
Introduce a minimum fee enforcement mechansim to ensure the protocol always collects at least one unit of the quote token.
Protocol Suffers Potential Revenue Leakage due to Precision Loss in Fee Calculation
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.