Normally, sellers create orders with deadlines and can cancel or amend them. Once expired, orders should ideally be cleared or made inactive to free locked tokens.
The contract does not automatically handle expired orders, and only the seller can cancel them. If a seller abandons or ignores an expired order, the tokens remain locked indefinitely, causing a denial of service by blocking access to those tokens and reducing market liquidity.
Likelihood:
Sellers may abandon or neglect to cancel their expired orders, leaving tokens locked indefinitely.
The contract lacks an automatic mechanism or alternative party to reclaim tokens from expired orders, making this a recurring issue over time.
Impact:
Locked tokens reduce market liquidity and degrade user experience, as those funds become unusable.
Prolonged token locking can lead to loss of user trust and hinder the platform’s reputation and adoption.
A seller creates a sell order with a short deadline. After the order expires, if the seller does not cancel the order to reclaim their tokens, those tokens remain locked in the contract indefinitely. Since no mechanism allows others to recover these tokens, they become permanently inaccessible, causing a denial of service.
Allow anyone to cancel expired orders to release locked tokens, preventing indefinite lockup and improving market liquidity.
By design only `seller` can call `cancelSellOrder()` on their `order`. But when an `order` expires, and the `seller` doesn't have access to the protocol, the expired `order `should be be able to be cancelled by an `admin`.
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.