ccxt 4.0.99 → 4.0.100
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/CHANGELOG.md +224 -0
- package/README.md +3 -3
- package/dist/ccxt.browser.js +88 -85
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +6 -1
- package/dist/cjs/src/deribit.js +3 -3
- package/dist/cjs/src/lbank2.js +2 -2
- package/dist/cjs/src/okx.js +5 -5
- package/dist/cjs/src/pro/ascendex.js +2 -2
- package/dist/cjs/src/pro/binance.js +11 -11
- package/dist/cjs/src/pro/bitfinex2.js +5 -5
- package/dist/cjs/src/pro/bitget.js +5 -5
- package/dist/cjs/src/pro/bitmex.js +2 -2
- package/dist/cjs/src/pro/bittrex.js +2 -2
- package/dist/cjs/src/pro/bitvavo.js +2 -2
- package/dist/cjs/src/pro/bybit.js +2 -2
- package/dist/cjs/src/pro/coinbase.js +5 -6
- package/dist/cjs/src/pro/cryptocom.js +4 -4
- package/dist/cjs/src/pro/currencycom.js +3 -3
- package/dist/cjs/src/pro/hitbtc.js +4 -4
- package/dist/cjs/src/pro/huobi.js +7 -8
- package/dist/cjs/src/pro/phemex.js +2 -2
- package/dist/cjs/src/pro/poloniex.js +6 -6
- package/dist/cjs/src/pro/whitebit.js +7 -7
- package/dist/cjs/src/probit.js +2 -2
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/base/Exchange.js +6 -1
- package/js/src/deribit.js +3 -3
- package/js/src/lbank2.js +2 -2
- package/js/src/okx.js +5 -5
- package/js/src/pro/ascendex.js +2 -2
- package/js/src/pro/binance.js +11 -11
- package/js/src/pro/bitfinex2.js +5 -5
- package/js/src/pro/bitget.js +5 -5
- package/js/src/pro/bitmex.js +2 -2
- package/js/src/pro/bittrex.js +2 -2
- package/js/src/pro/bitvavo.js +2 -2
- package/js/src/pro/bybit.js +2 -2
- package/js/src/pro/coinbase.js +5 -6
- package/js/src/pro/cryptocom.js +4 -4
- package/js/src/pro/currencycom.js +3 -3
- package/js/src/pro/hitbtc.js +4 -4
- package/js/src/pro/huobi.js +7 -8
- package/js/src/pro/phemex.js +2 -2
- package/js/src/pro/poloniex.js +6 -6
- package/js/src/pro/whitebit.js +7 -7
- package/js/src/probit.js +2 -2
- package/package.json +1 -1
package/dist/ccxt.browser.js
CHANGED
|
@@ -8207,7 +8207,12 @@ class Exchange {
|
|
|
8207
8207
|
const oldNumber = this.number;
|
|
8208
8208
|
// we parse trades as strings here!
|
|
8209
8209
|
this.number = String;
|
|
8210
|
-
|
|
8210
|
+
const firstTrade = this.safeValue(rawTrades, 0);
|
|
8211
|
+
// parse trades if they haven't already been parsed
|
|
8212
|
+
const tradesAreParsed = ((firstTrade !== undefined) && ('info' in firstTrade) && ('id' in firstTrade));
|
|
8213
|
+
if (!tradesAreParsed) {
|
|
8214
|
+
trades = this.parseTrades(rawTrades, market);
|
|
8215
|
+
}
|
|
8211
8216
|
this.number = oldNumber;
|
|
8212
8217
|
let tradesLength = 0;
|
|
8213
8218
|
const isArray = Array.isArray(trades);
|
|
@@ -107103,12 +107108,12 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
107103
107108
|
const result = [];
|
|
107104
107109
|
for (let i = 0; i < volatilityResult.length; i++) {
|
|
107105
107110
|
const timestamp = this.safeInteger(volatilityResult[i], 0);
|
|
107106
|
-
const
|
|
107111
|
+
const volatilityObj = this.safeNumber(volatilityResult[i], 1);
|
|
107107
107112
|
result.push({
|
|
107108
|
-
'info':
|
|
107113
|
+
'info': volatilityObj,
|
|
107109
107114
|
'timestamp': timestamp,
|
|
107110
107115
|
'datetime': this.iso8601(timestamp),
|
|
107111
|
-
'volatility':
|
|
107116
|
+
'volatility': volatilityObj,
|
|
107112
107117
|
});
|
|
107113
107118
|
}
|
|
107114
107119
|
return result;
|
|
@@ -156080,8 +156085,8 @@ class lbank2 extends _abstract_lbank2_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
156080
156085
|
await this.loadMarkets();
|
|
156081
156086
|
const market = this.market(symbol);
|
|
156082
156087
|
if (market['swap']) {
|
|
156083
|
-
const
|
|
156084
|
-
return this.safeValue(
|
|
156088
|
+
const responseForSwap = await this.fetchTickers([market['symbol']], params);
|
|
156089
|
+
return this.safeValue(responseForSwap, market['symbol']);
|
|
156085
156090
|
}
|
|
156086
156091
|
const request = {
|
|
156087
156092
|
'symbol': market['id'],
|
|
@@ -177164,13 +177169,13 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
177164
177169
|
promises.push(this.publicGetPublicInstruments(this.extend(request, params)));
|
|
177165
177170
|
}
|
|
177166
177171
|
const promisesResult = await Promise.all(promises);
|
|
177167
|
-
let
|
|
177172
|
+
let markets = [];
|
|
177168
177173
|
for (let i = 0; i < promisesResult.length; i++) {
|
|
177169
177174
|
const res = this.safeValue(promisesResult, i, {});
|
|
177170
177175
|
const options = this.safeValue(res, 'data', []);
|
|
177171
|
-
|
|
177176
|
+
markets = this.arrayConcat(markets, options);
|
|
177172
177177
|
}
|
|
177173
|
-
return this.parseMarkets(
|
|
177178
|
+
return this.parseMarkets(markets);
|
|
177174
177179
|
}
|
|
177175
177180
|
const response = await this.publicGetPublicInstruments(this.extend(request, params));
|
|
177176
177181
|
//
|
|
@@ -182429,8 +182434,8 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
182429
182434
|
const entry = settlements[i];
|
|
182430
182435
|
const timestamp = this.safeInteger(entry, 'ts');
|
|
182431
182436
|
const details = this.safeValue(entry, 'details', []);
|
|
182432
|
-
for (let
|
|
182433
|
-
const settlement = this.parseSettlement(details[
|
|
182437
|
+
for (let j = 0; j < details.length; j++) {
|
|
182438
|
+
const settlement = this.parseSettlement(details[j], market);
|
|
182434
182439
|
result.push(this.extend(settlement, {
|
|
182435
182440
|
'timestamp': timestamp,
|
|
182436
182441
|
'datetime': this.iso8601(timestamp),
|
|
@@ -192623,8 +192628,8 @@ class ascendex extends _ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
192623
192628
|
// unroll the accumulated deltas
|
|
192624
192629
|
const messages = orderbook.cache;
|
|
192625
192630
|
for (let i = 0; i < messages.length; i++) {
|
|
192626
|
-
const
|
|
192627
|
-
this.handleOrderBookMessage(client,
|
|
192631
|
+
const messageItem = messages[i];
|
|
192632
|
+
this.handleOrderBookMessage(client, messageItem, orderbook);
|
|
192628
192633
|
}
|
|
192629
192634
|
this.orderbooks[symbol] = orderbook;
|
|
192630
192635
|
client.resolve(orderbook, messageHash);
|
|
@@ -193653,10 +193658,10 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
193653
193658
|
// unroll the accumulated deltas
|
|
193654
193659
|
const messages = orderbook.cache;
|
|
193655
193660
|
for (let i = 0; i < messages.length; i++) {
|
|
193656
|
-
const
|
|
193657
|
-
const U = this.safeInteger(
|
|
193658
|
-
const u = this.safeInteger(
|
|
193659
|
-
const pu = this.safeInteger(
|
|
193661
|
+
const messageItem = messages[i];
|
|
193662
|
+
const U = this.safeInteger(messageItem, 'U');
|
|
193663
|
+
const u = this.safeInteger(messageItem, 'u');
|
|
193664
|
+
const pu = this.safeInteger(messageItem, 'pu');
|
|
193660
193665
|
if (type === 'future') {
|
|
193661
193666
|
// 4. Drop any event where u is < lastUpdateId in the snapshot
|
|
193662
193667
|
if (u < orderbook['nonce']) {
|
|
@@ -193664,7 +193669,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
193664
193669
|
}
|
|
193665
193670
|
// 5. The first processed event should have U <= lastUpdateId AND u >= lastUpdateId
|
|
193666
193671
|
if ((U <= orderbook['nonce']) && (u >= orderbook['nonce']) || (pu === orderbook['nonce'])) {
|
|
193667
|
-
this.handleOrderBookMessage(client,
|
|
193672
|
+
this.handleOrderBookMessage(client, messageItem, orderbook);
|
|
193668
193673
|
}
|
|
193669
193674
|
}
|
|
193670
193675
|
else {
|
|
@@ -193674,7 +193679,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
193674
193679
|
}
|
|
193675
193680
|
// 5. The first processed event should have U <= lastUpdateId+1 AND u >= lastUpdateId+1
|
|
193676
193681
|
if (((U - 1) <= orderbook['nonce']) && ((u - 1) >= orderbook['nonce'])) {
|
|
193677
|
-
this.handleOrderBookMessage(client,
|
|
193682
|
+
this.handleOrderBookMessage(client, messageItem, orderbook);
|
|
193678
193683
|
}
|
|
193679
193684
|
}
|
|
193680
193685
|
}
|
|
@@ -193815,8 +193820,8 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
193815
193820
|
handleOrderBookSubscription(client, message, subscription) {
|
|
193816
193821
|
const defaultLimit = this.safeInteger(this.options, 'watchOrderBookLimit', 1000);
|
|
193817
193822
|
// const messageHash = this.safeString (subscription, 'messageHash');
|
|
193818
|
-
const
|
|
193819
|
-
const symbols = this.safeValue(subscription, 'symbols', [
|
|
193823
|
+
const symbolOfSubscription = this.safeString(subscription, 'symbol'); // watchOrderBook
|
|
193824
|
+
const symbols = this.safeValue(subscription, 'symbols', [symbolOfSubscription]); // watchOrderBookForSymbols
|
|
193820
193825
|
const limit = this.safeInteger(subscription, 'limit', defaultLimit);
|
|
193821
193826
|
// handle list of symbols
|
|
193822
193827
|
for (let i = 0; i < symbols.length; i++) {
|
|
@@ -194523,12 +194528,12 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
194523
194528
|
client.resolve(result, '!' + 'bookTicker@arr');
|
|
194524
194529
|
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
194525
194530
|
for (let i = 0; i < messageHashes.length; i++) {
|
|
194526
|
-
const
|
|
194527
|
-
const parts =
|
|
194531
|
+
const currentMessageHash = messageHashes[i];
|
|
194532
|
+
const parts = currentMessageHash.split('::');
|
|
194528
194533
|
const symbolsString = parts[1];
|
|
194529
194534
|
const symbols = symbolsString.split(',');
|
|
194530
194535
|
if (this.inArray(symbol, symbols)) {
|
|
194531
|
-
client.resolve(result,
|
|
194536
|
+
client.resolve(result, currentMessageHash);
|
|
194532
194537
|
}
|
|
194533
194538
|
}
|
|
194534
194539
|
}
|
|
@@ -197434,9 +197439,9 @@ class bitfinex2 extends _bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
197434
197439
|
const size = (delta[2] < 0) ? -delta[2] : delta[2];
|
|
197435
197440
|
const side = (delta[2] < 0) ? 'asks' : 'bids';
|
|
197436
197441
|
const bookside = orderbook[side];
|
|
197437
|
-
const
|
|
197442
|
+
const idString = this.safeString(delta, 0);
|
|
197438
197443
|
const price = this.safeFloat(delta, 1);
|
|
197439
|
-
bookside.store(price, size,
|
|
197444
|
+
bookside.store(price, size, idString);
|
|
197440
197445
|
}
|
|
197441
197446
|
}
|
|
197442
197447
|
else {
|
|
@@ -197456,12 +197461,12 @@ class bitfinex2 extends _bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
197456
197461
|
}
|
|
197457
197462
|
else {
|
|
197458
197463
|
const deltas = message[1];
|
|
197459
|
-
const
|
|
197464
|
+
const orderbookItem = this.orderbooks[symbol];
|
|
197460
197465
|
if (isRaw) {
|
|
197461
197466
|
const price = this.safeString(deltas, 1);
|
|
197462
197467
|
const size = (deltas[2] < 0) ? -deltas[2] : deltas[2];
|
|
197463
197468
|
const side = (deltas[2] < 0) ? 'asks' : 'bids';
|
|
197464
|
-
const bookside =
|
|
197469
|
+
const bookside = orderbookItem[side];
|
|
197465
197470
|
// price = 0 means that you have to remove the order from your book
|
|
197466
197471
|
const amount = _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__/* .Precise.stringGt */ .O.stringGt(price, '0') ? size : '0';
|
|
197467
197472
|
bookside.store(this.parseNumber(price), this.parseNumber(amount), id);
|
|
@@ -197472,7 +197477,7 @@ class bitfinex2 extends _bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
197472
197477
|
const price = this.safeString(deltas, 0);
|
|
197473
197478
|
const size = _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__/* .Precise.stringLt */ .O.stringLt(amount, '0') ? _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__/* .Precise.stringNeg */ .O.stringNeg(amount) : amount;
|
|
197474
197479
|
const side = _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__/* .Precise.stringLt */ .O.stringLt(amount, '0') ? 'asks' : 'bids';
|
|
197475
|
-
const bookside =
|
|
197480
|
+
const bookside = orderbookItem[side];
|
|
197476
197481
|
bookside.store(this.parseNumber(price), this.parseNumber(size), this.parseNumber(counter));
|
|
197477
197482
|
}
|
|
197478
197483
|
client.resolve(orderbook, messageHash);
|
|
@@ -198297,10 +198302,10 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
198297
198302
|
const hashes = [];
|
|
198298
198303
|
for (let i = 0; i < symbolsAndTimeframes.length; i++) {
|
|
198299
198304
|
const data = symbolsAndTimeframes[i];
|
|
198300
|
-
const
|
|
198301
|
-
const
|
|
198302
|
-
const market = this.market(
|
|
198303
|
-
const interval = this.safeString(this.options['timeframes'],
|
|
198305
|
+
const currentSymbol = this.safeString(data, 0);
|
|
198306
|
+
const currentTimeframe = this.safeString(data, 1);
|
|
198307
|
+
const market = this.market(currentSymbol);
|
|
198308
|
+
const interval = this.safeString(this.options['timeframes'], currentTimeframe);
|
|
198304
198309
|
const instType = market['spot'] ? 'sp' : 'mc';
|
|
198305
198310
|
const args = {
|
|
198306
198311
|
'instType': instType,
|
|
@@ -198308,7 +198313,7 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
198308
198313
|
'instId': this.getWsMarketId(market),
|
|
198309
198314
|
};
|
|
198310
198315
|
topics.push(args);
|
|
198311
|
-
hashes.push(
|
|
198316
|
+
hashes.push(currentSymbol + '#' + currentSymbol);
|
|
198312
198317
|
}
|
|
198313
198318
|
const messageHash = 'multipleOHLCV::' + hashes.join(',');
|
|
198314
198319
|
const [symbol, timeframe, stored] = await this.watchPublicMultiple(messageHash, topics, params);
|
|
@@ -201039,8 +201044,8 @@ class bitmex extends _bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
201039
201044
|
for (let i = 0; i < symbols.length; i++) {
|
|
201040
201045
|
const symbol = symbols[i];
|
|
201041
201046
|
const market = this.market(symbol);
|
|
201042
|
-
const
|
|
201043
|
-
topics.push(
|
|
201047
|
+
const currentMessageHash = table + ':' + market['id'];
|
|
201048
|
+
topics.push(currentMessageHash);
|
|
201044
201049
|
}
|
|
201045
201050
|
const messageHash = 'multipleOrderbook::' + symbols.join(',');
|
|
201046
201051
|
const url = this.urls['api']['ws'];
|
|
@@ -204821,8 +204826,8 @@ class bittrex extends _bittrex_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */
|
|
|
204821
204826
|
// unroll the accumulated deltas
|
|
204822
204827
|
// 3. Playback the cached Level 2 data flow.
|
|
204823
204828
|
for (let i = 0; i < messages.length; i++) {
|
|
204824
|
-
const
|
|
204825
|
-
this.handleOrderBookMessage(client,
|
|
204829
|
+
const messageItem = messages[i];
|
|
204830
|
+
this.handleOrderBookMessage(client, messageItem, orderbook);
|
|
204826
204831
|
}
|
|
204827
204832
|
this.orderbooks[symbol] = orderbook;
|
|
204828
204833
|
client.resolve(orderbook, messageHash);
|
|
@@ -205445,8 +205450,8 @@ class bitvavo extends _bitvavo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
205445
205450
|
// unroll the accumulated deltas
|
|
205446
205451
|
const messages = orderbook.cache;
|
|
205447
205452
|
for (let i = 0; i < messages.length; i++) {
|
|
205448
|
-
const
|
|
205449
|
-
this.handleOrderBookMessage(client,
|
|
205453
|
+
const messageItem = messages[i];
|
|
205454
|
+
this.handleOrderBookMessage(client, messageItem, orderbook);
|
|
205450
205455
|
}
|
|
205451
205456
|
this.orderbooks[symbol] = orderbook;
|
|
205452
205457
|
client.resolve(orderbook, messageHash);
|
|
@@ -207125,8 +207130,8 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
207125
207130
|
const topics = [];
|
|
207126
207131
|
for (let i = 0; i < symbols.length; i++) {
|
|
207127
207132
|
const symbol = symbols[i];
|
|
207128
|
-
const
|
|
207129
|
-
const topic = 'orderbook.' + limit.toString() + '.' +
|
|
207133
|
+
const currentMarket = this.market(symbol);
|
|
207134
|
+
const topic = 'orderbook.' + limit.toString() + '.' + currentMarket['id'];
|
|
207130
207135
|
topics.push(topic);
|
|
207131
207136
|
}
|
|
207132
207137
|
const messageHash = 'multipleOrderbook::' + symbols.join(',');
|
|
@@ -209870,12 +209875,11 @@ class coinbase extends _coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
209870
209875
|
this.trades[symbol] = tradesArray;
|
|
209871
209876
|
}
|
|
209872
209877
|
for (let i = 0; i < events.length; i++) {
|
|
209873
|
-
const
|
|
209874
|
-
const
|
|
209875
|
-
for (let
|
|
209876
|
-
const item =
|
|
209877
|
-
|
|
209878
|
-
tradesArray.append(trade);
|
|
209878
|
+
const currentEvent = events[i];
|
|
209879
|
+
const currentTrades = this.safeValue(currentEvent, 'trades');
|
|
209880
|
+
for (let j = 0; j < currentTrades.length; j++) {
|
|
209881
|
+
const item = currentTrades[i];
|
|
209882
|
+
tradesArray.append(this.parseTrade(item));
|
|
209879
209883
|
}
|
|
209880
209884
|
}
|
|
209881
209885
|
client.resolve(tradesArray, messageHash);
|
|
@@ -212264,8 +212268,8 @@ class cryptocom extends _cryptocom_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
212264
212268
|
for (let i = 0; i < symbols.length; i++) {
|
|
212265
212269
|
const symbol = symbols[i];
|
|
212266
212270
|
const market = this.market(symbol);
|
|
212267
|
-
const
|
|
212268
|
-
topics.push(
|
|
212271
|
+
const currentMessageHash = 'book' + '.' + market['id'];
|
|
212272
|
+
topics.push(currentMessageHash);
|
|
212269
212273
|
}
|
|
212270
212274
|
const messageHash = 'multipleOrderbooks::' + symbols.join(',');
|
|
212271
212275
|
const orderbook = await this.watchPublicMultiple(messageHash, topics, params);
|
|
@@ -212352,8 +212356,8 @@ class cryptocom extends _cryptocom_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
212352
212356
|
for (let i = 0; i < symbols.length; i++) {
|
|
212353
212357
|
const symbol = symbols[i];
|
|
212354
212358
|
const market = this.market(symbol);
|
|
212355
|
-
const
|
|
212356
|
-
topics.push(
|
|
212359
|
+
const currentMessageHash = 'trade' + '.' + market['id'];
|
|
212360
|
+
topics.push(currentMessageHash);
|
|
212357
212361
|
}
|
|
212358
212362
|
const messageHash = 'multipleTrades::' + symbols.join(',');
|
|
212359
212363
|
const trades = await this.watchPublicMultiple(messageHash, topics, params);
|
|
@@ -213525,13 +213529,13 @@ class currencycom extends _currencycom_js__WEBPACK_IMPORTED_MODULE_0__/* ["defau
|
|
|
213525
213529
|
const subscription = this.safeValue(subscriptionsById, requestId);
|
|
213526
213530
|
if (subscription !== undefined) {
|
|
213527
213531
|
if (status === 'OK') {
|
|
213528
|
-
const
|
|
213529
|
-
if (
|
|
213532
|
+
const subscriptionDestination = this.safeString(subscription, 'destination');
|
|
213533
|
+
if (subscriptionDestination !== undefined) {
|
|
213530
213534
|
const methods = {
|
|
213531
213535
|
'/api/v1/ticker/24hr': this.handleTicker,
|
|
213532
213536
|
'/api/v1/account': this.handleBalance,
|
|
213533
213537
|
};
|
|
213534
|
-
const method = this.safeValue(methods,
|
|
213538
|
+
const method = this.safeValue(methods, subscriptionDestination);
|
|
213535
213539
|
if (method === undefined) {
|
|
213536
213540
|
return message;
|
|
213537
213541
|
}
|
|
@@ -217451,8 +217455,8 @@ class hitbtc extends _hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
217451
217455
|
this.trades[symbol] = stored;
|
|
217452
217456
|
}
|
|
217453
217457
|
const trades = this.parseWsTrades(data[marketId], market);
|
|
217454
|
-
for (let
|
|
217455
|
-
stored.append(trades[
|
|
217458
|
+
for (let j = 0; j < trades.length; j++) {
|
|
217459
|
+
stored.append(trades[j]);
|
|
217456
217460
|
}
|
|
217457
217461
|
const messageHash = 'trades::' + symbol;
|
|
217458
217462
|
client.resolve(stored, messageHash);
|
|
@@ -217579,8 +217583,8 @@ class hitbtc extends _hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
217579
217583
|
this.ohlcvs[symbol][timeframe] = stored;
|
|
217580
217584
|
}
|
|
217581
217585
|
const ohlcvs = this.parseWsOHLCVs(data[marketId], market);
|
|
217582
|
-
for (let
|
|
217583
|
-
stored.append(ohlcvs[
|
|
217586
|
+
for (let j = 0; j < ohlcvs.length; j++) {
|
|
217587
|
+
stored.append(ohlcvs[j]);
|
|
217584
217588
|
}
|
|
217585
217589
|
const messageHash = channel + '::' + symbol;
|
|
217586
217590
|
client.resolve(stored, messageHash);
|
|
@@ -218975,8 +218979,7 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
218975
218979
|
orderbook.reset(snapshot);
|
|
218976
218980
|
// unroll the accumulated deltas
|
|
218977
218981
|
for (let i = 0; i < messages.length; i++) {
|
|
218978
|
-
|
|
218979
|
-
this.handleOrderBookMessage(client, message, orderbook);
|
|
218982
|
+
this.handleOrderBookMessage(client, messages[i], orderbook);
|
|
218980
218983
|
}
|
|
218981
218984
|
this.orderbooks[symbol] = orderbook;
|
|
218982
218985
|
client.resolve(orderbook, messageHash);
|
|
@@ -220237,14 +220240,14 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
220237
220240
|
const action = this.safeString(message, 'action');
|
|
220238
220241
|
if (action === 'ping') {
|
|
220239
220242
|
const data = this.safeValue(message, 'data');
|
|
220240
|
-
const
|
|
220241
|
-
await client.send({ 'action': 'pong', 'data': { 'ts':
|
|
220243
|
+
const pingTs = this.safeInteger(data, 'ts');
|
|
220244
|
+
await client.send({ 'action': 'pong', 'data': { 'ts': pingTs } });
|
|
220242
220245
|
return;
|
|
220243
220246
|
}
|
|
220244
220247
|
const op = this.safeString(message, 'op');
|
|
220245
220248
|
if (op === 'ping') {
|
|
220246
|
-
const
|
|
220247
|
-
await client.send({ 'op': 'pong', 'ts':
|
|
220249
|
+
const pingTs = this.safeInteger(message, 'ts');
|
|
220250
|
+
await client.send({ 'op': 'pong', 'ts': pingTs });
|
|
220248
220251
|
}
|
|
220249
220252
|
}
|
|
220250
220253
|
catch (e) {
|
|
@@ -220713,7 +220716,7 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
220713
220716
|
const signature = this.hmac(this.encode(payload), this.encode(this.secret), _static_dependencies_noble_hashes_sha256_js__WEBPACK_IMPORTED_MODULE_3__/* .sha256 */ .J, 'base64');
|
|
220714
220717
|
let request = undefined;
|
|
220715
220718
|
if (type === 'spot') {
|
|
220716
|
-
const
|
|
220719
|
+
const newParams = {
|
|
220717
220720
|
'authType': 'api',
|
|
220718
220721
|
'accessKey': this.apiKey,
|
|
220719
220722
|
'signatureMethod': 'HmacSHA256',
|
|
@@ -220722,7 +220725,7 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
220722
220725
|
'signature': signature,
|
|
220723
220726
|
};
|
|
220724
220727
|
request = {
|
|
220725
|
-
'params':
|
|
220728
|
+
'params': newParams,
|
|
220726
220729
|
'action': 'req',
|
|
220727
220730
|
'ch': 'auth',
|
|
220728
220731
|
};
|
|
@@ -232306,8 +232309,8 @@ class phemex extends _phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
232306
232309
|
}
|
|
232307
232310
|
const keys = Object.keys(marketIds);
|
|
232308
232311
|
for (let i = 0; i < keys.length; i++) {
|
|
232309
|
-
const
|
|
232310
|
-
client.resolve(this.orders,
|
|
232312
|
+
const currentMessageHash = 'orders' + ':' + keys[i];
|
|
232313
|
+
client.resolve(this.orders, currentMessageHash);
|
|
232311
232314
|
}
|
|
232312
232315
|
// resolve generic subscription (spot or swap)
|
|
232313
232316
|
const messageHash = 'orders:' + type;
|
|
@@ -233324,8 +233327,8 @@ class poloniex extends _poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
233324
233327
|
let totalCost = '0';
|
|
233325
233328
|
let totalAmount = '0';
|
|
233326
233329
|
const previousOrderTrades = previousOrder['trades'];
|
|
233327
|
-
for (let
|
|
233328
|
-
const previousOrderTrade = previousOrderTrades[
|
|
233330
|
+
for (let j = 0; j < previousOrderTrades.length; j++) {
|
|
233331
|
+
const previousOrderTrade = previousOrderTrades[j];
|
|
233329
233332
|
const cost = this.numberToString(previousOrderTrade['cost']);
|
|
233330
233333
|
const amount = this.numberToString(previousOrderTrade['amount']);
|
|
233331
233334
|
totalCost = _base_Precise_js__WEBPACK_IMPORTED_MODULE_4__/* .Precise.stringAdd */ .O.stringAdd(totalCost, cost);
|
|
@@ -233565,16 +233568,16 @@ class poloniex extends _poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
233565
233568
|
}
|
|
233566
233569
|
const orderbook = this.orderbooks[symbol];
|
|
233567
233570
|
if (bids !== undefined) {
|
|
233568
|
-
for (let
|
|
233569
|
-
const bid = this.safeValue(bids,
|
|
233571
|
+
for (let j = 0; j < bids.length; j++) {
|
|
233572
|
+
const bid = this.safeValue(bids, j);
|
|
233570
233573
|
const price = this.safeNumber(bid, 0);
|
|
233571
233574
|
const amount = this.safeNumber(bid, 1);
|
|
233572
233575
|
orderbook['bids'].store(price, amount);
|
|
233573
233576
|
}
|
|
233574
233577
|
}
|
|
233575
233578
|
if (asks !== undefined) {
|
|
233576
|
-
for (let
|
|
233577
|
-
const ask = this.safeValue(asks,
|
|
233579
|
+
for (let j = 0; j < asks.length; j++) {
|
|
233580
|
+
const ask = this.safeValue(asks, j);
|
|
233578
233581
|
const price = this.safeNumber(ask, 0);
|
|
233579
233582
|
const amount = this.safeNumber(ask, 1);
|
|
233580
233583
|
orderbook['asks'].store(price, amount);
|
|
@@ -236673,8 +236676,8 @@ class whitebit extends _whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
236673
236676
|
// watchTickers
|
|
236674
236677
|
const messageHashes = Object.keys(client.futures);
|
|
236675
236678
|
for (let i = 0; i < messageHashes.length; i++) {
|
|
236676
|
-
const
|
|
236677
|
-
if (
|
|
236679
|
+
const currentMessageHash = messageHashes[i];
|
|
236680
|
+
if (currentMessageHash.indexOf('tickers') >= 0 && currentMessageHash.indexOf(symbol) >= 0) {
|
|
236678
236681
|
// Example: user calls watchTickers with ['LTC/USDT', 'ETH/USDT']
|
|
236679
236682
|
// the associated messagehash will be: 'tickers:LTC/USDT:ETH/USDT'
|
|
236680
236683
|
// since we only have access to a single symbol at a time
|
|
@@ -236684,7 +236687,7 @@ class whitebit extends _whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
236684
236687
|
// user might have multiple watchTickers promises
|
|
236685
236688
|
// watchTickers ( ['LTC/USDT', 'ETH/USDT'] ), watchTickers ( ['ETC/USDT', 'DOGE/USDT'] )
|
|
236686
236689
|
// and we want to make sure we resolve only the correct ones
|
|
236687
|
-
client.resolve(ticker,
|
|
236690
|
+
client.resolve(ticker, currentMessageHash);
|
|
236688
236691
|
}
|
|
236689
236692
|
}
|
|
236690
236693
|
return message;
|
|
@@ -237142,15 +237145,15 @@ class whitebit extends _whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
237142
237145
|
}
|
|
237143
237146
|
else {
|
|
237144
237147
|
// resubscribe
|
|
237145
|
-
let
|
|
237146
|
-
|
|
237148
|
+
let marketIdsNew = [];
|
|
237149
|
+
marketIdsNew = Object.keys(subscription);
|
|
237147
237150
|
if (isNested) {
|
|
237148
|
-
|
|
237151
|
+
marketIdsNew = [marketIdsNew];
|
|
237149
237152
|
}
|
|
237150
237153
|
const resubRequest = {
|
|
237151
237154
|
'id': id,
|
|
237152
237155
|
'method': method,
|
|
237153
|
-
'params':
|
|
237156
|
+
'params': marketIdsNew,
|
|
237154
237157
|
};
|
|
237155
237158
|
if (method in client.subscriptions) {
|
|
237156
237159
|
delete client.subscriptions[method];
|
|
@@ -238469,14 +238472,14 @@ class probit extends _abstract_probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
238469
238472
|
}
|
|
238470
238473
|
const precision = this.parsePrecision(this.safeString(network, 'precision'));
|
|
238471
238474
|
const withdrawFee = this.safeValue(network, 'withdrawal_fee', []);
|
|
238472
|
-
const
|
|
238475
|
+
const networkfee = this.safeValue(withdrawFee, 0, {});
|
|
238473
238476
|
networkList[networkCode] = {
|
|
238474
238477
|
'id': networkId,
|
|
238475
238478
|
'network': networkCode,
|
|
238476
238479
|
'active': currentActive,
|
|
238477
238480
|
'deposit': currentDeposit,
|
|
238478
238481
|
'withdraw': currentWithdraw,
|
|
238479
|
-
'fee': this.safeNumber(
|
|
238482
|
+
'fee': this.safeNumber(networkfee, 'amount'),
|
|
238480
238483
|
'precision': this.parseNumber(precision),
|
|
238481
238484
|
'limits': {
|
|
238482
238485
|
'withdraw': {
|
|
@@ -273769,7 +273772,7 @@ SOFTWARE.
|
|
|
273769
273772
|
|
|
273770
273773
|
//-----------------------------------------------------------------------------
|
|
273771
273774
|
// this is updated by vss.js when building
|
|
273772
|
-
const version = '4.0.
|
|
273775
|
+
const version = '4.0.100';
|
|
273773
273776
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
|
|
273774
273777
|
//-----------------------------------------------------------------------------
|
|
273775
273778
|
|