@dydxprotocol/v4-client-js 1.1.31 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -1
- package/__native__/__ios__/v4-native-client.js +85 -10
- package/__tests__/helpers/constants.ts +12 -0
- package/__tests__/lib/validation.test.ts +49 -1
- package/build/__tests__/helpers/constants.d.ts +2 -1
- package/build/__tests__/helpers/constants.js +12 -2
- package/build/__tests__/lib/validation.test.js +36 -1
- package/build/examples/batch_cancel_orders_example.d.ts +1 -0
- package/build/examples/batch_cancel_orders_example.js +93 -0
- package/build/src/clients/composite-client.d.ts +24 -1
- package/build/src/clients/composite-client.js +27 -1
- package/build/src/clients/constants.d.ts +1 -0
- package/build/src/clients/constants.js +3 -2
- package/build/src/clients/lib/registry.js +2 -1
- package/build/src/clients/modules/composer.d.ts +2 -0
- package/build/src/clients/modules/composer.js +16 -1
- package/build/src/clients/modules/post.d.ts +3 -1
- package/build/src/clients/modules/post.js +11 -1
- package/build/src/clients/types.d.ts +7 -0
- package/build/src/clients/types.js +1 -1
- package/build/src/lib/validation.d.ts +6 -1
- package/build/src/lib/validation.js +23 -2
- package/build/src/types.d.ts +2 -1
- package/build/src/types.js +2 -1
- package/examples/batch_cancel_orders_example.ts +130 -0
- package/package.json +1 -1
- package/src/clients/composite-client.ts +60 -1
- package/src/clients/constants.ts +2 -1
- package/src/clients/lib/registry.ts +3 -0
- package/src/clients/modules/composer.ts +26 -0
- package/src/clients/modules/post.ts +40 -0
- package/src/clients/types.ts +5 -0
- package/src/lib/validation.ts +42 -3
- package/src/types.ts +1 -0
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
MsgPlaceOrder,
|
|
34
34
|
MsgCancelOrder,
|
|
35
35
|
Order_ConditionType,
|
|
36
|
+
OrderBatch,
|
|
36
37
|
} from './proto-includes';
|
|
37
38
|
|
|
38
39
|
// Required for encoding and decoding queries that are of type Long.
|
|
@@ -520,6 +521,45 @@ export class Post {
|
|
|
520
521
|
);
|
|
521
522
|
}
|
|
522
523
|
|
|
524
|
+
async batchCancelShortTermOrders(
|
|
525
|
+
subaccount: SubaccountInfo,
|
|
526
|
+
shortTermOrders: OrderBatch[],
|
|
527
|
+
goodTilBlock: number,
|
|
528
|
+
broadcastMode?: BroadcastMode,
|
|
529
|
+
): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx> {
|
|
530
|
+
const msg = await this.batchCancelShortTermOrdersMsg(
|
|
531
|
+
subaccount.address,
|
|
532
|
+
subaccount.subaccountNumber,
|
|
533
|
+
shortTermOrders,
|
|
534
|
+
goodTilBlock,
|
|
535
|
+
);
|
|
536
|
+
return this.send(
|
|
537
|
+
subaccount.wallet,
|
|
538
|
+
() => Promise.resolve([msg]),
|
|
539
|
+
true,
|
|
540
|
+
undefined,
|
|
541
|
+
undefined,
|
|
542
|
+
broadcastMode,
|
|
543
|
+
);
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
async batchCancelShortTermOrdersMsg(
|
|
547
|
+
address: string,
|
|
548
|
+
subaccountNumber: number,
|
|
549
|
+
shortTermOrders: OrderBatch[],
|
|
550
|
+
goodTilBlock: number,
|
|
551
|
+
): Promise<EncodeObject> {
|
|
552
|
+
return new Promise((resolve) => {
|
|
553
|
+
const msg = this.composer.composeMsgBatchCancelShortTermOrders(
|
|
554
|
+
address,
|
|
555
|
+
subaccountNumber,
|
|
556
|
+
shortTermOrders,
|
|
557
|
+
goodTilBlock,
|
|
558
|
+
);
|
|
559
|
+
resolve(msg);
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
|
|
523
563
|
async transfer(
|
|
524
564
|
subaccount: SubaccountInfo,
|
|
525
565
|
recipientAddress: string,
|
package/src/clients/types.ts
CHANGED
|
@@ -59,6 +59,11 @@ export interface IPlaceOrder extends IBasicOrder {
|
|
|
59
59
|
|
|
60
60
|
export interface ICancelOrder extends IBasicOrder {}
|
|
61
61
|
|
|
62
|
+
export interface IBatchCancelOrder {
|
|
63
|
+
shortTermOrders: { clobPairId: number; clientIds: number[] }[];
|
|
64
|
+
goodTilBlock: number;
|
|
65
|
+
}
|
|
66
|
+
|
|
62
67
|
// How long to wait and how often to check when calling Broadcast with
|
|
63
68
|
// Method.BroadcastTxCommit
|
|
64
69
|
export interface BroadcastOptions {
|
package/src/lib/validation.ts
CHANGED
|
@@ -2,7 +2,13 @@ import { decode } from 'bech32';
|
|
|
2
2
|
import Long from 'long';
|
|
3
3
|
|
|
4
4
|
import { MAX_SUBACCOUNT_NUMBER, MAX_UINT_32 } from '../clients/constants';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
Transfer,
|
|
7
|
+
OrderFlags,
|
|
8
|
+
ICancelOrder,
|
|
9
|
+
IPlaceOrder,
|
|
10
|
+
IBatchCancelOrder,
|
|
11
|
+
} from '../clients/types';
|
|
6
12
|
import { UserError } from './errors';
|
|
7
13
|
|
|
8
14
|
/**
|
|
@@ -77,6 +83,35 @@ export function validateCancelOrderMessage(
|
|
|
77
83
|
return undefined;
|
|
78
84
|
}
|
|
79
85
|
|
|
86
|
+
/**
|
|
87
|
+
* @describe validateBatchCancelOrderMessage validates that orders to batch cancel have fields that would be
|
|
88
|
+
* valid on-chain.
|
|
89
|
+
*/
|
|
90
|
+
export function validateBatchCancelOrderMessage(
|
|
91
|
+
subaccountNumber: number,
|
|
92
|
+
orders: IBatchCancelOrder,
|
|
93
|
+
): UserError | undefined {
|
|
94
|
+
for (const orderBatch of orders.shortTermOrders) {
|
|
95
|
+
for (const clientId of orderBatch.clientIds) {
|
|
96
|
+
if (!verifyNumberIsUint32(clientId)) {
|
|
97
|
+
return new UserError(`clientId: ${clientId} is not a valid uint32`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (!verifyGoodTilBlock(orders.goodTilBlock)) {
|
|
103
|
+
return new UserError(`goodTilBlock: ${orders.goodTilBlock} is not a valid uint32 or is 0`);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (!verifySubaccountNumber(subaccountNumber)) {
|
|
107
|
+
return new UserError(
|
|
108
|
+
`subaccountNumber: ${subaccountNumber} cannot be < 0 or > ${MAX_SUBACCOUNT_NUMBER}`,
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
|
|
80
115
|
/**
|
|
81
116
|
* @describe validateTransferMessage validates that a transfer to place has fields that would be
|
|
82
117
|
* valid on-chain.
|
|
@@ -84,12 +119,16 @@ export function validateCancelOrderMessage(
|
|
|
84
119
|
export function validateTransferMessage(transfer: Transfer): UserError | undefined {
|
|
85
120
|
if (!verifySubaccountNumber(transfer.sender!!.number || 0)) {
|
|
86
121
|
return new UserError(
|
|
87
|
-
`senderSubaccountNumber: ${
|
|
122
|
+
`senderSubaccountNumber: ${
|
|
123
|
+
transfer.sender!!.number || 0
|
|
124
|
+
} cannot be < 0 or > ${MAX_SUBACCOUNT_NUMBER}`,
|
|
88
125
|
);
|
|
89
126
|
}
|
|
90
127
|
if (!verifySubaccountNumber(transfer.recipient!!.number || 0)) {
|
|
91
128
|
return new UserError(
|
|
92
|
-
`recipientSubaccountNumber: ${
|
|
129
|
+
`recipientSubaccountNumber: ${
|
|
130
|
+
transfer.recipient!!.number || 0
|
|
131
|
+
} cannot be < 0 or > ${MAX_SUBACCOUNT_NUMBER}`,
|
|
93
132
|
);
|
|
94
133
|
}
|
|
95
134
|
if (transfer.assetId !== 0) {
|