ccxt 4.2.31 → 4.2.35
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/.gitattributes +1 -0
- package/CONTRIBUTING.md +20 -1
- package/README.md +8 -7
- package/build.sh +9 -2
- package/cleanup.sh +3 -0
- package/dist/ccxt.browser.js +741 -501
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ace.js +3 -2
- package/dist/cjs/src/ascendex.js +1 -1
- package/dist/cjs/src/base/Exchange.js +62 -20
- package/dist/cjs/src/bigone.js +21 -1
- package/dist/cjs/src/binance.js +59 -15
- package/dist/cjs/src/bingx.js +4 -3
- package/dist/cjs/src/bit2c.js +12 -0
- package/dist/cjs/src/bitfinex2.js +12 -1
- package/dist/cjs/src/bitget.js +3 -3
- package/dist/cjs/src/bitmart.js +1 -1
- package/dist/cjs/src/bitrue.js +3 -3
- package/dist/cjs/src/blockchaincom.js +1 -1
- package/dist/cjs/src/bybit.js +1 -1
- package/dist/cjs/src/coinbase.js +2 -2
- package/dist/cjs/src/coinex.js +1 -1
- package/dist/cjs/src/cryptocom.js +10 -10
- package/dist/cjs/src/gate.js +34 -29
- package/dist/cjs/src/kraken.js +39 -0
- package/dist/cjs/src/krakenfutures.js +25 -3
- package/dist/cjs/src/kucoin.js +1 -1
- package/dist/cjs/src/mexc.js +2 -1
- package/dist/cjs/src/okx.js +4 -3
- package/dist/cjs/src/phemex.js +8 -8
- package/dist/cjs/src/pro/alpaca.js +8 -4
- package/dist/cjs/src/pro/ascendex.js +1 -2
- package/dist/cjs/src/pro/binance.js +17 -13
- package/dist/cjs/src/pro/bingx.js +1 -1
- package/dist/cjs/src/pro/bitfinex.js +21 -24
- package/dist/cjs/src/pro/bitfinex2.js +13 -17
- package/dist/cjs/src/pro/bitget.js +3 -1
- package/dist/cjs/src/pro/bitmart.js +3 -8
- package/dist/cjs/src/pro/bitmex.js +4 -7
- package/dist/cjs/src/pro/bitopro.js +2 -5
- package/dist/cjs/src/pro/bitrue.js +1 -1
- package/dist/cjs/src/pro/bitstamp.js +2 -3
- package/dist/cjs/src/pro/bitvavo.js +12 -5
- package/dist/cjs/src/pro/blockchaincom.js +22 -23
- package/dist/cjs/src/pro/bybit.js +5 -5
- package/dist/cjs/src/pro/cex.js +7 -7
- package/dist/cjs/src/pro/coinbase.js +3 -2
- package/dist/cjs/src/pro/coinbasepro.js +1 -1
- package/dist/cjs/src/pro/coinex.js +15 -13
- package/dist/cjs/src/pro/currencycom.js +5 -7
- package/dist/cjs/src/pro/deribit.js +4 -4
- package/dist/cjs/src/pro/exmo.js +15 -13
- package/dist/cjs/src/pro/gate.js +1 -1
- package/dist/cjs/src/pro/gemini.js +4 -2
- package/dist/cjs/src/pro/hitbtc.js +9 -8
- package/dist/cjs/src/pro/hollaex.js +2 -2
- package/dist/cjs/src/pro/htx.js +6 -7
- package/dist/cjs/src/pro/huobijp.js +3 -5
- package/dist/cjs/src/pro/idex.js +1 -1
- package/dist/cjs/src/pro/independentreserve.js +14 -13
- package/dist/cjs/src/pro/kraken.js +10 -16
- package/dist/cjs/src/pro/krakenfutures.js +10 -6
- package/dist/cjs/src/pro/kucoin.js +10 -11
- package/dist/cjs/src/pro/kucoinfutures.js +12 -11
- package/dist/cjs/src/pro/lbank.js +10 -10
- package/dist/cjs/src/pro/luno.js +12 -14
- package/dist/cjs/src/pro/mexc.js +3 -2
- package/dist/cjs/src/pro/ndax.js +7 -13
- package/dist/cjs/src/pro/okcoin.js +7 -12
- package/dist/cjs/src/pro/okx.js +6 -11
- package/dist/cjs/src/pro/onetrading.js +16 -15
- package/dist/cjs/src/pro/p2b.js +5 -3
- package/dist/cjs/src/pro/phemex.js +16 -11
- package/dist/cjs/src/pro/poloniex.js +6 -4
- package/dist/cjs/src/pro/poloniexfutures.js +14 -9
- package/dist/cjs/src/pro/probit.js +15 -11
- package/dist/cjs/src/pro/upbit.js +8 -8
- package/dist/cjs/src/pro/wazirx.js +6 -3
- package/dist/cjs/src/pro/woo.js +8 -6
- package/dist/cjs/src/probit.js +3 -3
- package/dist/cjs/src/tokocrypto.js +2 -2
- package/dist/cjs/src/wavesexchange.js +2 -1
- package/dist/cjs/src/woo.js +1 -1
- package/dist/cjs/src/yobit.js +39 -0
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/ace.d.ts +1 -1
- package/js/src/ace.js +3 -2
- package/js/src/alpaca.d.ts +1 -1
- package/js/src/ascendex.d.ts +5 -15
- package/js/src/ascendex.js +1 -1
- package/js/src/base/Exchange.d.ts +86 -78
- package/js/src/base/Exchange.js +62 -20
- package/js/src/base/types.d.ts +90 -6
- package/js/src/bigone.d.ts +5 -15
- package/js/src/bigone.js +21 -1
- package/js/src/binance.d.ts +13 -23
- package/js/src/binance.js +59 -15
- package/js/src/bingx.d.ts +6 -16
- package/js/src/bingx.js +4 -3
- package/js/src/bit2c.d.ts +1 -1
- package/js/src/bit2c.js +12 -0
- package/js/src/bitbank.d.ts +2 -2
- package/js/src/bitbns.d.ts +1 -1
- package/js/src/bitfinex.d.ts +5 -5
- package/js/src/bitfinex2.d.ts +7 -17
- package/js/src/bitfinex2.js +12 -1
- package/js/src/bitflyer.d.ts +5 -5
- package/js/src/bitforex.d.ts +1 -1
- package/js/src/bitget.d.ts +8 -38
- package/js/src/bitget.js +3 -3
- package/js/src/bithumb.d.ts +2 -2
- package/js/src/bitmart.d.ts +10 -21
- package/js/src/bitmart.js +1 -1
- package/js/src/bitmex.d.ts +3 -3
- package/js/src/bitopro.d.ts +2 -2
- package/js/src/bitrue.d.ts +5 -15
- package/js/src/bitrue.js +3 -3
- package/js/src/bitso.d.ts +4 -4
- package/js/src/bitstamp.d.ts +2 -2
- package/js/src/bitteam.d.ts +1 -1
- package/js/src/bitvavo.d.ts +3 -3
- package/js/src/bl3p.d.ts +1 -1
- package/js/src/blockchaincom.d.ts +2 -2
- package/js/src/blockchaincom.js +1 -1
- package/js/src/btcalpha.d.ts +1 -1
- package/js/src/btcbox.d.ts +1 -1
- package/js/src/btcmarkets.d.ts +3 -3
- package/js/src/btcturk.d.ts +1 -1
- package/js/src/bybit.d.ts +8 -8
- package/js/src/bybit.js +1 -1
- package/js/src/cex.d.ts +1 -1
- package/js/src/coinbase.d.ts +6 -50
- package/js/src/coinbase.js +2 -2
- package/js/src/coinbasepro.d.ts +2 -2
- package/js/src/coincheck.d.ts +1 -1
- package/js/src/coinex.d.ts +8 -8
- package/js/src/coinex.js +1 -1
- package/js/src/coinlist.d.ts +4 -14
- package/js/src/coinmate.d.ts +2 -2
- package/js/src/coinmetro.d.ts +2 -2
- package/js/src/coinone.d.ts +1 -1
- package/js/src/coinsph.d.ts +2 -2
- package/js/src/coinspot.d.ts +1 -1
- package/js/src/cryptocom.d.ts +4 -4
- package/js/src/cryptocom.js +10 -10
- package/js/src/currencycom.d.ts +2 -2
- package/js/src/delta.d.ts +2 -2
- package/js/src/deribit.d.ts +4 -14
- package/js/src/digifinex.d.ts +10 -38
- package/js/src/exmo.d.ts +2 -2
- package/js/src/gate.d.ts +8 -18
- package/js/src/gate.js +34 -29
- package/js/src/gemini.d.ts +2 -2
- package/js/src/hitbtc.d.ts +6 -16
- package/js/src/hollaex.d.ts +2 -2
- package/js/src/htx.d.ts +11 -21
- package/js/src/huobijp.d.ts +4 -4
- package/js/src/idex.d.ts +3 -3
- package/js/src/independentreserve.d.ts +2 -2
- package/js/src/indodax.d.ts +2 -2
- package/js/src/kraken.d.ts +5 -5
- package/js/src/kraken.js +39 -0
- package/js/src/krakenfutures.d.ts +7 -7
- package/js/src/krakenfutures.js +25 -3
- package/js/src/kucoin.d.ts +8 -29
- package/js/src/kucoin.js +1 -1
- package/js/src/kucoinfutures.d.ts +4 -4
- package/js/src/kuna.d.ts +2 -2
- package/js/src/latoken.d.ts +4 -14
- package/js/src/lbank.d.ts +2 -5
- package/js/src/luno.d.ts +1 -1
- package/js/src/lykke.d.ts +2 -2
- package/js/src/mercado.d.ts +2 -2
- package/js/src/mexc.d.ts +6 -6
- package/js/src/mexc.js +2 -1
- package/js/src/ndax.d.ts +2 -2
- package/js/src/novadax.d.ts +4 -15
- package/js/src/oceanex.d.ts +1 -1
- package/js/src/okcoin.d.ts +5 -15
- package/js/src/okx.d.ts +8 -18
- package/js/src/okx.js +4 -3
- package/js/src/onetrading.d.ts +2 -2
- package/js/src/p2b.d.ts +1 -1
- package/js/src/paymium.d.ts +3 -13
- package/js/src/phemex.d.ts +5 -5
- package/js/src/phemex.js +8 -8
- package/js/src/poloniex.d.ts +4 -14
- package/js/src/poloniexfutures.d.ts +1 -1
- package/js/src/pro/alpaca.d.ts +2 -2
- package/js/src/pro/alpaca.js +8 -4
- package/js/src/pro/ascendex.d.ts +2 -2
- package/js/src/pro/ascendex.js +1 -2
- package/js/src/pro/binance.d.ts +3 -3
- package/js/src/pro/binance.js +17 -13
- package/js/src/pro/bingx.d.ts +1 -1
- package/js/src/pro/bingx.js +1 -1
- package/js/src/pro/bitfinex.d.ts +2 -2
- package/js/src/pro/bitfinex.js +21 -24
- package/js/src/pro/bitfinex2.d.ts +2 -2
- package/js/src/pro/bitfinex2.js +13 -17
- package/js/src/pro/bitget.js +3 -1
- package/js/src/pro/bitmart.d.ts +3 -3
- package/js/src/pro/bitmart.js +3 -8
- package/js/src/pro/bitmex.d.ts +1 -1
- package/js/src/pro/bitmex.js +4 -7
- package/js/src/pro/bitopro.d.ts +1 -1
- package/js/src/pro/bitopro.js +2 -5
- package/js/src/pro/bitrue.js +1 -1
- package/js/src/pro/bitstamp.d.ts +1 -1
- package/js/src/pro/bitstamp.js +2 -3
- package/js/src/pro/bitvavo.d.ts +3 -3
- package/js/src/pro/bitvavo.js +12 -5
- package/js/src/pro/blockchaincom.d.ts +8 -8
- package/js/src/pro/blockchaincom.js +22 -23
- package/js/src/pro/bybit.d.ts +2 -2
- package/js/src/pro/bybit.js +5 -5
- package/js/src/pro/cex.d.ts +1 -1
- package/js/src/pro/cex.js +7 -7
- package/js/src/pro/coinbase.d.ts +1 -1
- package/js/src/pro/coinbase.js +3 -2
- package/js/src/pro/coinbasepro.d.ts +1 -1
- package/js/src/pro/coinbasepro.js +1 -1
- package/js/src/pro/coinex.d.ts +2 -2
- package/js/src/pro/coinex.js +15 -13
- package/js/src/pro/currencycom.d.ts +1 -1
- package/js/src/pro/currencycom.js +5 -7
- package/js/src/pro/deribit.d.ts +2 -2
- package/js/src/pro/deribit.js +4 -4
- package/js/src/pro/exmo.d.ts +2 -2
- package/js/src/pro/exmo.js +15 -13
- package/js/src/pro/gate.js +1 -1
- package/js/src/pro/gemini.d.ts +1 -1
- package/js/src/pro/gemini.js +4 -2
- package/js/src/pro/hitbtc.d.ts +2 -2
- package/js/src/pro/hitbtc.js +9 -8
- package/js/src/pro/hollaex.d.ts +2 -2
- package/js/src/pro/hollaex.js +2 -2
- package/js/src/pro/htx.d.ts +2 -2
- package/js/src/pro/htx.js +6 -7
- package/js/src/pro/huobijp.d.ts +1 -1
- package/js/src/pro/huobijp.js +3 -5
- package/js/src/pro/idex.js +1 -1
- package/js/src/pro/independentreserve.d.ts +1 -1
- package/js/src/pro/independentreserve.js +14 -13
- package/js/src/pro/kraken.d.ts +2 -2
- package/js/src/pro/kraken.js +10 -16
- package/js/src/pro/krakenfutures.d.ts +1 -1
- package/js/src/pro/krakenfutures.js +10 -6
- package/js/src/pro/kucoin.d.ts +3 -3
- package/js/src/pro/kucoin.js +10 -11
- package/js/src/pro/kucoinfutures.d.ts +3 -3
- package/js/src/pro/kucoinfutures.js +12 -11
- package/js/src/pro/lbank.d.ts +1 -1
- package/js/src/pro/lbank.js +10 -10
- package/js/src/pro/luno.d.ts +2 -2
- package/js/src/pro/luno.js +12 -14
- package/js/src/pro/mexc.d.ts +2 -2
- package/js/src/pro/mexc.js +3 -2
- package/js/src/pro/ndax.d.ts +3 -3
- package/js/src/pro/ndax.js +7 -13
- package/js/src/pro/okcoin.d.ts +1 -1
- package/js/src/pro/okcoin.js +7 -12
- package/js/src/pro/okx.d.ts +1 -1
- package/js/src/pro/okx.js +6 -11
- package/js/src/pro/onetrading.d.ts +1 -1
- package/js/src/pro/onetrading.js +16 -15
- package/js/src/pro/p2b.d.ts +1 -1
- package/js/src/pro/p2b.js +5 -3
- package/js/src/pro/phemex.d.ts +3 -3
- package/js/src/pro/phemex.js +16 -11
- package/js/src/pro/poloniex.d.ts +1 -1
- package/js/src/pro/poloniex.js +6 -4
- package/js/src/pro/poloniexfutures.d.ts +4 -4
- package/js/src/pro/poloniexfutures.js +13 -10
- package/js/src/pro/probit.d.ts +1 -1
- package/js/src/pro/probit.js +14 -12
- package/js/src/pro/upbit.js +8 -8
- package/js/src/pro/wazirx.d.ts +1 -1
- package/js/src/pro/wazirx.js +6 -3
- package/js/src/pro/woo.d.ts +3 -3
- package/js/src/pro/woo.js +8 -6
- package/js/src/probit.d.ts +3 -3
- package/js/src/probit.js +3 -3
- package/js/src/timex.d.ts +1 -1
- package/js/src/tokocrypto.d.ts +3 -3
- package/js/src/tokocrypto.js +2 -2
- package/js/src/upbit.d.ts +2 -2
- package/js/src/wavesexchange.d.ts +3 -4
- package/js/src/wavesexchange.js +2 -1
- package/js/src/wazirx.d.ts +1 -1
- package/js/src/whitebit.d.ts +5 -15
- package/js/src/woo.d.ts +5 -15
- package/js/src/woo.js +1 -1
- package/js/src/yobit.d.ts +21 -6
- package/js/src/yobit.js +39 -0
- package/js/src/zaif.d.ts +2 -2
- package/js/src/zonda.d.ts +4 -14
- package/package.json +22 -8
- package/skip-tests.json +9 -1
- package/tests-manager.sh +1 -2
|
@@ -181,28 +181,28 @@ export default class independentreserve extends independentreserveRest {
|
|
|
181
181
|
const subscription = this.safeValue(client.subscriptions, messageHash, {});
|
|
182
182
|
const receivedSnapshot = this.safeBool(subscription, 'receivedSnapshot', false);
|
|
183
183
|
const timestamp = this.safeInteger(message, 'Time');
|
|
184
|
-
let
|
|
185
|
-
if (
|
|
186
|
-
|
|
187
|
-
this.orderbooks[symbol] =
|
|
184
|
+
let orderbook = this.safeValue(this.orderbooks, symbol);
|
|
185
|
+
if (orderbook === undefined) {
|
|
186
|
+
orderbook = this.orderBook({});
|
|
187
|
+
this.orderbooks[symbol] = orderbook;
|
|
188
188
|
}
|
|
189
189
|
if (event === 'OrderBookSnapshot') {
|
|
190
190
|
const snapshot = this.parseOrderBook(orderBook, symbol, timestamp, 'Bids', 'Offers', 'Price', 'Volume');
|
|
191
|
-
|
|
191
|
+
orderbook.reset(snapshot);
|
|
192
192
|
subscription['receivedSnapshot'] = true;
|
|
193
193
|
}
|
|
194
194
|
else {
|
|
195
195
|
const asks = this.safeValue(orderBook, 'Offers', []);
|
|
196
196
|
const bids = this.safeValue(orderBook, 'Bids', []);
|
|
197
|
-
this.handleDeltas(
|
|
198
|
-
this.handleDeltas(
|
|
199
|
-
|
|
200
|
-
|
|
197
|
+
this.handleDeltas(orderbook['asks'], asks);
|
|
198
|
+
this.handleDeltas(orderbook['bids'], bids);
|
|
199
|
+
orderbook['timestamp'] = timestamp;
|
|
200
|
+
orderbook['datetime'] = this.iso8601(timestamp);
|
|
201
201
|
}
|
|
202
202
|
const checksum = this.safeValue(this.options, 'checksum', true);
|
|
203
203
|
if (checksum && receivedSnapshot) {
|
|
204
|
-
const storedAsks =
|
|
205
|
-
const storedBids =
|
|
204
|
+
const storedAsks = orderbook['asks'];
|
|
205
|
+
const storedBids = orderbook['bids'];
|
|
206
206
|
const asksLength = storedAsks.length;
|
|
207
207
|
const bidsLength = storedBids.length;
|
|
208
208
|
let payload = '';
|
|
@@ -224,7 +224,7 @@ export default class independentreserve extends independentreserveRest {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
if (receivedSnapshot) {
|
|
227
|
-
client.resolve(
|
|
227
|
+
client.resolve(orderbook, messageHash);
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
valueToChecksum(value) {
|
|
@@ -274,7 +274,8 @@ export default class independentreserve extends independentreserveRest {
|
|
|
274
274
|
};
|
|
275
275
|
const handler = this.safeValue(handlers, event);
|
|
276
276
|
if (handler !== undefined) {
|
|
277
|
-
|
|
277
|
+
handler.call(this, client, message);
|
|
278
|
+
return;
|
|
278
279
|
}
|
|
279
280
|
throw new NotSupported(this.id + ' received an unsupported message: ' + this.json(message));
|
|
280
281
|
}
|
package/js/src/pro/kraken.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export default class kraken extends krakenRest {
|
|
|
25
25
|
handleHeartbeat(client: Client, message: any): void;
|
|
26
26
|
handleOrderBook(client: Client, message: any, subscription: any): void;
|
|
27
27
|
formatNumber(n: any, length: any): string;
|
|
28
|
-
|
|
28
|
+
customHandleDeltas(bookside: any, deltas: any, timestamp?: any): any;
|
|
29
29
|
handleSystemStatus(client: Client, message: any): any;
|
|
30
30
|
authenticate(params?: {}): Promise<string>;
|
|
31
31
|
watchPrivate(name: any, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
|
|
@@ -51,5 +51,5 @@ export default class kraken extends krakenRest {
|
|
|
51
51
|
parseWsOrder(order: any, market?: any): Order;
|
|
52
52
|
handleSubscriptionStatus(client: Client, message: any): void;
|
|
53
53
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
54
|
-
handleMessage(client: Client, message: any):
|
|
54
|
+
handleMessage(client: Client, message: any): void;
|
|
55
55
|
}
|
package/js/src/pro/kraken.js
CHANGED
|
@@ -659,7 +659,7 @@ export default class kraken extends krakenRest {
|
|
|
659
659
|
const side = sides[key];
|
|
660
660
|
const bookside = orderbook[side];
|
|
661
661
|
const deltas = this.safeValue(message[1], key, []);
|
|
662
|
-
timestamp = this.
|
|
662
|
+
timestamp = this.customHandleDeltas(bookside, deltas, timestamp);
|
|
663
663
|
}
|
|
664
664
|
orderbook['symbol'] = symbol;
|
|
665
665
|
orderbook['timestamp'] = timestamp;
|
|
@@ -691,11 +691,11 @@ export default class kraken extends krakenRest {
|
|
|
691
691
|
const storedBids = orderbook['bids'];
|
|
692
692
|
let example = undefined;
|
|
693
693
|
if (a !== undefined) {
|
|
694
|
-
timestamp = this.
|
|
694
|
+
timestamp = this.customHandleDeltas(storedAsks, a, timestamp);
|
|
695
695
|
example = this.safeValue(a, 0);
|
|
696
696
|
}
|
|
697
697
|
if (b !== undefined) {
|
|
698
|
-
timestamp = this.
|
|
698
|
+
timestamp = this.customHandleDeltas(storedBids, b, timestamp);
|
|
699
699
|
example = this.safeValue(b, 0);
|
|
700
700
|
}
|
|
701
701
|
// don't remove this line or I will poop on your face
|
|
@@ -750,7 +750,7 @@ export default class kraken extends krakenRest {
|
|
|
750
750
|
return joined;
|
|
751
751
|
}
|
|
752
752
|
}
|
|
753
|
-
|
|
753
|
+
customHandleDeltas(bookside, deltas, timestamp = undefined) {
|
|
754
754
|
for (let j = 0; j < deltas.length; j++) {
|
|
755
755
|
const delta = deltas[j];
|
|
756
756
|
const price = this.parseNumber(delta[0]);
|
|
@@ -1295,7 +1295,7 @@ export default class kraken extends krakenRest {
|
|
|
1295
1295
|
// "subscription": { name: "ticker" }
|
|
1296
1296
|
// }
|
|
1297
1297
|
//
|
|
1298
|
-
const errorMessage = this.
|
|
1298
|
+
const errorMessage = this.safeString(message, 'errorMessage');
|
|
1299
1299
|
if (errorMessage !== undefined) {
|
|
1300
1300
|
const requestId = this.safeValue(message, 'reqid');
|
|
1301
1301
|
if (requestId !== undefined) {
|
|
@@ -1303,7 +1303,7 @@ export default class kraken extends krakenRest {
|
|
|
1303
1303
|
const broadKey = this.findBroadlyMatchedKey(broad, errorMessage);
|
|
1304
1304
|
let exception = undefined;
|
|
1305
1305
|
if (broadKey === undefined) {
|
|
1306
|
-
exception = new ExchangeError(errorMessage);
|
|
1306
|
+
exception = new ExchangeError(errorMessage); // c# requirement to convert the errorMessage to string
|
|
1307
1307
|
}
|
|
1308
1308
|
else {
|
|
1309
1309
|
exception = new broad[broadKey](errorMessage);
|
|
@@ -1333,11 +1333,8 @@ export default class kraken extends krakenRest {
|
|
|
1333
1333
|
'ownTrades': this.handleMyTrades,
|
|
1334
1334
|
};
|
|
1335
1335
|
const method = this.safeValue2(methods, name, channelName);
|
|
1336
|
-
if (method
|
|
1337
|
-
|
|
1338
|
-
}
|
|
1339
|
-
else {
|
|
1340
|
-
return method.call(this, client, message, subscription);
|
|
1336
|
+
if (method !== undefined) {
|
|
1337
|
+
method.call(this, client, message, subscription);
|
|
1341
1338
|
}
|
|
1342
1339
|
}
|
|
1343
1340
|
else {
|
|
@@ -1353,11 +1350,8 @@ export default class kraken extends krakenRest {
|
|
|
1353
1350
|
'cancelAllStatus': this.handleCancelAllOrders,
|
|
1354
1351
|
};
|
|
1355
1352
|
const method = this.safeValue(methods, event);
|
|
1356
|
-
if (method
|
|
1357
|
-
|
|
1358
|
-
}
|
|
1359
|
-
else {
|
|
1360
|
-
return method.call(this, client, message);
|
|
1353
|
+
if (method !== undefined) {
|
|
1354
|
+
method.call(this, client, message);
|
|
1361
1355
|
}
|
|
1362
1356
|
}
|
|
1363
1357
|
}
|
|
@@ -30,6 +30,6 @@ export default class krakenfutures extends krakenfuturesRest {
|
|
|
30
30
|
handleMyTrades(client: Client, message: any): void;
|
|
31
31
|
parseWsMyTrade(trade: any, market?: any): Trade;
|
|
32
32
|
handleErrorMessage(client: Client, message: any): void;
|
|
33
|
-
handleMessage(client: any, message: any):
|
|
33
|
+
handleMessage(client: any, message: any): void;
|
|
34
34
|
handleAuthenticate(client: Client, message: any): any;
|
|
35
35
|
}
|
|
@@ -1067,13 +1067,15 @@ export default class krakenfutures extends krakenfuturesRest {
|
|
|
1067
1067
|
const bid = bids[i];
|
|
1068
1068
|
const price = this.safeNumber(bid, 'price');
|
|
1069
1069
|
const qty = this.safeNumber(bid, 'qty');
|
|
1070
|
-
orderbook['bids']
|
|
1070
|
+
const bidsSide = orderbook['bids'];
|
|
1071
|
+
bidsSide.store(price, qty);
|
|
1071
1072
|
}
|
|
1072
1073
|
for (let i = 0; i < asks.length; i++) {
|
|
1073
1074
|
const ask = asks[i];
|
|
1074
1075
|
const price = this.safeNumber(ask, 'price');
|
|
1075
1076
|
const qty = this.safeNumber(ask, 'qty');
|
|
1076
|
-
orderbook['asks']
|
|
1077
|
+
const asksSide = orderbook['asks'];
|
|
1078
|
+
asksSide.store(price, qty);
|
|
1077
1079
|
}
|
|
1078
1080
|
orderbook['timestamp'] = timestamp;
|
|
1079
1081
|
orderbook['datetime'] = this.iso8601(timestamp);
|
|
@@ -1102,10 +1104,12 @@ export default class krakenfutures extends krakenfuturesRest {
|
|
|
1102
1104
|
const qty = this.safeNumber(message, 'qty');
|
|
1103
1105
|
const timestamp = this.safeInteger(message, 'timestamp');
|
|
1104
1106
|
if (side === 'sell') {
|
|
1105
|
-
orderbook['asks']
|
|
1107
|
+
const asks = orderbook['asks'];
|
|
1108
|
+
asks.store(price, qty);
|
|
1106
1109
|
}
|
|
1107
1110
|
else {
|
|
1108
|
-
orderbook['bids']
|
|
1111
|
+
const bids = orderbook['bids'];
|
|
1112
|
+
bids.store(price, qty);
|
|
1109
1113
|
}
|
|
1110
1114
|
orderbook['timestamp'] = timestamp;
|
|
1111
1115
|
orderbook['datetime'] = this.iso8601(timestamp);
|
|
@@ -1441,7 +1445,7 @@ export default class krakenfutures extends krakenfuturesRest {
|
|
|
1441
1445
|
this.handleAuthenticate(client, message);
|
|
1442
1446
|
}
|
|
1443
1447
|
else if (event === 'alert') {
|
|
1444
|
-
|
|
1448
|
+
this.handleErrorMessage(client, message);
|
|
1445
1449
|
}
|
|
1446
1450
|
else if (event === 'pong') {
|
|
1447
1451
|
client.lastPong = this.milliseconds();
|
|
@@ -1468,7 +1472,7 @@ export default class krakenfutures extends krakenfuturesRest {
|
|
|
1468
1472
|
};
|
|
1469
1473
|
const method = this.safeValue(methods, feed);
|
|
1470
1474
|
if (method !== undefined) {
|
|
1471
|
-
|
|
1475
|
+
method.call(this, client, message);
|
|
1472
1476
|
}
|
|
1473
1477
|
}
|
|
1474
1478
|
}
|
package/js/src/pro/kucoin.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { Int, Str, Strings, OrderBook, Order, Trade, Ticker, Tickers, OHLCV
|
|
|
3
3
|
import Client from '../base/ws/Client.js';
|
|
4
4
|
export default class kucoin extends kucoinRest {
|
|
5
5
|
describe(): any;
|
|
6
|
-
negotiate(privateChannel: any, params?: {}): any
|
|
6
|
+
negotiate(privateChannel: any, params?: {}): Promise<any>;
|
|
7
7
|
negotiateHelper(privateChannel: any, params?: {}): Promise<string>;
|
|
8
8
|
requestId(): any;
|
|
9
9
|
subscribe(url: any, messageHash: any, subscriptionHash: any, params?: {}, subscription?: any): Promise<any>;
|
|
@@ -34,12 +34,12 @@ export default class kucoin extends kucoinRest {
|
|
|
34
34
|
parseWsTrade(trade: any, market?: any): Trade;
|
|
35
35
|
watchBalance(params?: {}): Promise<Balances>;
|
|
36
36
|
handleBalance(client: Client, message: any): void;
|
|
37
|
-
handleSubject(client: Client, message: any):
|
|
37
|
+
handleSubject(client: Client, message: any): void;
|
|
38
38
|
ping(client: any): {
|
|
39
39
|
id: any;
|
|
40
40
|
type: string;
|
|
41
41
|
};
|
|
42
42
|
handlePong(client: Client, message: any): void;
|
|
43
43
|
handleErrorMessage(client: Client, message: any): void;
|
|
44
|
-
handleMessage(client: Client, message: any):
|
|
44
|
+
handleMessage(client: Client, message: any): void;
|
|
45
45
|
}
|
package/js/src/pro/kucoin.js
CHANGED
|
@@ -50,19 +50,20 @@ export default class kucoin extends kucoinRest {
|
|
|
50
50
|
},
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
|
-
negotiate(privateChannel, params = {}) {
|
|
53
|
+
async negotiate(privateChannel, params = {}) {
|
|
54
54
|
const connectId = privateChannel ? 'private' : 'public';
|
|
55
55
|
const urls = this.safeValue(this.options, 'urls', {});
|
|
56
56
|
const spawaned = this.safeValue(urls, connectId);
|
|
57
57
|
if (spawaned !== undefined) {
|
|
58
|
-
return spawaned;
|
|
58
|
+
return await spawaned;
|
|
59
59
|
}
|
|
60
60
|
// we store an awaitable to the url
|
|
61
61
|
// so that multiple calls don't asynchronously
|
|
62
62
|
// fetch different urls and overwrite each other
|
|
63
63
|
urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params);
|
|
64
64
|
this.options['urls'] = urls;
|
|
65
|
-
|
|
65
|
+
const future = urls[connectId];
|
|
66
|
+
return await future;
|
|
66
67
|
}
|
|
67
68
|
async negotiateHelper(privateChannel, params = {}) {
|
|
68
69
|
let response = undefined;
|
|
@@ -548,7 +549,7 @@ export default class kucoin extends kucoinRest {
|
|
|
548
549
|
const limit = this.safeInteger(subscription, 'limit');
|
|
549
550
|
const snapshotDelay = this.handleOption('watchOrderBook', 'snapshotDelay', 5);
|
|
550
551
|
if (cacheLength === snapshotDelay) {
|
|
551
|
-
this.spawn(this.loadOrderBook, client, messageHash, symbol, limit);
|
|
552
|
+
this.spawn(this.loadOrderBook, client, messageHash, symbol, limit, {});
|
|
552
553
|
}
|
|
553
554
|
storedOrderBook.cache.push(data);
|
|
554
555
|
return;
|
|
@@ -990,7 +991,8 @@ export default class kucoin extends kucoinRest {
|
|
|
990
991
|
//
|
|
991
992
|
const topic = this.safeString(message, 'topic');
|
|
992
993
|
if (topic === '/market/ticker:all') {
|
|
993
|
-
|
|
994
|
+
this.handleTicker(client, message);
|
|
995
|
+
return;
|
|
994
996
|
}
|
|
995
997
|
const subject = this.safeString(message, 'subject');
|
|
996
998
|
const methods = {
|
|
@@ -1005,11 +1007,8 @@ export default class kucoin extends kucoinRest {
|
|
|
1005
1007
|
'stopOrder': this.handleOrder,
|
|
1006
1008
|
};
|
|
1007
1009
|
const method = this.safeValue(methods, subject);
|
|
1008
|
-
if (method
|
|
1009
|
-
|
|
1010
|
-
}
|
|
1011
|
-
else {
|
|
1012
|
-
return method.call(this, client, message);
|
|
1010
|
+
if (method !== undefined) {
|
|
1011
|
+
method.call(this, client, message);
|
|
1013
1012
|
}
|
|
1014
1013
|
}
|
|
1015
1014
|
ping(client) {
|
|
@@ -1057,7 +1056,7 @@ export default class kucoin extends kucoinRest {
|
|
|
1057
1056
|
};
|
|
1058
1057
|
const method = this.safeValue(methods, type);
|
|
1059
1058
|
if (method !== undefined) {
|
|
1060
|
-
|
|
1059
|
+
method.call(this, client, message);
|
|
1061
1060
|
}
|
|
1062
1061
|
}
|
|
1063
1062
|
}
|
|
@@ -3,7 +3,7 @@ import type { Int, Str, OrderBook, Order, Trade, Ticker, Balances, Position } fr
|
|
|
3
3
|
import Client from '../base/ws/Client.js';
|
|
4
4
|
export default class kucoinfutures extends kucoinfuturesRest {
|
|
5
5
|
describe(): any;
|
|
6
|
-
negotiate(privateChannel: any, params?: {}): any
|
|
6
|
+
negotiate(privateChannel: any, params?: {}): Promise<any>;
|
|
7
7
|
negotiateHelper(privateChannel: any, params?: {}): Promise<string>;
|
|
8
8
|
requestId(): any;
|
|
9
9
|
subscribe(url: any, messageHash: any, subscriptionHash: any, subscription: any, params?: {}): Promise<any>;
|
|
@@ -35,12 +35,12 @@ export default class kucoinfutures extends kucoinfuturesRest {
|
|
|
35
35
|
handleBalance(client: Client, message: any): void;
|
|
36
36
|
handleBalanceSubscription(client: Client, message: any, subscription: any): void;
|
|
37
37
|
fetchBalanceSnapshot(client: any, message: any): Promise<void>;
|
|
38
|
-
handleSubject(client: Client, message: any):
|
|
38
|
+
handleSubject(client: Client, message: any): void;
|
|
39
39
|
ping(client: any): {
|
|
40
40
|
id: any;
|
|
41
41
|
type: string;
|
|
42
42
|
};
|
|
43
43
|
handlePong(client: Client, message: any): any;
|
|
44
44
|
handleErrorMessage(client: Client, message: any): void;
|
|
45
|
-
handleMessage(client: Client, message: any):
|
|
45
|
+
handleMessage(client: Client, message: any): void;
|
|
46
46
|
}
|
|
@@ -60,19 +60,20 @@ export default class kucoinfutures extends kucoinfuturesRest {
|
|
|
60
60
|
},
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
negotiate(privateChannel, params = {}) {
|
|
63
|
+
async negotiate(privateChannel, params = {}) {
|
|
64
64
|
const connectId = privateChannel ? 'private' : 'public';
|
|
65
65
|
const urls = this.safeValue(this.options, 'urls', {});
|
|
66
66
|
const spawaned = this.safeValue(urls, connectId);
|
|
67
67
|
if (spawaned !== undefined) {
|
|
68
|
-
return spawaned;
|
|
68
|
+
return await spawaned;
|
|
69
69
|
}
|
|
70
70
|
// we store an awaitable to the url
|
|
71
71
|
// so that multiple calls don't asynchronously
|
|
72
72
|
// fetch different urls and overwrite each other
|
|
73
|
-
urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params);
|
|
73
|
+
urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params); // we have to wait here otherwsie in c# will not work
|
|
74
74
|
this.options['urls'] = urls;
|
|
75
|
-
|
|
75
|
+
const future = urls[connectId];
|
|
76
|
+
return await future;
|
|
76
77
|
}
|
|
77
78
|
async negotiateHelper(privateChannel, params = {}) {
|
|
78
79
|
let response = undefined;
|
|
@@ -585,6 +586,9 @@ export default class kucoinfutures extends kucoinfuturesRest {
|
|
|
585
586
|
const messageHash = 'orderbook:' + symbol;
|
|
586
587
|
const storedOrderBook = this.safeValue(this.orderbooks, symbol);
|
|
587
588
|
const nonce = this.safeInteger(storedOrderBook, 'nonce');
|
|
589
|
+
if (storedOrderBook === undefined) {
|
|
590
|
+
return; // this shouldn't be needed, but for some reason sometimes this runs before handleOrderBookSubscription in c#
|
|
591
|
+
}
|
|
588
592
|
const deltaEnd = this.safeInteger(data, 'sequence');
|
|
589
593
|
if (nonce === undefined) {
|
|
590
594
|
const cacheLength = storedOrderBook.cache.length;
|
|
@@ -603,7 +607,7 @@ export default class kucoinfutures extends kucoinfuturesRest {
|
|
|
603
607
|
const limit = this.safeInteger(subscription, 'limit');
|
|
604
608
|
const snapshotDelay = this.handleOption('watchOrderBook', 'snapshotDelay', 5);
|
|
605
609
|
if (cacheLength === snapshotDelay) {
|
|
606
|
-
this.spawn(this.loadOrderBook, client, messageHash, symbol, limit);
|
|
610
|
+
this.spawn(this.loadOrderBook, client, messageHash, symbol, limit, {});
|
|
607
611
|
}
|
|
608
612
|
storedOrderBook.cache.push(data);
|
|
609
613
|
return;
|
|
@@ -931,11 +935,8 @@ export default class kucoinfutures extends kucoinfuturesRest {
|
|
|
931
935
|
'position.adjustRiskLimit': this.handlePosition,
|
|
932
936
|
};
|
|
933
937
|
const method = this.safeValue(methods, subject);
|
|
934
|
-
if (method
|
|
935
|
-
|
|
936
|
-
}
|
|
937
|
-
else {
|
|
938
|
-
return method.call(this, client, message);
|
|
938
|
+
if (method !== undefined) {
|
|
939
|
+
method.call(this, client, message);
|
|
939
940
|
}
|
|
940
941
|
}
|
|
941
942
|
ping(client) {
|
|
@@ -984,7 +985,7 @@ export default class kucoinfutures extends kucoinfuturesRest {
|
|
|
984
985
|
};
|
|
985
986
|
const method = this.safeValue(methods, type);
|
|
986
987
|
if (method !== undefined) {
|
|
987
|
-
|
|
988
|
+
method.call(this, client, message);
|
|
988
989
|
}
|
|
989
990
|
}
|
|
990
991
|
}
|
package/js/src/pro/lbank.d.ts
CHANGED
|
@@ -24,6 +24,6 @@ export default class lbank extends lbankRest {
|
|
|
24
24
|
handleOrderBook(client: any, message: any): void;
|
|
25
25
|
handleErrorMessage(client: any, message: any): void;
|
|
26
26
|
handlePing(client: Client, message: any): Promise<void>;
|
|
27
|
-
handleMessage(client: any, message: any):
|
|
27
|
+
handleMessage(client: any, message: any): void;
|
|
28
28
|
authenticate(params?: {}): Promise<any>;
|
|
29
29
|
}
|
package/js/src/pro/lbank.js
CHANGED
|
@@ -779,17 +779,17 @@ export default class lbank extends lbankRest {
|
|
|
779
779
|
const orderBook = this.safeValue(message, 'depth', message);
|
|
780
780
|
const datetime = this.safeString(message, 'TS');
|
|
781
781
|
const timestamp = this.parse8601(datetime);
|
|
782
|
-
let
|
|
783
|
-
if (
|
|
784
|
-
|
|
785
|
-
this.orderbooks[symbol] =
|
|
782
|
+
let orderbook = this.safeValue(this.orderbooks, symbol);
|
|
783
|
+
if (orderbook === undefined) {
|
|
784
|
+
orderbook = this.orderBook({});
|
|
785
|
+
this.orderbooks[symbol] = orderbook;
|
|
786
786
|
}
|
|
787
787
|
const snapshot = this.parseOrderBook(orderBook, symbol, timestamp, 'bids', 'asks');
|
|
788
|
-
|
|
788
|
+
orderbook.reset(snapshot);
|
|
789
789
|
let messageHash = 'orderbook:' + symbol;
|
|
790
|
-
client.resolve(
|
|
790
|
+
client.resolve(orderbook, messageHash);
|
|
791
791
|
messageHash = 'fetchOrderbook:' + symbol;
|
|
792
|
-
client.resolve(
|
|
792
|
+
client.resolve(orderbook, messageHash);
|
|
793
793
|
}
|
|
794
794
|
handleErrorMessage(client, message) {
|
|
795
795
|
//
|
|
@@ -817,7 +817,8 @@ export default class lbank extends lbankRest {
|
|
|
817
817
|
handleMessage(client, message) {
|
|
818
818
|
const status = this.safeString(message, 'status');
|
|
819
819
|
if (status === 'error') {
|
|
820
|
-
|
|
820
|
+
this.handleErrorMessage(client, message);
|
|
821
|
+
return;
|
|
821
822
|
}
|
|
822
823
|
const type = this.safeString2(message, 'type', 'action');
|
|
823
824
|
if (type === 'ping') {
|
|
@@ -833,9 +834,8 @@ export default class lbank extends lbankRest {
|
|
|
833
834
|
};
|
|
834
835
|
const handler = this.safeValue(handlers, type);
|
|
835
836
|
if (handler !== undefined) {
|
|
836
|
-
|
|
837
|
+
handler.call(this, client, message);
|
|
837
838
|
}
|
|
838
|
-
return message;
|
|
839
839
|
}
|
|
840
840
|
async authenticate(params = {}) {
|
|
841
841
|
// when we implement more private streams, we need to refactor the authentication
|
package/js/src/pro/luno.d.ts
CHANGED
|
@@ -18,6 +18,6 @@ export default class luno extends lunoRest {
|
|
|
18
18
|
};
|
|
19
19
|
parseBidsAsks(bidasks: any, priceKey?: IndexType, amountKey?: IndexType, thirdKey?: IndexType): any[];
|
|
20
20
|
customParseBidAsk(bidask: any, priceKey?: IndexType, amountKey?: IndexType, thirdKey?: IndexType): number[];
|
|
21
|
-
handleDelta(orderbook: any, message: any):
|
|
22
|
-
handleMessage(client: Client, message: any):
|
|
21
|
+
handleDelta(orderbook: any, message: any): void;
|
|
22
|
+
handleMessage(client: Client, message: any): void;
|
|
23
23
|
}
|
package/js/src/pro/luno.js
CHANGED
|
@@ -194,24 +194,24 @@ export default class luno extends lunoRest {
|
|
|
194
194
|
const symbol = subscription['symbol'];
|
|
195
195
|
const messageHash = 'orderbook:' + symbol;
|
|
196
196
|
const timestamp = this.safeString(message, 'timestamp');
|
|
197
|
-
let
|
|
198
|
-
if (
|
|
199
|
-
|
|
200
|
-
this.orderbooks[symbol] =
|
|
197
|
+
let orderbook = this.safeValue(this.orderbooks, symbol);
|
|
198
|
+
if (orderbook === undefined) {
|
|
199
|
+
orderbook = this.indexedOrderBook({});
|
|
200
|
+
this.orderbooks[symbol] = orderbook;
|
|
201
201
|
}
|
|
202
202
|
const asks = this.safeValue(message, 'asks');
|
|
203
203
|
if (asks !== undefined) {
|
|
204
204
|
const snapshot = this.customParseOrderBook(message, symbol, timestamp, 'bids', 'asks', 'price', 'volume', 'id');
|
|
205
|
-
|
|
205
|
+
orderbook.reset(snapshot);
|
|
206
206
|
}
|
|
207
207
|
else {
|
|
208
|
-
this.handleDelta(
|
|
209
|
-
|
|
210
|
-
|
|
208
|
+
this.handleDelta(orderbook, message);
|
|
209
|
+
orderbook['timestamp'] = timestamp;
|
|
210
|
+
orderbook['datetime'] = this.iso8601(timestamp);
|
|
211
211
|
}
|
|
212
212
|
const nonce = this.safeInteger(message, 'sequence');
|
|
213
|
-
|
|
214
|
-
client.resolve(
|
|
213
|
+
orderbook['nonce'] = nonce;
|
|
214
|
+
client.resolve(orderbook, messageHash);
|
|
215
215
|
}
|
|
216
216
|
customParseOrderBook(orderbook, symbol, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 'price', amountKey = 'volume', countOrIdKey = 2) {
|
|
217
217
|
const bids = this.parseBidsAsks(this.safeValue(orderbook, bidsKey, []), priceKey, amountKey, countOrIdKey);
|
|
@@ -303,10 +303,9 @@ export default class luno extends lunoRest {
|
|
|
303
303
|
const deleteUpdate = this.safeValue(message, 'delete_update');
|
|
304
304
|
if (deleteUpdate !== undefined) {
|
|
305
305
|
const orderId = this.safeString(deleteUpdate, 'order_id');
|
|
306
|
-
asksOrderSide.storeArray(0, 0, orderId);
|
|
307
|
-
bidsOrderSide.storeArray(0, 0, orderId);
|
|
306
|
+
asksOrderSide.storeArray([0, 0, orderId]);
|
|
307
|
+
bidsOrderSide.storeArray([0, 0, orderId]);
|
|
308
308
|
}
|
|
309
|
-
return message;
|
|
310
309
|
}
|
|
311
310
|
handleMessage(client, message) {
|
|
312
311
|
if (message === '') {
|
|
@@ -318,6 +317,5 @@ export default class luno extends lunoRest {
|
|
|
318
317
|
const handler = handlers[j];
|
|
319
318
|
handler.call(this, client, message, subscriptions[0]);
|
|
320
319
|
}
|
|
321
|
-
return message;
|
|
322
320
|
}
|
|
323
321
|
}
|
package/js/src/pro/mexc.d.ts
CHANGED
|
@@ -35,8 +35,8 @@ export default class mexc extends mexcRest {
|
|
|
35
35
|
authenticate(subscriptionHash: any, params?: {}): Promise<string>;
|
|
36
36
|
keepAliveListenKey(listenKey: any, params?: {}): Promise<void>;
|
|
37
37
|
handlePong(client: Client, message: any): any;
|
|
38
|
-
handleSubscriptionStatus(client: Client, message: any):
|
|
39
|
-
handleMessage(client: Client, message: any):
|
|
38
|
+
handleSubscriptionStatus(client: Client, message: any): void;
|
|
39
|
+
handleMessage(client: Client, message: any): void;
|
|
40
40
|
ping(client: any): {
|
|
41
41
|
method: string;
|
|
42
42
|
};
|
package/js/src/pro/mexc.js
CHANGED
|
@@ -1109,7 +1109,7 @@ export default class mexc extends mexcRest {
|
|
|
1109
1109
|
//
|
|
1110
1110
|
const msg = this.safeString(message, 'msg');
|
|
1111
1111
|
if (msg === 'PONG') {
|
|
1112
|
-
|
|
1112
|
+
this.handlePong(client, message);
|
|
1113
1113
|
}
|
|
1114
1114
|
else if (msg.indexOf('@') > -1) {
|
|
1115
1115
|
const parts = msg.split('@');
|
|
@@ -1132,7 +1132,8 @@ export default class mexc extends mexcRest {
|
|
|
1132
1132
|
return;
|
|
1133
1133
|
}
|
|
1134
1134
|
if ('msg' in message) {
|
|
1135
|
-
|
|
1135
|
+
this.handleSubscriptionStatus(client, message);
|
|
1136
|
+
return;
|
|
1136
1137
|
}
|
|
1137
1138
|
const c = this.safeString(message, 'c');
|
|
1138
1139
|
let channel = undefined;
|
package/js/src/pro/ndax.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ export default class ndax extends ndaxRest {
|
|
|
11
11
|
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
12
12
|
handleOHLCV(client: Client, message: any): void;
|
|
13
13
|
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
14
|
-
handleOrderBook(client: Client, message: any):
|
|
14
|
+
handleOrderBook(client: Client, message: any): void;
|
|
15
15
|
handleOrderBookSubscription(client: Client, message: any, subscription: any): void;
|
|
16
|
-
handleSubscriptionStatus(client: Client, message: any):
|
|
17
|
-
handleMessage(client: Client, message: any):
|
|
16
|
+
handleSubscriptionStatus(client: Client, message: any): void;
|
|
17
|
+
handleMessage(client: Client, message: any): void;
|
|
18
18
|
}
|
package/js/src/pro/ndax.js
CHANGED
|
@@ -388,13 +388,13 @@ export default class ndax extends ndaxRest {
|
|
|
388
388
|
const firstBidAsk = this.safeValue(payload, 0, []);
|
|
389
389
|
const marketId = this.safeString(firstBidAsk, 7);
|
|
390
390
|
if (marketId === undefined) {
|
|
391
|
-
return
|
|
391
|
+
return;
|
|
392
392
|
}
|
|
393
393
|
const market = this.safeMarket(marketId);
|
|
394
394
|
const symbol = market['symbol'];
|
|
395
395
|
const orderbook = this.safeValue(this.orderbooks, symbol);
|
|
396
396
|
if (orderbook === undefined) {
|
|
397
|
-
return
|
|
397
|
+
return;
|
|
398
398
|
}
|
|
399
399
|
let timestamp = undefined;
|
|
400
400
|
let nonce = undefined;
|
|
@@ -488,11 +488,8 @@ export default class ndax extends ndaxRest {
|
|
|
488
488
|
const subscription = this.safeValue(subscriptionsById, id);
|
|
489
489
|
if (subscription !== undefined) {
|
|
490
490
|
const method = this.safeValue(subscription, 'method');
|
|
491
|
-
if (method
|
|
492
|
-
|
|
493
|
-
}
|
|
494
|
-
else {
|
|
495
|
-
return method.call(this, client, message, subscription);
|
|
491
|
+
if (method !== undefined) {
|
|
492
|
+
method.call(this, client, message, subscription);
|
|
496
493
|
}
|
|
497
494
|
}
|
|
498
495
|
}
|
|
@@ -521,7 +518,7 @@ export default class ndax extends ndaxRest {
|
|
|
521
518
|
//
|
|
522
519
|
const payload = this.safeString(message, 'o');
|
|
523
520
|
if (payload === undefined) {
|
|
524
|
-
return
|
|
521
|
+
return;
|
|
525
522
|
}
|
|
526
523
|
message['o'] = JSON.parse(payload);
|
|
527
524
|
const methods = {
|
|
@@ -536,11 +533,8 @@ export default class ndax extends ndaxRest {
|
|
|
536
533
|
};
|
|
537
534
|
const event = this.safeString(message, 'n');
|
|
538
535
|
const method = this.safeValue(methods, event);
|
|
539
|
-
if (method
|
|
540
|
-
|
|
541
|
-
}
|
|
542
|
-
else {
|
|
543
|
-
return method.call(this, client, message);
|
|
536
|
+
if (method !== undefined) {
|
|
537
|
+
method.call(this, client, message);
|
|
544
538
|
}
|
|
545
539
|
}
|
|
546
540
|
}
|
package/js/src/pro/okcoin.d.ts
CHANGED
|
@@ -26,5 +26,5 @@ export default class okcoin extends okcoinRest {
|
|
|
26
26
|
ping(client: any): string;
|
|
27
27
|
handlePong(client: Client, message: any): any;
|
|
28
28
|
handleErrorMessage(client: Client, message: any): any;
|
|
29
|
-
handleMessage(client: Client, message: any):
|
|
29
|
+
handleMessage(client: Client, message: any): void;
|
|
30
30
|
}
|