ccxt 4.3.40 → 4.3.41
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 +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/binance.js +3 -0
- package/dist/cjs/src/bitfinex2.js +1 -1
- package/dist/cjs/src/bithumb.js +9 -1
- package/dist/cjs/src/bitstamp.js +38 -2
- package/dist/cjs/src/coinlist.js +20 -1
- package/dist/cjs/src/coinmate.js +19 -3
- package/dist/cjs/src/coinone.js +1 -1
- package/dist/cjs/src/coinspot.js +13 -2
- package/dist/cjs/src/independentreserve.js +33 -1
- package/dist/cjs/src/indodax.js +43 -2
- package/dist/cjs/src/okx.js +7 -0
- package/dist/cjs/src/pro/alpaca.js +5 -5
- package/dist/cjs/src/pro/ascendex.js +3 -3
- package/dist/cjs/src/pro/bingx.js +293 -47
- package/dist/cjs/src/pro/bitget.js +6 -5
- package/dist/cjs/src/pro/bitrue.js +3 -4
- package/dist/cjs/src/pro/currencycom.js +6 -5
- package/dist/cjs/src/pro/exmo.js +5 -6
- package/dist/cjs/src/pro/gemini.js +4 -3
- package/dist/cjs/src/pro/independentreserve.js +7 -7
- package/dist/cjs/src/pro/lbank.js +4 -4
- package/dist/cjs/src/pro/phemex.js +5 -5
- package/dist/cjs/src/pro/probit.js +4 -4
- package/dist/cjs/src/pro/upbit.js +318 -2
- package/dist/cjs/src/pro/wazirx.js +12 -12
- package/dist/cjs/src/upbit.js +17 -9
- package/dist/cjs/src/woo.js +6 -2
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/binance.d.ts +2 -0
- package/js/src/abstract/binancecoinm.d.ts +2 -0
- package/js/src/abstract/binanceus.d.ts +2 -0
- package/js/src/abstract/binanceusdm.d.ts +2 -0
- package/js/src/abstract/okx.d.ts +7 -0
- package/js/src/binance.js +3 -0
- package/js/src/bitfinex2.js +1 -1
- package/js/src/bithumb.d.ts +2 -2
- package/js/src/bithumb.js +9 -1
- package/js/src/bitstamp.d.ts +2 -2
- package/js/src/bitstamp.js +38 -2
- package/js/src/coinlist.d.ts +1 -1
- package/js/src/coinlist.js +20 -1
- package/js/src/coinmate.d.ts +1 -3
- package/js/src/coinmate.js +19 -3
- package/js/src/coinone.d.ts +1 -1
- package/js/src/coinone.js +1 -1
- package/js/src/coinspot.d.ts +1 -1
- package/js/src/coinspot.js +13 -2
- package/js/src/independentreserve.d.ts +1 -1
- package/js/src/independentreserve.js +33 -1
- package/js/src/indodax.d.ts +1 -1
- package/js/src/indodax.js +43 -2
- package/js/src/okx.js +7 -0
- package/js/src/pro/alpaca.js +5 -5
- package/js/src/pro/ascendex.js +3 -3
- package/js/src/pro/bingx.d.ts +6 -1
- package/js/src/pro/bingx.js +294 -48
- package/js/src/pro/bitget.js +6 -5
- package/js/src/pro/bitrue.js +3 -4
- package/js/src/pro/currencycom.js +6 -5
- package/js/src/pro/exmo.js +5 -6
- package/js/src/pro/gemini.js +4 -3
- package/js/src/pro/independentreserve.js +7 -7
- package/js/src/pro/lbank.js +4 -4
- package/js/src/pro/phemex.js +5 -5
- package/js/src/pro/probit.js +4 -4
- package/js/src/pro/upbit.d.ts +13 -1
- package/js/src/pro/upbit.js +319 -3
- package/js/src/pro/wazirx.js +12 -12
- package/js/src/upbit.js +17 -9
- package/js/src/woo.d.ts +1 -1
- package/js/src/woo.js +6 -2
- package/package.json +1 -1
package/dist/cjs/ccxt.js
CHANGED
|
@@ -185,7 +185,7 @@ var woofipro$1 = require('./src/pro/woofipro.js');
|
|
|
185
185
|
|
|
186
186
|
//-----------------------------------------------------------------------------
|
|
187
187
|
// this is updated by vss.js when building
|
|
188
|
-
const version = '4.3.
|
|
188
|
+
const version = '4.3.41';
|
|
189
189
|
Exchange["default"].ccxtVersion = version;
|
|
190
190
|
const exchanges = {
|
|
191
191
|
'ace': ace,
|
package/dist/cjs/src/binance.js
CHANGED
|
@@ -236,6 +236,9 @@ class binance extends binance$1 {
|
|
|
236
236
|
// UID (sapi) request rate limit of 180 000 per minute
|
|
237
237
|
// 1 UID (sapi) => cost = 0.006667 => (1000 / (50 * 0.006667)) * 60 = 180000
|
|
238
238
|
'get': {
|
|
239
|
+
// copy trading
|
|
240
|
+
'copyTrading/futures/userStatus': 2,
|
|
241
|
+
'copyTrading/futures/leadSymbol': 2,
|
|
239
242
|
'system/status': 0.1,
|
|
240
243
|
// these endpoints require this.apiKey
|
|
241
244
|
'accountSnapshot': 240,
|
|
@@ -1721,7 +1721,7 @@ class bitfinex2 extends bitfinex2$1 {
|
|
|
1721
1721
|
}
|
|
1722
1722
|
const orders = this.safeList(response, 4, []);
|
|
1723
1723
|
const order = this.safeList(orders, 0);
|
|
1724
|
-
return this.parseOrder(order, market);
|
|
1724
|
+
return this.parseOrder(this.extend({ 'result': order }), market);
|
|
1725
1725
|
}
|
|
1726
1726
|
async createOrders(orders, params = {}) {
|
|
1727
1727
|
/**
|
package/dist/cjs/src/bithumb.js
CHANGED
|
@@ -966,7 +966,15 @@ class bithumb extends bithumb$1 {
|
|
|
966
966
|
'order_currency': market['base'],
|
|
967
967
|
'payment_currency': market['quote'],
|
|
968
968
|
};
|
|
969
|
-
|
|
969
|
+
const response = await this.privatePostTradeCancel(this.extend(request, params));
|
|
970
|
+
//
|
|
971
|
+
// {
|
|
972
|
+
// 'status': 'string',
|
|
973
|
+
// }
|
|
974
|
+
//
|
|
975
|
+
return this.safeOrder({
|
|
976
|
+
'info': response,
|
|
977
|
+
});
|
|
970
978
|
}
|
|
971
979
|
async cancelUnifiedOrder(order, params = {}) {
|
|
972
980
|
const request = {
|
package/dist/cjs/src/bitstamp.js
CHANGED
|
@@ -1443,7 +1443,17 @@ class bitstamp extends bitstamp$1 {
|
|
|
1443
1443
|
const request = {
|
|
1444
1444
|
'id': id,
|
|
1445
1445
|
};
|
|
1446
|
-
|
|
1446
|
+
const response = await this.privatePostCancelOrder(this.extend(request, params));
|
|
1447
|
+
//
|
|
1448
|
+
// {
|
|
1449
|
+
// "id": 1453282316578816,
|
|
1450
|
+
// "amount": "0.02035278",
|
|
1451
|
+
// "price": "2100.45",
|
|
1452
|
+
// "type": 0,
|
|
1453
|
+
// "market": "BTC/USD"
|
|
1454
|
+
// }
|
|
1455
|
+
//
|
|
1456
|
+
return this.parseOrder(response);
|
|
1447
1457
|
}
|
|
1448
1458
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
1449
1459
|
/**
|
|
@@ -1468,7 +1478,23 @@ class bitstamp extends bitstamp$1 {
|
|
|
1468
1478
|
else {
|
|
1469
1479
|
response = await this.privatePostCancelAllOrders(this.extend(request, params));
|
|
1470
1480
|
}
|
|
1471
|
-
|
|
1481
|
+
//
|
|
1482
|
+
// {
|
|
1483
|
+
// "canceled": [
|
|
1484
|
+
// {
|
|
1485
|
+
// "id": 1453282316578816,
|
|
1486
|
+
// "amount": "0.02035278",
|
|
1487
|
+
// "price": "2100.45",
|
|
1488
|
+
// "type": 0,
|
|
1489
|
+
// "currency_pair": "BTC/USD",
|
|
1490
|
+
// "market": "BTC/USD"
|
|
1491
|
+
// }
|
|
1492
|
+
// ],
|
|
1493
|
+
// "success": true
|
|
1494
|
+
// }
|
|
1495
|
+
//
|
|
1496
|
+
const canceled = this.safeList(response, 'canceled');
|
|
1497
|
+
return this.parseOrders(canceled);
|
|
1472
1498
|
}
|
|
1473
1499
|
parseOrderStatus(status) {
|
|
1474
1500
|
const statuses = {
|
|
@@ -1845,6 +1871,16 @@ class bitstamp extends bitstamp$1 {
|
|
|
1845
1871
|
// "id": "2814205012"
|
|
1846
1872
|
// }
|
|
1847
1873
|
//
|
|
1874
|
+
// cancelOrder
|
|
1875
|
+
//
|
|
1876
|
+
// {
|
|
1877
|
+
// "id": 1453282316578816,
|
|
1878
|
+
// "amount": "0.02035278",
|
|
1879
|
+
// "price": "2100.45",
|
|
1880
|
+
// "type": 0,
|
|
1881
|
+
// "market": "BTC/USD"
|
|
1882
|
+
// }
|
|
1883
|
+
//
|
|
1848
1884
|
const id = this.safeString(order, 'id');
|
|
1849
1885
|
const clientOrderId = this.safeString(order, 'client_order_id');
|
|
1850
1886
|
let side = this.safeString(order, 'type');
|
package/dist/cjs/src/coinlist.js
CHANGED
|
@@ -1455,7 +1455,26 @@ class coinlist extends coinlist$1 {
|
|
|
1455
1455
|
await this.loadMarkets();
|
|
1456
1456
|
params = ids;
|
|
1457
1457
|
const response = await this.privateDeleteV1OrdersBulk(params);
|
|
1458
|
-
|
|
1458
|
+
//
|
|
1459
|
+
// {
|
|
1460
|
+
// "message": "Cancel order requests received.",
|
|
1461
|
+
// "order_ids": [
|
|
1462
|
+
// "ff132955-43bc-4fe5-9d9c-5ba226cc89a0"
|
|
1463
|
+
// ],
|
|
1464
|
+
// "timestamp": "2024-06-01T02:32:30.305Z"
|
|
1465
|
+
// }
|
|
1466
|
+
//
|
|
1467
|
+
const orderIds = this.safeList(response, 'order_ids', []);
|
|
1468
|
+
const orders = [];
|
|
1469
|
+
const datetime = this.safeString(response, 'timestamp');
|
|
1470
|
+
for (let i = 0; i < orderIds.length; i++) {
|
|
1471
|
+
orders.push(this.safeOrder({
|
|
1472
|
+
'info': orderIds[i],
|
|
1473
|
+
'id': orderIds[i],
|
|
1474
|
+
'lastUpdateTimestamp': this.parse8601(datetime),
|
|
1475
|
+
}));
|
|
1476
|
+
}
|
|
1477
|
+
return orders;
|
|
1459
1478
|
}
|
|
1460
1479
|
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
1461
1480
|
/**
|
package/dist/cjs/src/coinmate.js
CHANGED
|
@@ -926,6 +926,13 @@ class coinmate extends coinmate$1 {
|
|
|
926
926
|
// "trailing": false,
|
|
927
927
|
// }
|
|
928
928
|
//
|
|
929
|
+
// cancelOrder
|
|
930
|
+
//
|
|
931
|
+
// {
|
|
932
|
+
// "success": true,
|
|
933
|
+
// "remainingAmount": 0.1
|
|
934
|
+
// }
|
|
935
|
+
//
|
|
929
936
|
const id = this.safeString(order, 'id');
|
|
930
937
|
const timestamp = this.safeInteger(order, 'timestamp');
|
|
931
938
|
const side = this.safeStringLower(order, 'type');
|
|
@@ -1045,9 +1052,18 @@ class coinmate extends coinmate$1 {
|
|
|
1045
1052
|
// {"error":false,"errorMessage":null,"data":{"success":true,"remainingAmount":0.01}}
|
|
1046
1053
|
const request = { 'orderId': id };
|
|
1047
1054
|
const response = await this.privatePostCancelOrderWithInfo(this.extend(request, params));
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1055
|
+
//
|
|
1056
|
+
// {
|
|
1057
|
+
// "error": false,
|
|
1058
|
+
// "errorMessage": null,
|
|
1059
|
+
// "data": {
|
|
1060
|
+
// "success": true,
|
|
1061
|
+
// "remainingAmount": 0.1
|
|
1062
|
+
// }
|
|
1063
|
+
// }
|
|
1064
|
+
//
|
|
1065
|
+
const data = this.safeDict(response, 'data');
|
|
1066
|
+
return this.parseOrder(data);
|
|
1051
1067
|
}
|
|
1052
1068
|
nonce() {
|
|
1053
1069
|
return this.milliseconds();
|
package/dist/cjs/src/coinone.js
CHANGED
package/dist/cjs/src/coinspot.js
CHANGED
|
@@ -533,11 +533,22 @@ class coinspot extends coinspot$1 {
|
|
|
533
533
|
throw new errors.ArgumentsRequired(this.id + ' cancelOrder() requires a side parameter, "buy" or "sell"');
|
|
534
534
|
}
|
|
535
535
|
params = this.omit(params, 'side');
|
|
536
|
-
const method = 'privatePostMy' + this.capitalize(side) + 'Cancel';
|
|
537
536
|
const request = {
|
|
538
537
|
'id': id,
|
|
539
538
|
};
|
|
540
|
-
|
|
539
|
+
let response = undefined;
|
|
540
|
+
if (side === 'buy') {
|
|
541
|
+
response = await this.privatePostMyBuyCancel(this.extend(request, params));
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
response = await this.privatePostMySellCancel(this.extend(request, params));
|
|
545
|
+
}
|
|
546
|
+
//
|
|
547
|
+
// status - ok, error
|
|
548
|
+
//
|
|
549
|
+
return this.safeOrder({
|
|
550
|
+
'info': response,
|
|
551
|
+
});
|
|
541
552
|
}
|
|
542
553
|
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
543
554
|
const url = this.urls['api'][api] + '/' + path;
|
|
@@ -385,6 +385,21 @@ class independentreserve extends independentreserve$1 {
|
|
|
385
385
|
// "FeePercent": 0.005,
|
|
386
386
|
// }
|
|
387
387
|
//
|
|
388
|
+
// cancelOrder
|
|
389
|
+
//
|
|
390
|
+
// {
|
|
391
|
+
// "AvgPrice": 455.48,
|
|
392
|
+
// "CreatedTimestampUtc": "2022-08-05T06:42:11.3032208Z",
|
|
393
|
+
// "OrderGuid": "719c495c-a39e-4884-93ac-280b37245037",
|
|
394
|
+
// "Price": 485.76,
|
|
395
|
+
// "PrimaryCurrencyCode": "Xbt",
|
|
396
|
+
// "ReservedAmount": 0.358,
|
|
397
|
+
// "SecondaryCurrencyCode": "Usd",
|
|
398
|
+
// "Status": "Cancelled",
|
|
399
|
+
// "Type": "LimitOffer",
|
|
400
|
+
// "VolumeFilled": 0,
|
|
401
|
+
// "VolumeOrdered": 0.358
|
|
402
|
+
// }
|
|
388
403
|
let symbol = undefined;
|
|
389
404
|
const baseId = this.safeString(order, 'PrimaryCurrencyCode');
|
|
390
405
|
const quoteId = this.safeString(order, 'SecondaryCurrencyCode');
|
|
@@ -715,6 +730,7 @@ class independentreserve extends independentreserve$1 {
|
|
|
715
730
|
* @method
|
|
716
731
|
* @name independentreserve#cancelOrder
|
|
717
732
|
* @description cancels an open order
|
|
733
|
+
* @see https://www.independentreserve.com/features/api#CancelOrder
|
|
718
734
|
* @param {string} id order id
|
|
719
735
|
* @param {string} symbol unified symbol of the market the order was made in
|
|
720
736
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
@@ -724,7 +740,23 @@ class independentreserve extends independentreserve$1 {
|
|
|
724
740
|
const request = {
|
|
725
741
|
'orderGuid': id,
|
|
726
742
|
};
|
|
727
|
-
|
|
743
|
+
const response = await this.privatePostCancelOrder(this.extend(request, params));
|
|
744
|
+
//
|
|
745
|
+
// {
|
|
746
|
+
// "AvgPrice": 455.48,
|
|
747
|
+
// "CreatedTimestampUtc": "2022-08-05T06:42:11.3032208Z",
|
|
748
|
+
// "OrderGuid": "719c495c-a39e-4884-93ac-280b37245037",
|
|
749
|
+
// "Price": 485.76,
|
|
750
|
+
// "PrimaryCurrencyCode": "Xbt",
|
|
751
|
+
// "ReservedAmount": 0.358,
|
|
752
|
+
// "SecondaryCurrencyCode": "Usd",
|
|
753
|
+
// "Status": "Cancelled",
|
|
754
|
+
// "Type": "LimitOffer",
|
|
755
|
+
// "VolumeFilled": 0,
|
|
756
|
+
// "VolumeOrdered": 0.358
|
|
757
|
+
// }
|
|
758
|
+
//
|
|
759
|
+
return this.parseOrder(response);
|
|
728
760
|
}
|
|
729
761
|
async fetchDepositAddress(code, params = {}) {
|
|
730
762
|
/**
|
package/dist/cjs/src/indodax.js
CHANGED
|
@@ -653,6 +653,24 @@ class indodax extends indodax$1 {
|
|
|
653
653
|
// "order_xrp": "30.45000000",
|
|
654
654
|
// "remain_xrp": "0.00000000"
|
|
655
655
|
// }
|
|
656
|
+
//
|
|
657
|
+
// cancelOrder
|
|
658
|
+
//
|
|
659
|
+
// {
|
|
660
|
+
// "order_id": 666883,
|
|
661
|
+
// "client_order_id": "clientx-sj82ks82j",
|
|
662
|
+
// "type": "sell",
|
|
663
|
+
// "pair": "btc_idr",
|
|
664
|
+
// "balance": {
|
|
665
|
+
// "idr": "33605800",
|
|
666
|
+
// "btc": "0.00000000",
|
|
667
|
+
// ...
|
|
668
|
+
// "frozen_idr": "0",
|
|
669
|
+
// "frozen_btc": "0.00000000",
|
|
670
|
+
// ...
|
|
671
|
+
// }
|
|
672
|
+
// }
|
|
673
|
+
//
|
|
656
674
|
let side = undefined;
|
|
657
675
|
if ('type' in order) {
|
|
658
676
|
side = order['type'];
|
|
@@ -663,6 +681,8 @@ class indodax extends indodax$1 {
|
|
|
663
681
|
const price = this.safeString(order, 'price');
|
|
664
682
|
let amount = undefined;
|
|
665
683
|
let remaining = undefined;
|
|
684
|
+
const marketId = this.safeString(order, 'pair');
|
|
685
|
+
market = this.safeMarket(marketId, market);
|
|
666
686
|
if (market !== undefined) {
|
|
667
687
|
symbol = market['symbol'];
|
|
668
688
|
let quoteId = market['quoteId'];
|
|
@@ -685,7 +705,7 @@ class indodax extends indodax$1 {
|
|
|
685
705
|
return this.safeOrder({
|
|
686
706
|
'info': order,
|
|
687
707
|
'id': id,
|
|
688
|
-
'clientOrderId':
|
|
708
|
+
'clientOrderId': this.safeString(order, 'client_order_id'),
|
|
689
709
|
'timestamp': timestamp,
|
|
690
710
|
'datetime': this.iso8601(timestamp),
|
|
691
711
|
'lastTradeTimestamp': undefined,
|
|
@@ -863,7 +883,28 @@ class indodax extends indodax$1 {
|
|
|
863
883
|
'pair': market['id'],
|
|
864
884
|
'type': side,
|
|
865
885
|
};
|
|
866
|
-
|
|
886
|
+
const response = await this.privatePostCancelOrder(this.extend(request, params));
|
|
887
|
+
//
|
|
888
|
+
// {
|
|
889
|
+
// "success": 1,
|
|
890
|
+
// "return": {
|
|
891
|
+
// "order_id": 666883,
|
|
892
|
+
// "client_order_id": "clientx-sj82ks82j",
|
|
893
|
+
// "type": "sell",
|
|
894
|
+
// "pair": "btc_idr",
|
|
895
|
+
// "balance": {
|
|
896
|
+
// "idr": "33605800",
|
|
897
|
+
// "btc": "0.00000000",
|
|
898
|
+
// ...
|
|
899
|
+
// "frozen_idr": "0",
|
|
900
|
+
// "frozen_btc": "0.00000000",
|
|
901
|
+
// ...
|
|
902
|
+
// }
|
|
903
|
+
// }
|
|
904
|
+
// }
|
|
905
|
+
//
|
|
906
|
+
const data = this.safeDict(response, 'return');
|
|
907
|
+
return this.parseOrder(data);
|
|
867
908
|
}
|
|
868
909
|
async fetchTransactionFee(code, params = {}) {
|
|
869
910
|
/**
|
package/dist/cjs/src/okx.js
CHANGED
|
@@ -345,6 +345,9 @@ class okx extends okx$1 {
|
|
|
345
345
|
'account/greeks': 2,
|
|
346
346
|
'account/position-tiers': 2,
|
|
347
347
|
'account/mmp-config': 4,
|
|
348
|
+
'account/fixed-loan/borrowing-limit': 4,
|
|
349
|
+
'account/fixed-loan/borrowing-quote': 5,
|
|
350
|
+
'account/fixed-loan/borrowing-orders-list': 5,
|
|
348
351
|
// subaccount
|
|
349
352
|
'users/subaccount/list': 10,
|
|
350
353
|
'account/subaccount/balances': 10 / 3,
|
|
@@ -470,6 +473,10 @@ class okx extends okx$1 {
|
|
|
470
473
|
'account/set-account-level': 4,
|
|
471
474
|
'account/mmp-reset': 4,
|
|
472
475
|
'account/mmp-config': 100,
|
|
476
|
+
'account/fixed-loan/borrowing-order': 5,
|
|
477
|
+
'account/fixed-loan/amend-borrowing-order': 5,
|
|
478
|
+
'account/fixed-loan/manual-reborrow': 5,
|
|
479
|
+
'account/fixed-loan/repay-borrowing-order': 5,
|
|
473
480
|
// subaccount
|
|
474
481
|
'users/subaccount/modify-apikey': 10,
|
|
475
482
|
'asset/subaccount/transfer': 10,
|
|
@@ -225,17 +225,17 @@ class alpaca extends alpaca$1 {
|
|
|
225
225
|
const datetime = this.safeString(message, 't');
|
|
226
226
|
const timestamp = this.parse8601(datetime);
|
|
227
227
|
const isSnapshot = this.safeBool(message, 'r', false);
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
orderbook = this.orderBook();
|
|
228
|
+
if (!(symbol in this.orderbooks)) {
|
|
229
|
+
this.orderbooks[symbol] = this.orderBook();
|
|
231
230
|
}
|
|
231
|
+
const orderbook = this.orderbooks[symbol];
|
|
232
232
|
if (isSnapshot) {
|
|
233
233
|
const snapshot = this.parseOrderBook(message, symbol, timestamp, 'b', 'a', 'p', 's');
|
|
234
234
|
orderbook.reset(snapshot);
|
|
235
235
|
}
|
|
236
236
|
else {
|
|
237
|
-
const asks = this.
|
|
238
|
-
const bids = this.
|
|
237
|
+
const asks = this.safeList(message, 'a', []);
|
|
238
|
+
const bids = this.safeList(message, 'b', []);
|
|
239
239
|
this.handleDeltas(orderbook['asks'], asks);
|
|
240
240
|
this.handleDeltas(orderbook['bids'], bids);
|
|
241
241
|
orderbook['timestamp'] = timestamp;
|
|
@@ -293,10 +293,10 @@ class ascendex extends ascendex$1 {
|
|
|
293
293
|
const marketId = this.safeString(message, 'symbol');
|
|
294
294
|
const symbol = this.safeSymbol(marketId);
|
|
295
295
|
const messageHash = channel + ':' + marketId;
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
orderbook = this.orderBook({});
|
|
296
|
+
if (!(symbol in this.orderbooks)) {
|
|
297
|
+
this.orderbooks[symbol] = this.orderBook({});
|
|
299
298
|
}
|
|
299
|
+
const orderbook = this.orderbooks[symbol];
|
|
300
300
|
if (orderbook['nonce'] === undefined) {
|
|
301
301
|
orderbook.cache.push(message);
|
|
302
302
|
}
|