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
tx
object
Yes
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 digests
tx.digests
string[]
Yes
A list of order digests, represented as hex strings.
tx.nonce
string
Yes
signature
string
Yes
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