ccxt 4.3.66 → 4.3.68
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 +3 -3
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +6 -4
- package/dist/cjs/src/base/functions/type.js +2 -2
- package/dist/cjs/src/bingx.js +478 -159
- package/dist/cjs/src/bitget.js +4 -2
- package/dist/cjs/src/bithumb.js +61 -17
- package/dist/cjs/src/pro/krakenfutures.js +7 -6
- package/dist/cjs/src/pro/okx.js +17 -4
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bingx.d.ts +7 -0
- package/js/src/base/Exchange.d.ts +14 -13
- package/js/src/base/Exchange.js +6 -4
- package/js/src/base/functions/type.js +2 -2
- package/js/src/bingx.d.ts +2 -0
- package/js/src/bingx.js +478 -159
- package/js/src/bitget.js +4 -2
- package/js/src/bithumb.js +61 -17
- package/js/src/pro/bitget.d.ts +1 -1
- package/js/src/pro/bybit.d.ts +1 -1
- package/js/src/pro/coinone.d.ts +1 -1
- package/js/src/pro/currencycom.d.ts +1 -1
- package/js/src/pro/hollaex.d.ts +1 -1
- package/js/src/pro/hyperliquid.d.ts +1 -1
- package/js/src/pro/krakenfutures.js +7 -6
- package/js/src/pro/kucoin.d.ts +1 -1
- package/js/src/pro/kucoinfutures.d.ts +1 -1
- package/js/src/pro/mexc.d.ts +1 -1
- package/js/src/pro/okcoin.d.ts +1 -1
- package/js/src/pro/okx.d.ts +2 -2
- package/js/src/pro/okx.js +18 -5
- package/js/src/pro/oxfun.d.ts +1 -1
- package/js/src/pro/p2b.d.ts +1 -1
- package/js/src/pro/poloniex.d.ts +1 -1
- package/js/src/pro/whitebit.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cjs/src/abstract/bittrex.js +0 -9
- package/dist/cjs/src/bittrex.js +0 -2308
- package/dist/cjs/src/pro/bittrex.js +0 -959
- package/js/src/bittrex.d.ts +0 -97
- package/js/src/bittrex.js +0 -2309
- package/js/src/coinbaseprime.d.ts +0 -4
- package/js/src/coinbaseprime.js +0 -32
- package/js/src/pro/bittrex.d.ts +0 -69
- package/js/src/pro/bittrex.js +0 -960
- package/js/src/pro/coinbaseprime.d.ts +0 -4
- package/js/src/pro/coinbaseprime.js +0 -33
- package/js/src/pro/huobipro.d.ts +0 -4
- package/js/src/pro/huobipro.js +0 -17
- package/js/src/pro/mexc3.d.ts +0 -4
- package/js/src/pro/mexc3.js +0 -17
- package/js/src/pro/okex.d.ts +0 -4
- package/js/src/pro/okex.js +0 -17
package/js/src/bitget.js
CHANGED
|
@@ -5208,8 +5208,10 @@ export default class bitget extends Exchange {
|
|
|
5208
5208
|
response = JSON.parse(response);
|
|
5209
5209
|
}
|
|
5210
5210
|
const data = this.safeDict(response, 'data');
|
|
5211
|
-
if ((data !== undefined)
|
|
5212
|
-
|
|
5211
|
+
if ((data !== undefined)) {
|
|
5212
|
+
if (!Array.isArray(data)) {
|
|
5213
|
+
return this.parseOrder(data, market);
|
|
5214
|
+
}
|
|
5213
5215
|
}
|
|
5214
5216
|
const dataList = this.safeList(response, 'data', []);
|
|
5215
5217
|
const first = this.safeDict(dataList, 0, {});
|
package/js/src/bithumb.js
CHANGED
|
@@ -206,17 +206,57 @@ export default class bithumb extends Exchange {
|
|
|
206
206
|
* @returns {object[]} an array of objects representing market data
|
|
207
207
|
*/
|
|
208
208
|
const result = [];
|
|
209
|
-
const quoteCurrencies = this.
|
|
209
|
+
const quoteCurrencies = this.safeDict(this.options, 'quoteCurrencies', {});
|
|
210
210
|
const quotes = Object.keys(quoteCurrencies);
|
|
211
|
+
const promises = [];
|
|
211
212
|
for (let i = 0; i < quotes.length; i++) {
|
|
212
|
-
const quote = quotes[i];
|
|
213
|
-
const quoteId = quote;
|
|
214
|
-
const extension = this.safeValue(quoteCurrencies, quote, {});
|
|
215
213
|
const request = {
|
|
216
|
-
'quoteId':
|
|
214
|
+
'quoteId': quotes[i],
|
|
217
215
|
};
|
|
218
|
-
|
|
219
|
-
|
|
216
|
+
promises.push(this.publicGetTickerALLQuoteId(this.extend(request, params)));
|
|
217
|
+
//
|
|
218
|
+
// {
|
|
219
|
+
// "status": "0000",
|
|
220
|
+
// "data": {
|
|
221
|
+
// "ETH": {
|
|
222
|
+
// "opening_price": "0.05153399",
|
|
223
|
+
// "closing_price": "0.05145144",
|
|
224
|
+
// "min_price": "0.05145144",
|
|
225
|
+
// "max_price": "0.05160781",
|
|
226
|
+
// "units_traded": "6.541124172077830855",
|
|
227
|
+
// "acc_trade_value": "0.33705472498492329997697755",
|
|
228
|
+
// "prev_closing_price": "0.0515943",
|
|
229
|
+
// "units_traded_24H": "43.368879902677400513",
|
|
230
|
+
// "acc_trade_value_24H": "2.24165339555398079994373342",
|
|
231
|
+
// "fluctate_24H": "-0.00018203",
|
|
232
|
+
// "fluctate_rate_24H": "-0.35"
|
|
233
|
+
// },
|
|
234
|
+
// "XRP": {
|
|
235
|
+
// "opening_price": "0.00000918",
|
|
236
|
+
// "closing_price": "0.0000092",
|
|
237
|
+
// "min_price": "0.00000918",
|
|
238
|
+
// "max_price": "0.0000092",
|
|
239
|
+
// "units_traded": "6516.949363",
|
|
240
|
+
// "acc_trade_value": "0.0598792533602796",
|
|
241
|
+
// "prev_closing_price": "0.00000916",
|
|
242
|
+
// "units_traded_24H": "229161.50354738",
|
|
243
|
+
// "acc_trade_value_24H": "2.0446589371637117",
|
|
244
|
+
// "fluctate_24H": "0.00000049",
|
|
245
|
+
// "fluctate_rate_24H": "5.63"
|
|
246
|
+
// },
|
|
247
|
+
// ...
|
|
248
|
+
// "date": "1721675913145"
|
|
249
|
+
// }
|
|
250
|
+
// }
|
|
251
|
+
//
|
|
252
|
+
}
|
|
253
|
+
const results = await Promise.all(promises);
|
|
254
|
+
for (let i = 0; i < quotes.length; i++) {
|
|
255
|
+
const quote = quotes[i];
|
|
256
|
+
const quoteId = quote;
|
|
257
|
+
const response = results[i];
|
|
258
|
+
const data = this.safeDict(response, 'data');
|
|
259
|
+
const extension = this.safeDict(quoteCurrencies, quote, {});
|
|
220
260
|
const currencyIds = Object.keys(data);
|
|
221
261
|
for (let j = 0; j < currencyIds.length; j++) {
|
|
222
262
|
const currencyId = currencyIds[j];
|
|
@@ -285,7 +325,7 @@ export default class bithumb extends Exchange {
|
|
|
285
325
|
}
|
|
286
326
|
parseBalance(response) {
|
|
287
327
|
const result = { 'info': response };
|
|
288
|
-
const balances = this.
|
|
328
|
+
const balances = this.safeDict(response, 'data');
|
|
289
329
|
const codes = Object.keys(this.currencies);
|
|
290
330
|
for (let i = 0; i < codes.length; i++) {
|
|
291
331
|
const code = codes[i];
|
|
@@ -356,7 +396,7 @@ export default class bithumb extends Exchange {
|
|
|
356
396
|
// }
|
|
357
397
|
// }
|
|
358
398
|
//
|
|
359
|
-
const data = this.
|
|
399
|
+
const data = this.safeDict(response, 'data', {});
|
|
360
400
|
const timestamp = this.safeInteger(data, 'timestamp');
|
|
361
401
|
return this.parseOrderBook(data, symbol, timestamp, 'bids', 'asks', 'price', 'quantity');
|
|
362
402
|
}
|
|
@@ -420,15 +460,19 @@ export default class bithumb extends Exchange {
|
|
|
420
460
|
*/
|
|
421
461
|
await this.loadMarkets();
|
|
422
462
|
const result = {};
|
|
423
|
-
const quoteCurrencies = this.
|
|
463
|
+
const quoteCurrencies = this.safeDict(this.options, 'quoteCurrencies', {});
|
|
424
464
|
const quotes = Object.keys(quoteCurrencies);
|
|
465
|
+
const promises = [];
|
|
425
466
|
for (let i = 0; i < quotes.length; i++) {
|
|
426
|
-
const quote = quotes[i];
|
|
427
|
-
const quoteId = quote;
|
|
428
467
|
const request = {
|
|
429
|
-
'quoteId':
|
|
468
|
+
'quoteId': quotes[i],
|
|
430
469
|
};
|
|
431
|
-
|
|
470
|
+
promises.push(this.publicGetTickerALLQuoteId(this.extend(request, params)));
|
|
471
|
+
}
|
|
472
|
+
const responses = await Promise.all(promises);
|
|
473
|
+
for (let i = 0; i < quotes.length; i++) {
|
|
474
|
+
const quote = quotes[i];
|
|
475
|
+
const response = responses[i];
|
|
432
476
|
//
|
|
433
477
|
// {
|
|
434
478
|
// "status":"0000",
|
|
@@ -450,7 +494,7 @@ export default class bithumb extends Exchange {
|
|
|
450
494
|
// }
|
|
451
495
|
// }
|
|
452
496
|
//
|
|
453
|
-
const data = this.
|
|
497
|
+
const data = this.safeDict(response, 'data', {});
|
|
454
498
|
const timestamp = this.safeInteger(data, 'date');
|
|
455
499
|
const tickers = this.omit(data, 'date');
|
|
456
500
|
const currencyIds = Object.keys(tickers);
|
|
@@ -835,7 +879,7 @@ export default class bithumb extends Exchange {
|
|
|
835
879
|
// }
|
|
836
880
|
//
|
|
837
881
|
const timestamp = this.safeIntegerProduct(order, 'order_date', 0.001);
|
|
838
|
-
const sideProperty = this.
|
|
882
|
+
const sideProperty = this.safeString2(order, 'type', 'side');
|
|
839
883
|
const side = (sideProperty === 'bid') ? 'buy' : 'sell';
|
|
840
884
|
const status = this.parseOrderStatus(this.safeString(order, 'order_status'));
|
|
841
885
|
const price = this.safeString2(order, 'order_price', 'price');
|
|
@@ -866,7 +910,7 @@ export default class bithumb extends Exchange {
|
|
|
866
910
|
symbol = market['symbol'];
|
|
867
911
|
}
|
|
868
912
|
const id = this.safeString(order, 'order_id');
|
|
869
|
-
const rawTrades = this.
|
|
913
|
+
const rawTrades = this.safeList(order, 'contract', []);
|
|
870
914
|
return this.safeOrder({
|
|
871
915
|
'info': order,
|
|
872
916
|
'id': id,
|
package/js/src/pro/bitget.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export default class bitget extends bitgetRest {
|
|
|
43
43
|
handleAuthenticate(client: Client, message: any): void;
|
|
44
44
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
45
45
|
handleMessage(client: Client, message: any): void;
|
|
46
|
-
ping(client:
|
|
46
|
+
ping(client: Client): string;
|
|
47
47
|
handlePong(client: Client, message: any): any;
|
|
48
48
|
handleSubscriptionStatus(client: Client, message: any): any;
|
|
49
49
|
}
|
package/js/src/pro/bybit.d.ts
CHANGED
|
@@ -46,7 +46,7 @@ export default class bybit extends bybitRest {
|
|
|
46
46
|
authenticate(url: any, params?: {}): Promise<any>;
|
|
47
47
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
48
48
|
handleMessage(client: Client, message: any): void;
|
|
49
|
-
ping(client:
|
|
49
|
+
ping(client: Client): {
|
|
50
50
|
req_id: any;
|
|
51
51
|
op: string;
|
|
52
52
|
};
|
package/js/src/pro/coinone.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export default class coinone extends coinoneRest {
|
|
|
14
14
|
parseWsTrade(trade: Dict, market?: Market): Trade;
|
|
15
15
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
16
16
|
handleMessage(client: Client, message: any): void;
|
|
17
|
-
ping(client:
|
|
17
|
+
ping(client: Client): {
|
|
18
18
|
request_type: string;
|
|
19
19
|
};
|
|
20
20
|
handlePong(client: Client, message: any): any;
|
|
@@ -3,7 +3,7 @@ import type { Int, OrderBook, Trade, Ticker, OHLCV, Balances } from '../base/typ
|
|
|
3
3
|
import Client from '../base/ws/Client.js';
|
|
4
4
|
export default class currencycom extends currencycomRest {
|
|
5
5
|
describe(): any;
|
|
6
|
-
ping(client:
|
|
6
|
+
ping(client: Client): {
|
|
7
7
|
destination: string;
|
|
8
8
|
correlationId: any;
|
|
9
9
|
payload: {};
|
package/js/src/pro/hollaex.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export default class hollaex extends hollaexRest {
|
|
|
17
17
|
watchPrivate(messageHash: any, params?: {}): Promise<any>;
|
|
18
18
|
handleErrorMessage(client: Client, message: any): any;
|
|
19
19
|
handleMessage(client: Client, message: any): void;
|
|
20
|
-
ping(client:
|
|
20
|
+
ping(client: Client): {
|
|
21
21
|
op: string;
|
|
22
22
|
};
|
|
23
23
|
handlePong(client: Client, message: any): any;
|
|
@@ -19,7 +19,7 @@ export default class hyperliquid extends hyperliquidRest {
|
|
|
19
19
|
handleOrder(client: Client, message: any): void;
|
|
20
20
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
21
21
|
handleMessage(client: Client, message: any): void;
|
|
22
|
-
ping(client:
|
|
22
|
+
ping(client: Client): {
|
|
23
23
|
method: string;
|
|
24
24
|
};
|
|
25
25
|
handlePong(client: Client, message: any): any;
|
|
@@ -79,17 +79,17 @@ export default class krakenfutures extends krakenfuturesRest {
|
|
|
79
79
|
const url = this.urls['api']['ws'];
|
|
80
80
|
const messageHash = 'challenge';
|
|
81
81
|
const client = this.client(url);
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
const future = client.future(messageHash);
|
|
83
|
+
const authenticated = this.safeValue(client.subscriptions, messageHash);
|
|
84
|
+
if (authenticated === undefined) {
|
|
84
85
|
const request = {
|
|
85
86
|
'event': 'challenge',
|
|
86
87
|
'api_key': this.apiKey,
|
|
87
88
|
};
|
|
88
89
|
const message = this.extend(request, params);
|
|
89
|
-
|
|
90
|
-
client.subscriptions[messageHash] = future;
|
|
90
|
+
this.watch(url, messageHash, message, messageHash);
|
|
91
91
|
}
|
|
92
|
-
return future;
|
|
92
|
+
return await future;
|
|
93
93
|
}
|
|
94
94
|
async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
|
|
95
95
|
/**
|
|
@@ -1575,7 +1575,8 @@ export default class krakenfutures extends krakenfuturesRest {
|
|
|
1575
1575
|
const signature = this.hmac(hashedChallenge, base64Secret, sha512, 'base64');
|
|
1576
1576
|
this.options['challenge'] = challenge;
|
|
1577
1577
|
this.options['signedChallenge'] = signature;
|
|
1578
|
-
client.
|
|
1578
|
+
const future = this.safeValue(client.futures, messageHash);
|
|
1579
|
+
future.resolve(true);
|
|
1579
1580
|
}
|
|
1580
1581
|
else {
|
|
1581
1582
|
const error = new AuthenticationError(this.id + ' ' + this.json(message));
|
package/js/src/pro/kucoin.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export default class kucoin extends kucoinRest {
|
|
|
39
39
|
watchBalance(params?: {}): Promise<Balances>;
|
|
40
40
|
handleBalance(client: Client, message: any): void;
|
|
41
41
|
handleSubject(client: Client, message: any): void;
|
|
42
|
-
ping(client:
|
|
42
|
+
ping(client: Client): {
|
|
43
43
|
id: any;
|
|
44
44
|
type: string;
|
|
45
45
|
};
|
|
@@ -42,7 +42,7 @@ export default class kucoinfutures extends kucoinfuturesRest {
|
|
|
42
42
|
fetchBalanceSnapshot(client: any, message: any): Promise<void>;
|
|
43
43
|
handleSubject(client: Client, message: any): void;
|
|
44
44
|
getMessageHash(elementName: string, symbol?: Str): string;
|
|
45
|
-
ping(client:
|
|
45
|
+
ping(client: Client): {
|
|
46
46
|
id: any;
|
|
47
47
|
type: string;
|
|
48
48
|
};
|
package/js/src/pro/mexc.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export default class mexc extends mexcRest {
|
|
|
37
37
|
handlePong(client: Client, message: any): any;
|
|
38
38
|
handleSubscriptionStatus(client: Client, message: any): void;
|
|
39
39
|
handleMessage(client: Client, message: any): void;
|
|
40
|
-
ping(client:
|
|
40
|
+
ping(client: Client): {
|
|
41
41
|
method: string;
|
|
42
42
|
};
|
|
43
43
|
}
|
package/js/src/pro/okcoin.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export default class okcoin extends okcoinRest {
|
|
|
23
23
|
handleBalance(client: Client, message: any): void;
|
|
24
24
|
handleSubscriptionStatus(client: Client, message: any): any;
|
|
25
25
|
handleAuthenticate(client: Client, message: any): any;
|
|
26
|
-
ping(client:
|
|
26
|
+
ping(client: Client): string;
|
|
27
27
|
handlePong(client: Client, message: any): any;
|
|
28
28
|
handleErrorMessage(client: Client, message: any): any;
|
|
29
29
|
handleMessage(client: Client, message: any): void;
|
package/js/src/pro/okx.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export default class okx extends okxRest {
|
|
|
28
28
|
watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
|
|
29
29
|
handleDelta(bookside: any, delta: any): void;
|
|
30
30
|
handleDeltas(bookside: any, deltas: any): void;
|
|
31
|
-
handleOrderBookMessage(client: Client, message: any, orderbook: any, messageHash: any): any;
|
|
31
|
+
handleOrderBookMessage(client: Client, message: any, orderbook: any, messageHash: any, market?: any): any;
|
|
32
32
|
handleOrderBook(client: Client, message: any): any;
|
|
33
33
|
authenticate(params?: {}): Promise<any>;
|
|
34
34
|
watchBalance(params?: {}): Promise<Balances>;
|
|
@@ -50,7 +50,7 @@ export default class okx extends okxRest {
|
|
|
50
50
|
handleCancelAllOrders(client: Client, message: any): void;
|
|
51
51
|
handleSubscriptionStatus(client: Client, message: any): any;
|
|
52
52
|
handleAuthenticate(client: Client, message: any): void;
|
|
53
|
-
ping(client:
|
|
53
|
+
ping(client: Client): string;
|
|
54
54
|
handlePong(client: Client, message: any): any;
|
|
55
55
|
handleErrorMessage(client: Client, message: any): any;
|
|
56
56
|
handleMessage(client: Client, message: any): void;
|
package/js/src/pro/okx.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
import okxRest from '../okx.js';
|
|
9
|
-
import { ArgumentsRequired, BadRequest, ExchangeError, ChecksumError, AuthenticationError } from '../base/errors.js';
|
|
9
|
+
import { ArgumentsRequired, BadRequest, ExchangeError, ChecksumError, AuthenticationError, InvalidNonce } from '../base/errors.js';
|
|
10
10
|
import { ArrayCache, ArrayCacheByTimestamp, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide } from '../base/ws/Cache.js';
|
|
11
11
|
import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
|
|
12
12
|
// ---------------------------------------------------------------------------
|
|
@@ -897,7 +897,7 @@ export default class okx extends okxRest {
|
|
|
897
897
|
this.handleDelta(bookside, deltas[i]);
|
|
898
898
|
}
|
|
899
899
|
}
|
|
900
|
-
handleOrderBookMessage(client, message, orderbook, messageHash) {
|
|
900
|
+
handleOrderBookMessage(client, message, orderbook, messageHash, market = undefined) {
|
|
901
901
|
//
|
|
902
902
|
// {
|
|
903
903
|
// "asks": [
|
|
@@ -912,6 +912,9 @@ export default class okx extends okxRest {
|
|
|
912
912
|
// ],
|
|
913
913
|
// "instId": "BTC-USDT",
|
|
914
914
|
// "ts": "1626537446491"
|
|
915
|
+
// "checksum": -855196043,
|
|
916
|
+
// "prevSeqId": 123456,
|
|
917
|
+
// "seqId": 123457
|
|
915
918
|
// }
|
|
916
919
|
//
|
|
917
920
|
const asks = this.safeValue(message, 'asks', []);
|
|
@@ -921,9 +924,12 @@ export default class okx extends okxRest {
|
|
|
921
924
|
this.handleDeltas(storedAsks, asks);
|
|
922
925
|
this.handleDeltas(storedBids, bids);
|
|
923
926
|
const marketId = this.safeString(message, 'instId');
|
|
924
|
-
const symbol = this.safeSymbol(marketId);
|
|
927
|
+
const symbol = this.safeSymbol(marketId, market);
|
|
925
928
|
const checksum = this.handleOption('watchOrderBook', 'checksum', true);
|
|
929
|
+
const seqId = this.safeInteger(message, 'seqId');
|
|
926
930
|
if (checksum) {
|
|
931
|
+
const prevSeqId = this.safeInteger(message, 'prevSeqId');
|
|
932
|
+
const nonce = orderbook['nonce'];
|
|
927
933
|
const asksLength = storedAsks.length;
|
|
928
934
|
const bidsLength = storedBids.length;
|
|
929
935
|
const payloadArray = [];
|
|
@@ -940,14 +946,21 @@ export default class okx extends okxRest {
|
|
|
940
946
|
const payload = payloadArray.join(':');
|
|
941
947
|
const responseChecksum = this.safeInteger(message, 'checksum');
|
|
942
948
|
const localChecksum = this.crc32(payload, true);
|
|
949
|
+
let error = undefined;
|
|
950
|
+
if (prevSeqId !== -1 && nonce !== prevSeqId) {
|
|
951
|
+
error = new InvalidNonce(this.id + ' watchOrderBook received invalid nonce');
|
|
952
|
+
}
|
|
943
953
|
if (responseChecksum !== localChecksum) {
|
|
944
|
-
|
|
954
|
+
error = new ChecksumError(this.id + ' ' + this.orderbookChecksumMessage(symbol));
|
|
955
|
+
}
|
|
956
|
+
if (error !== undefined) {
|
|
945
957
|
delete client.subscriptions[messageHash];
|
|
946
958
|
delete this.orderbooks[symbol];
|
|
947
959
|
client.reject(error, messageHash);
|
|
948
960
|
}
|
|
949
961
|
}
|
|
950
962
|
const timestamp = this.safeInteger(message, 'ts');
|
|
963
|
+
orderbook['nonce'] = seqId;
|
|
951
964
|
orderbook['timestamp'] = timestamp;
|
|
952
965
|
orderbook['datetime'] = this.iso8601(timestamp);
|
|
953
966
|
return orderbook;
|
|
@@ -1069,7 +1082,7 @@ export default class okx extends okxRest {
|
|
|
1069
1082
|
const orderbook = this.orderbooks[symbol];
|
|
1070
1083
|
for (let i = 0; i < data.length; i++) {
|
|
1071
1084
|
const update = data[i];
|
|
1072
|
-
this.handleOrderBookMessage(client, update, orderbook, messageHash);
|
|
1085
|
+
this.handleOrderBookMessage(client, update, orderbook, messageHash, market);
|
|
1073
1086
|
client.resolve(orderbook, messageHash);
|
|
1074
1087
|
}
|
|
1075
1088
|
}
|
package/js/src/pro/oxfun.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export default class oxfun extends oxfunRest {
|
|
|
32
32
|
cancelOrdersWs(ids: string[], symbol?: Str, params?: {}): Promise<any>;
|
|
33
33
|
authenticate(params?: {}): Promise<any>;
|
|
34
34
|
handleAuthenticationMessage(client: Client, message: any): void;
|
|
35
|
-
ping(client:
|
|
35
|
+
ping(client: Client): string;
|
|
36
36
|
handlePong(client: Client, message: any): any;
|
|
37
37
|
handleMessage(client: Client, message: any): void;
|
|
38
38
|
}
|
package/js/src/pro/p2b.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export default class p2b extends p2bRest {
|
|
|
14
14
|
handleOrderBook(client: Client, message: any): void;
|
|
15
15
|
handleMessage(client: Client, message: any): void;
|
|
16
16
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
17
|
-
ping(client:
|
|
17
|
+
ping(client: Client): {
|
|
18
18
|
method: string;
|
|
19
19
|
params: any[];
|
|
20
20
|
id: number;
|
package/js/src/pro/poloniex.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export default class poloniex extends poloniexRest {
|
|
|
36
36
|
handleMessage(client: Client, message: any): void;
|
|
37
37
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
38
38
|
handleAuthenticate(client: Client, message: any): any;
|
|
39
|
-
ping(client:
|
|
39
|
+
ping(client: Client): {
|
|
40
40
|
event: string;
|
|
41
41
|
};
|
|
42
42
|
}
|
package/js/src/pro/whitebit.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export default class whitebit extends whitebitRest {
|
|
|
31
31
|
handleMessage(client: Client, message: any): void;
|
|
32
32
|
handleSubscriptionStatus(client: Client, message: any, id: any): void;
|
|
33
33
|
handlePong(client: Client, message: any): any;
|
|
34
|
-
ping(client:
|
|
34
|
+
ping(client: Client): {
|
|
35
35
|
id: number;
|
|
36
36
|
method: string;
|
|
37
37
|
params: any[];
|
package/package.json
CHANGED