Orders get stuck after the deadline
In the current implementation, only the seller can cancel an order, even after its deadline has expired. If the seller becomes inactive or loses access to their wallet, the order remains permanently locked in the contract and the tokens are inaccessible.
Likelihood:
Reason 1 If the seller loses access to their wallet or becomes inactive, no one can cancel the expired order.
Reason 2 Orders with expired deadlines may accumulate in the contract, increasing the amount of "dead" or locked funds.
Impact:
Impact 1 User funds may be permanently locked in the contract.
Impact 2 Trust in the protocol decreases and user experience suffers.
Impact 3 "Garbage" accumulates in the contract, making state analysis more difficult
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.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.