Cancel Product Orders
Removes all orders from orderbook for specified products for a given subaccount. Cancels all orders when no products provided.
Rate limits
When no productIds are provided: 12 cancellations/min or 2 cancellations/sec per wallet. (weight=50)
When productIds are provided: 600 / (5 * total productIds) cancellations per minute per wallet. (weight=5*total productIds)
See more details in API Rate limits.
Request
Request Parameters
tx
object
Yes
Cancel product orders transaction object. See Signing section for details on 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 to cancel orders for.
tx.nonce
string
Yes
Used to differentiate between the same cancellation multiple times. See Signing section for more details.
digest
string
No
Hex string representing a hash of the CancellationProducts
object.
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 for which to cancel all subaccount orders. When left empty, orders from all products will be cancelled.
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