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
Parameter | Type | Required | Description |
---|---|---|---|
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. |
signature | string | Yes | Signed transaction. See Signing section for more details. |
digest | string | No | Hex string representing a hash of the |
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