Dodo exchange lets you cancel open limit orders before they fill
Updated
Dodo exchange lets you cancel an open limit order while its unfilled amount remains available for execution. The order specifies the exchange terms you accept, including a target price and an expiration time. Cancellation concerns future fills; it cannot undo a completed token exchange. Before replacing an unwanted order, establish whether cancellation succeeded and whether any portion already filled. A submitted swap has a different boundary because execution can finish before an attempted cancellation takes effect.
Cancelling an open limit order concerns its unfilled remainder; any completed token exchange requires separate accounting.
An open limit order and a submitted swap leave different choices
A limit order waits for its price condition, while a submitted swap asks the network to execute a transaction. Waiting preserves the possibility of cancelling an open order, although no fixed grace period follows submission. An immediately executable order may fill before you change your mind.
During quote review, changing an unsigned amount or abandoning the form creates no exchange. Before submitting a swap, review its slippage tolerance and transaction deadline. These settings can prevent execution outside the accepted terms; they do not reverse a successful swap. After submission, editing the screen does not amend the instruction already sent. A pending transaction also does not promise a usable cancellation window. The important distinction is whether the exchange remains unexecuted, not how long the interface has displayed a spinner.
The signed order and token allowance control different permissions
The order signature authorizes specific exchange terms; a token allowance permits the relevant spender to transfer the input asset. These permissions serve different purposes. Approving a token alone does not specify the desired exchange, and signing an order does not establish that a fill occurred.
For an ERC-20 token, the allowance limits how much an approved spender can withdraw. Cancelling an order should not be treated as proof that this separate permission disappeared. Review any remaining allowance independently if the intention is to remove spending access as well as stop that order. Changing an allowance also does not reverse transfers the spender already completed.
How do I cancel an open limit order?
In Open Orders, match the account and order details, then select the cancellation control and complete the wallet prompts for that request. The trading interface provides an X control beside an open limit order to request cancellation.
After submitting the request, check the resulting order status and any filled amount. Treat an unresolved request as unresolved rather than assuming the first click stopped execution. A fill can precede successful cancellation, so the timing matters when interpreting the final record. For each reported fill or submitted swap, check the transaction status and token transfers on the relevant chain. A transaction hash alone does not prove success. Record the input spent and output received only after confirming execution; a reverted transaction produces no completed swap but can still incur a network fee.
Partial fills separate completed transfers from the remaining order
The limit-order contract supports partial execution and tracks how much of an order has filled. It calculates the exchanged quantities from the signed amounts and limits additional execution to the remainder. Its fill event identifies the order and the amounts exchanged in that particular execution.
A cancelled remainder can therefore coexist with a completed exchange. Reconciliation must preserve both facts: the amount already spent and received, and the amount that will no longer execute. A cancellation label alone does not describe the complete economic outcome. Keep the order identifier alongside the execution records so an earlier fill does not disappear from the comparison.
A fully filled order has no unfilled amount left to cancel. Any later exchange requires a separate instruction.
A different target price requires fresh authorization
Changing signed order terms changes the message the signature authenticates, so an edited amount or price requires fresh authorization. The old signature does not become permission for the new terms. This follows from the relationship between structured order data and its cryptographic signature.
When replacing an unwanted order, account for its existing fills before choosing the replacement amount. Treat cancellation and replacement as separate actions unless the interface explicitly establishes otherwise. Submitting revised terms does not itself prove the previous order stopped. If both remain executable, the new order can add another exchange rather than merely correct the first.
Does reaching the target price guarantee a fill?
Reaching the target price does not guarantee execution because a valid fill also needs available liquidity and successful token transfers. A price shown on a chart does not establish an executable exchange for the entire order amount. The execution must also satisfy the order’s authorization and expiration conditions. Liquidity determines whether the desired exchange can happen; cancellation determines whether an unwanted open order should remain available.
Choices before and after a token exchange
| Choice | What it changes | What remains | Required starting condition |
|---|---|---|---|
| Discard an unsigned draft | Stops this draft before authorization | Any earlier orders or approvals | No signature submitted for this draft |
| Keep an open order | Leaves its terms available for execution | Its price and expiration conditions | Active order with an unfilled amount |
| Cancel an open order | Requests an end to future fills | Any completed fills | Open order and authorization to cancel |
| Wait for expiration | Ends execution eligibility at expiry | Exposure to fills before expiry | An order with a specified expiration |
| Cancel and replace | Separately withdraws old terms and authorizes new ones | Existing fills and separate order records | Established old-order outcome and acceptable new terms |
| Exchange the received asset back | Creates another token exchange | The original transaction and its costs | Spendable output and an acceptable executable quote |
Waiting for expiration leaves the order eligible until its deadline. Choose that path only if execution during the remaining interval is still acceptable. Expiration does not serve as an immediate cancellation request.
Trading back creates a new exchange with its own costs
Once a fill completes, exchanging the received asset back requires another trade at the terms available then. The return amount can differ because prices, liquidity and applicable charges can change. The second trade cannot restore the original transaction’s fee or erase its record.
Keep both exchanges in the reconciliation. Compare the actual quantities received with the quantities spent, and distinguish token movements from network charges. An order record describes the instruction and its progress; execution records establish the transfers. A later return trade adds another record rather than correcting the first one.
If the order never filled, no reverse exchange is necessary. If only part filled, the received portion and cancelled remainder require separate accounting.
What to know about Dodo exchange
Can I cancel a limit order by rejecting its wallet prompt?
Rejecting the cancellation prompt leaves that cancellation request incomplete. It does not withdraw an order you previously authorized. Rejecting the original order-signing request has a different effect: it prevents that unsigned request from receiving your approval. Identify which action the wallet is asking you to authorize before interpreting rejection as a stop.
Why can an unfilled limit order have an identifier without a transaction hash?
An order identifier can describe a signed instruction before any blockchain transaction executes it. A transaction hash identifies an actual transaction, which serves a different purpose. Keep the order identifier for matching its progress and any later fills; do not interpret the absence of an execution hash as proof that no valid order exists.
Is a gas-free signature harmless when placing a limit order?
A signature can authorize a later token exchange even when signing it consumes no network gas. Review the tokens, amounts and expiration before signing. The absence of a gas charge describes the signing action, not the financial effect the signed instruction may authorize. A wallet prompt for an order deserves the same attention as the intended exchange.
What happens if I spend the input tokens while my limit order remains open?
Insufficient input tokens can prevent execution, but spending them does not itself cancel the signed order. Do not treat an insufficient balance as a permanent exit. Restoring the balance can remove that obstacle while the order remains otherwise valid. Use the order’s cancellation mechanism when the intention is to withdraw its exchange terms.