newDeadlineDuration
May Enable Order "Perpetuation"
Normally, the amendSellOrder()
function allows a seller to change the terms of an active sell order — including the token amount, price, and deadline duration — as long as the order hasn't expired.
However, by repeatedly calling amendSellOrder()
and passing a new _newDeadlineDuration
, the seller can continuously extend the order's expiration without restriction, keeping the order in an "active but not fulfillable" state indefinitely, unless a cancellation is enforced elsewhere.
This behavior may be intended, but it opens up griefing or denial-of-cancellation edge cases in a system where orders are expected to expire naturally after a set deadline.
Likelihood: Low
Occurs when a seller wants to keep an order active indefinitely by repeatedly amending it before expiration.
Can also be automated via bots to "game" certain off-chain systems or GUIs that rely on natural expiry for pruning.
Impact: Low to Moderate
Could prevent cleanup or off-chain expiry handling, especially in frontends or indexers.
May abuse visibility on marketplaces by always keeping an order "fresh."
Could result in confusion or unexpected user experience for buyers expecting finite windows for offer expiration.
Seller creates a valid sell order with a 24-hour deadline.
Just before the order expires (e.g., at hour 23), seller calls amendSellOrder()
and keeps all values the same except _newDeadlineDuration = 86400
.
The deadline is extended another 24 hours.
Repeat the call daily — the order remains "active" perpetually, even if the seller is not truly engaged or interested in finalizing it.
Enforce a maximum number of amendments
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.