Cancel Orders
Removes specified orders from orderbook.
Rate limits
When no digests are provided: 600 cancellations/min or 10 cancellations/sec per wallet. (weight=1)
When digests are provided: 600/(total digests) cancellations per minute per wallet. (weight=total digests)
See more details in API Rate limits.
Request
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
tx | object | Yes | Cancel order transaction object. See Signing section for details on the transaction fields. |
tx.sender | string | Yes | Hex string representing the subaccount's 32 bytes (address + subaccount name) of the tx sender. |
tx.productIds | number[] | Yes | A list of product IDs, corresponding to the product ids of the orders in |
tx.digests | string[] | Yes | A list of order digests, represented as hex strings. |
tx.nonce | string | Yes | Used to differentiate between the same cancellation multiple times. See Signing section for more details. |
signature | string | Yes | Signed transaction. See Signing section for more details. |
Signing
See more details and examples in our signing page.
The solidity typed data struct that needs to be signed is:
sender
: a bytes32
sent as a hex string; includes the address and the subaccount identifier
productIds
: a list of product IDs, corresponding to the product ids of the orders in digests
digests
: a list of order digests, represented as hex strings, for the orders you want to cancel.
nonce
: used to differentiate between the same cancellation multiple times, and a user trying to place a cancellation with the same parameters twice. Sent as a string. Encodes two bit of information:
Most significant
44
bits encoding therecv_time
in milliseconds after which the cancellation should be ignored by the matching engine; the engine will accept cancellations wherecurrent_time < recv_time <= current_time + 100000
Least significant
20
bits are a random integer used to avoid hash collisionsFor example, to place a cancellation with a random integer of
1000
, and a discard time 50 ms from now, we would send a nonce of(timestamp_ms() + 50) << 20 + 1000
Note: for signing you should always use the data type specified in the solidity struct which might be different from the type sent in the request e.g: nonce
should be an uint64
for Signing but should be sent as a string
in the final payload.
Response
Success
Failure
Last updated