Dynamic fees are intended to discourage certain behaviors while still allowing trading.
The constructor allows phasePenaltyBps to be set up to 10,000 bps (100%), meaning a swap can be fully consumed by fees. While intentional, this creates an economic denial-of-service scenario where users can trade but receive effectively zero output.
Likelihood:
Occurs when deployer sets extreme penalty values
Common in adversarial or poorly configured deployments
Impact:
Users unknowingly lose entire swap value
Frontends may not properly warn users
Market becomes unusable during early phases
Proof of Concept
Bot controls 100 EOAs
Each EOA swaps below maxSwapAmount
Cooldown and limits never trigger
Bot acquires large position while paying minimal penalties
Add a maximum penalty bps and revert when exceeded.
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.
The contest is complete and the rewards are being distributed.