ccxt 4.2.31 → 4.2.34
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 +639 -483
- 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 +54 -20
- package/dist/cjs/src/bigone.js +21 -1
- package/dist/cjs/src/binance.js +5 -4
- package/dist/cjs/src/bingx.js +4 -3
- package/dist/cjs/src/bit2c.js +12 -0
- 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/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 +14 -10
- 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 +87 -78
- package/js/src/base/Exchange.js +54 -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 +5 -4
- 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/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/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 +14 -10
- 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
package/js/src/pro/okcoin.js
CHANGED
|
@@ -478,7 +478,7 @@ export default class okcoin extends okcoinRest {
|
|
|
478
478
|
};
|
|
479
479
|
this.spawn(this.watch, url, messageHash, request, messageHash, future);
|
|
480
480
|
}
|
|
481
|
-
return
|
|
481
|
+
return future;
|
|
482
482
|
}
|
|
483
483
|
async watchBalance(params = {}) {
|
|
484
484
|
/**
|
|
@@ -711,7 +711,8 @@ export default class okcoin extends okcoinRest {
|
|
|
711
711
|
// }
|
|
712
712
|
//
|
|
713
713
|
if (message === 'pong') {
|
|
714
|
-
|
|
714
|
+
this.handlePong(client, message);
|
|
715
|
+
return;
|
|
715
716
|
}
|
|
716
717
|
const table = this.safeString(message, 'table');
|
|
717
718
|
if (table === undefined) {
|
|
@@ -724,11 +725,8 @@ export default class okcoin extends okcoinRest {
|
|
|
724
725
|
'subscribe': this.handleSubscriptionStatus,
|
|
725
726
|
};
|
|
726
727
|
const method = this.safeValue(methods, event);
|
|
727
|
-
if (method
|
|
728
|
-
|
|
729
|
-
}
|
|
730
|
-
else {
|
|
731
|
-
return method.call(this, client, message);
|
|
728
|
+
if (method !== undefined) {
|
|
729
|
+
method.call(this, client, message);
|
|
732
730
|
}
|
|
733
731
|
}
|
|
734
732
|
}
|
|
@@ -750,11 +748,8 @@ export default class okcoin extends okcoinRest {
|
|
|
750
748
|
if (name.indexOf('candle') >= 0) {
|
|
751
749
|
method = this.handleOHLCV;
|
|
752
750
|
}
|
|
753
|
-
if (method
|
|
754
|
-
|
|
755
|
-
}
|
|
756
|
-
else {
|
|
757
|
-
return method.call(this, client, message);
|
|
751
|
+
if (method !== undefined) {
|
|
752
|
+
method.call(this, client, message);
|
|
758
753
|
}
|
|
759
754
|
}
|
|
760
755
|
}
|
package/js/src/pro/okx.d.ts
CHANGED
|
@@ -43,5 +43,5 @@ export default class okx extends okxRest {
|
|
|
43
43
|
ping(client: any): string;
|
|
44
44
|
handlePong(client: Client, message: any): any;
|
|
45
45
|
handleErrorMessage(client: Client, message: any): any;
|
|
46
|
-
handleMessage(client: Client, message: any):
|
|
46
|
+
handleMessage(client: Client, message: any): void;
|
|
47
47
|
}
|
package/js/src/pro/okx.js
CHANGED
|
@@ -758,7 +758,7 @@ export default class okx extends okxRest {
|
|
|
758
758
|
const message = this.extend(request, params);
|
|
759
759
|
this.watch(url, messageHash, message, messageHash);
|
|
760
760
|
}
|
|
761
|
-
return future;
|
|
761
|
+
return await future;
|
|
762
762
|
}
|
|
763
763
|
async watchBalance(params = {}) {
|
|
764
764
|
/**
|
|
@@ -1564,7 +1564,8 @@ export default class okx extends okxRest {
|
|
|
1564
1564
|
//
|
|
1565
1565
|
//
|
|
1566
1566
|
if (message === 'pong') {
|
|
1567
|
-
|
|
1567
|
+
this.handlePong(client, message);
|
|
1568
|
+
return;
|
|
1568
1569
|
}
|
|
1569
1570
|
// const table = this.safeString (message, 'table');
|
|
1570
1571
|
// if (table === undefined) {
|
|
@@ -1583,11 +1584,8 @@ export default class okx extends okxRest {
|
|
|
1583
1584
|
'mass-cancel': this.handleCancelAllOrders,
|
|
1584
1585
|
};
|
|
1585
1586
|
const method = this.safeValue(methods, event);
|
|
1586
|
-
if (method
|
|
1587
|
-
|
|
1588
|
-
}
|
|
1589
|
-
else {
|
|
1590
|
-
return method.call(this, client, message);
|
|
1587
|
+
if (method !== undefined) {
|
|
1588
|
+
method.call(this, client, message);
|
|
1591
1589
|
}
|
|
1592
1590
|
}
|
|
1593
1591
|
else {
|
|
@@ -1615,12 +1613,9 @@ export default class okx extends okxRest {
|
|
|
1615
1613
|
if (channel.indexOf('candle') === 0) {
|
|
1616
1614
|
this.handleOHLCV(client, message);
|
|
1617
1615
|
}
|
|
1618
|
-
else {
|
|
1619
|
-
return message;
|
|
1620
|
-
}
|
|
1621
1616
|
}
|
|
1622
1617
|
else {
|
|
1623
|
-
|
|
1618
|
+
method.call(this, client, message);
|
|
1624
1619
|
}
|
|
1625
1620
|
}
|
|
1626
1621
|
}
|
|
@@ -28,7 +28,7 @@ export default class onetrading extends onetradingRest {
|
|
|
28
28
|
handleSubscriptions(client: Client, message: any): any;
|
|
29
29
|
handleHeartbeat(client: Client, message: any): any;
|
|
30
30
|
handleErrorMessage(client: Client, message: any): void;
|
|
31
|
-
handleMessage(client: Client, message: any):
|
|
31
|
+
handleMessage(client: Client, message: any): void;
|
|
32
32
|
handlePricePointUpdates(client: Client, message: any): any;
|
|
33
33
|
handleAuthenticationMessage(client: Client, message: any): any;
|
|
34
34
|
watchMany(messageHash: any, request: any, subscriptionHash: any, symbols?: Strings, params?: {}): Promise<any>;
|
package/js/src/pro/onetrading.js
CHANGED
|
@@ -365,26 +365,26 @@ export default class onetrading extends onetradingRest {
|
|
|
365
365
|
const dateTime = this.safeString(message, 'time');
|
|
366
366
|
const timestamp = this.parse8601(dateTime);
|
|
367
367
|
const channel = 'book:' + symbol;
|
|
368
|
-
let
|
|
369
|
-
if (
|
|
370
|
-
|
|
368
|
+
let orderbook = this.safeValue(this.orderbooks, symbol);
|
|
369
|
+
if (orderbook === undefined) {
|
|
370
|
+
orderbook = this.orderBook({});
|
|
371
371
|
}
|
|
372
372
|
if (type === 'ORDER_BOOK_SNAPSHOT') {
|
|
373
373
|
const snapshot = this.parseOrderBook(message, symbol, timestamp, 'bids', 'asks');
|
|
374
|
-
|
|
374
|
+
orderbook.reset(snapshot);
|
|
375
375
|
}
|
|
376
376
|
else if (type === 'ORDER_BOOK_UPDATE') {
|
|
377
377
|
const changes = this.safeValue(message, 'changes', []);
|
|
378
|
-
this.handleDeltas(
|
|
378
|
+
this.handleDeltas(orderbook, changes);
|
|
379
379
|
}
|
|
380
380
|
else {
|
|
381
381
|
throw new NotSupported(this.id + ' watchOrderBook() did not recognize message type ' + type);
|
|
382
382
|
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
this.orderbooks[symbol] =
|
|
387
|
-
client.resolve(
|
|
383
|
+
orderbook['nonce'] = timestamp;
|
|
384
|
+
orderbook['timestamp'] = timestamp;
|
|
385
|
+
orderbook['datetime'] = this.iso8601(timestamp);
|
|
386
|
+
this.orderbooks[symbol] = orderbook;
|
|
387
|
+
client.resolve(orderbook, channel);
|
|
388
388
|
}
|
|
389
389
|
handleDelta(orderbook, delta) {
|
|
390
390
|
//
|
|
@@ -970,13 +970,14 @@ export default class onetrading extends onetradingRest {
|
|
|
970
970
|
if (updateType === 'ORDER_CLOSED' && filled === 0) {
|
|
971
971
|
status = 'canceled';
|
|
972
972
|
}
|
|
973
|
-
|
|
973
|
+
const orderObject = {
|
|
974
974
|
'id': orderId,
|
|
975
975
|
'symbol': symbol,
|
|
976
976
|
'status': status,
|
|
977
977
|
'timestamp': this.parse8601(datetime),
|
|
978
978
|
'datetime': datetime,
|
|
979
|
-
}
|
|
979
|
+
};
|
|
980
|
+
orders.append(orderObject);
|
|
980
981
|
}
|
|
981
982
|
else {
|
|
982
983
|
const parsed = this.parseOrder(update);
|
|
@@ -1213,7 +1214,8 @@ export default class onetrading extends onetradingRest {
|
|
|
1213
1214
|
handleMessage(client, message) {
|
|
1214
1215
|
const error = this.safeValue(message, 'error');
|
|
1215
1216
|
if (error !== undefined) {
|
|
1216
|
-
|
|
1217
|
+
this.handleErrorMessage(client, message);
|
|
1218
|
+
return;
|
|
1217
1219
|
}
|
|
1218
1220
|
const type = this.safeValue(message, 'type');
|
|
1219
1221
|
const handlers = {
|
|
@@ -1244,9 +1246,8 @@ export default class onetrading extends onetradingRest {
|
|
|
1244
1246
|
};
|
|
1245
1247
|
const handler = this.safeValue(handlers, type);
|
|
1246
1248
|
if (handler !== undefined) {
|
|
1247
|
-
|
|
1249
|
+
handler.call(this, client, message);
|
|
1248
1250
|
}
|
|
1249
|
-
throw new NotSupported(this.id + ' no handler found for this message ' + this.json(message));
|
|
1250
1251
|
}
|
|
1251
1252
|
handlePricePointUpdates(client, message) {
|
|
1252
1253
|
//
|
package/js/src/pro/p2b.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export default class p2b extends p2bRest {
|
|
|
12
12
|
handleTrade(client: Client, message: any): any;
|
|
13
13
|
handleTicker(client: Client, message: any): any;
|
|
14
14
|
handleOrderBook(client: Client, message: any): void;
|
|
15
|
-
handleMessage(client: Client, message: any):
|
|
15
|
+
handleMessage(client: Client, message: any): void;
|
|
16
16
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
17
17
|
ping(client: any): {
|
|
18
18
|
method: string;
|
package/js/src/pro/p2b.js
CHANGED
|
@@ -365,7 +365,8 @@ export default class p2b extends p2bRest {
|
|
|
365
365
|
const bid = this.safeValue(bids, i);
|
|
366
366
|
const price = this.safeNumber(bid, 0);
|
|
367
367
|
const amount = this.safeNumber(bid, 1);
|
|
368
|
-
orderbook['bids']
|
|
368
|
+
const bookSide = orderbook['bids'];
|
|
369
|
+
bookSide.store(price, amount);
|
|
369
370
|
}
|
|
370
371
|
}
|
|
371
372
|
if (asks !== undefined) {
|
|
@@ -373,7 +374,8 @@ export default class p2b extends p2bRest {
|
|
|
373
374
|
const ask = this.safeValue(asks, i);
|
|
374
375
|
const price = this.safeNumber(ask, 0);
|
|
375
376
|
const amount = this.safeNumber(ask, 1);
|
|
376
|
-
orderbook['asks']
|
|
377
|
+
const bookside = orderbook['asks'];
|
|
378
|
+
bookside.store(price, amount);
|
|
377
379
|
}
|
|
378
380
|
}
|
|
379
381
|
orderbook['symbol'] = symbol;
|
|
@@ -398,7 +400,7 @@ export default class p2b extends p2bRest {
|
|
|
398
400
|
};
|
|
399
401
|
const endpoint = this.safeValue(methods, method);
|
|
400
402
|
if (endpoint !== undefined) {
|
|
401
|
-
|
|
403
|
+
endpoint.call(this, client, message);
|
|
402
404
|
}
|
|
403
405
|
}
|
|
404
406
|
handleErrorMessage(client, message) {
|
package/js/src/pro/phemex.d.ts
CHANGED
|
@@ -61,15 +61,15 @@ export default class phemex extends phemexRest {
|
|
|
61
61
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
62
62
|
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
63
63
|
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
customHandleDelta(bookside: any, delta: any, market?: any): void;
|
|
65
|
+
customHandleDeltas(bookside: any, deltas: any, market?: any): void;
|
|
66
66
|
handleOrderBook(client: Client, message: any): void;
|
|
67
67
|
watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
68
68
|
handleMyTrades(client: Client, message: any): void;
|
|
69
69
|
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
70
70
|
handleOrders(client: Client, message: any): void;
|
|
71
71
|
parseWSSwapOrder(order: any, market?: any): Order;
|
|
72
|
-
handleMessage(client: Client, message: any):
|
|
72
|
+
handleMessage(client: Client, message: any): void;
|
|
73
73
|
handleAuthenticate(client: Client, message: any): void;
|
|
74
74
|
subscribePrivate(type: any, messageHash: any, params?: {}): Promise<any>;
|
|
75
75
|
authenticate(params?: {}): Promise<any>;
|
package/js/src/pro/phemex.js
CHANGED
|
@@ -633,13 +633,13 @@ export default class phemex extends phemexRest {
|
|
|
633
633
|
}
|
|
634
634
|
return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
|
|
635
635
|
}
|
|
636
|
-
|
|
636
|
+
customHandleDelta(bookside, delta, market = undefined) {
|
|
637
637
|
const bidAsk = this.customParseBidAsk(delta, 0, 1, market);
|
|
638
638
|
bookside.storeArray(bidAsk);
|
|
639
639
|
}
|
|
640
|
-
|
|
640
|
+
customHandleDeltas(bookside, deltas, market = undefined) {
|
|
641
641
|
for (let i = 0; i < deltas.length; i++) {
|
|
642
|
-
this.
|
|
642
|
+
this.customHandleDelta(bookside, deltas[i], market);
|
|
643
643
|
}
|
|
644
644
|
}
|
|
645
645
|
handleOrderBook(client, message) {
|
|
@@ -709,8 +709,8 @@ export default class phemex extends phemexRest {
|
|
|
709
709
|
const changes = this.safeValue2(message, 'book', 'orderbook_p', {});
|
|
710
710
|
const asks = this.safeValue(changes, 'asks', []);
|
|
711
711
|
const bids = this.safeValue(changes, 'bids', []);
|
|
712
|
-
this.
|
|
713
|
-
this.
|
|
712
|
+
this.customHandleDeltas(orderbook['asks'], asks, market);
|
|
713
|
+
this.customHandleDeltas(orderbook['bids'], bids, market);
|
|
714
714
|
orderbook['nonce'] = nonce;
|
|
715
715
|
orderbook['timestamp'] = timestamp;
|
|
716
716
|
orderbook['datetime'] = this.iso8601(timestamp);
|
|
@@ -1406,21 +1406,26 @@ export default class phemex extends phemexRest {
|
|
|
1406
1406
|
const method = client.subscriptions[id];
|
|
1407
1407
|
delete client.subscriptions[id];
|
|
1408
1408
|
if (method !== true) {
|
|
1409
|
-
|
|
1409
|
+
method.call(this, client, message);
|
|
1410
|
+
return;
|
|
1410
1411
|
}
|
|
1411
1412
|
}
|
|
1412
1413
|
const methodName = this.safeString(message, 'method', '');
|
|
1413
1414
|
if (('market24h' in message) || ('spot_market24h' in message) || (methodName.indexOf('perp_market24h_pack_p') >= 0)) {
|
|
1414
|
-
|
|
1415
|
+
this.handleTicker(client, message);
|
|
1416
|
+
return;
|
|
1415
1417
|
}
|
|
1416
1418
|
else if (('trades' in message) || ('trades_p' in message)) {
|
|
1417
|
-
|
|
1419
|
+
this.handleTrades(client, message);
|
|
1420
|
+
return;
|
|
1418
1421
|
}
|
|
1419
1422
|
else if (('kline' in message) || ('kline_p' in message)) {
|
|
1420
|
-
|
|
1423
|
+
this.handleOHLCV(client, message);
|
|
1424
|
+
return;
|
|
1421
1425
|
}
|
|
1422
1426
|
else if (('book' in message) || ('orderbook_p' in message)) {
|
|
1423
|
-
|
|
1427
|
+
this.handleOrderBook(client, message);
|
|
1428
|
+
return;
|
|
1424
1429
|
}
|
|
1425
1430
|
if (('orders' in message) || ('orders_p' in message)) {
|
|
1426
1431
|
const orders = this.safeValue2(message, 'orders', 'orders_p', {});
|
|
@@ -1507,6 +1512,6 @@ export default class phemex extends phemexRest {
|
|
|
1507
1512
|
future = this.watch(url, messageHash, message);
|
|
1508
1513
|
client.subscriptions[messageHash] = future;
|
|
1509
1514
|
}
|
|
1510
|
-
return
|
|
1515
|
+
return future;
|
|
1511
1516
|
}
|
|
1512
1517
|
}
|
package/js/src/pro/poloniex.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export default class poloniex extends poloniexRest {
|
|
|
33
33
|
parseWsBalance(response: any): Balances;
|
|
34
34
|
handleMyTrades(client: Client, parsedTrade: any): void;
|
|
35
35
|
handlePong(client: Client): void;
|
|
36
|
-
handleMessage(client: Client, message: any):
|
|
36
|
+
handleMessage(client: Client, message: any): void;
|
|
37
37
|
handleErrorMessage(client: Client, message: any): boolean;
|
|
38
38
|
handleAuthenticate(client: Client, message: any): any;
|
|
39
39
|
ping(client: any): {
|
package/js/src/pro/poloniex.js
CHANGED
|
@@ -1042,7 +1042,8 @@ export default class poloniex extends poloniexRest {
|
|
|
1042
1042
|
const bid = this.safeValue(bids, j);
|
|
1043
1043
|
const price = this.safeNumber(bid, 0);
|
|
1044
1044
|
const amount = this.safeNumber(bid, 1);
|
|
1045
|
-
orderbook['bids']
|
|
1045
|
+
const bidsSide = orderbook['bids'];
|
|
1046
|
+
bidsSide.store(price, amount);
|
|
1046
1047
|
}
|
|
1047
1048
|
}
|
|
1048
1049
|
if (asks !== undefined) {
|
|
@@ -1050,7 +1051,8 @@ export default class poloniex extends poloniexRest {
|
|
|
1050
1051
|
const ask = this.safeValue(asks, j);
|
|
1051
1052
|
const price = this.safeNumber(ask, 0);
|
|
1052
1053
|
const amount = this.safeNumber(ask, 1);
|
|
1053
|
-
orderbook['asks']
|
|
1054
|
+
const asksSide = orderbook['asks'];
|
|
1055
|
+
asksSide.store(price, amount);
|
|
1054
1056
|
}
|
|
1055
1057
|
}
|
|
1056
1058
|
orderbook['symbol'] = symbol;
|
|
@@ -1184,14 +1186,14 @@ export default class poloniex extends poloniexRest {
|
|
|
1184
1186
|
this.handleErrorMessage(client, item);
|
|
1185
1187
|
}
|
|
1186
1188
|
else {
|
|
1187
|
-
|
|
1189
|
+
this.handleOrderRequest(client, message);
|
|
1188
1190
|
}
|
|
1189
1191
|
}
|
|
1190
1192
|
else {
|
|
1191
1193
|
const data = this.safeValue(message, 'data', []);
|
|
1192
1194
|
const dataLength = data.length;
|
|
1193
1195
|
if (dataLength > 0) {
|
|
1194
|
-
|
|
1196
|
+
method.call(this, client, message);
|
|
1195
1197
|
}
|
|
1196
1198
|
}
|
|
1197
1199
|
}
|
|
@@ -3,7 +3,7 @@ import type { Int, Str, OrderBook, Order, Trade, Ticker, Balances } from '../bas
|
|
|
3
3
|
import Client from '../base/ws/Client.js';
|
|
4
4
|
export default class poloniexfutures extends poloniexfuturesRest {
|
|
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(name: string, isPrivate: boolean, symbol?: Str, subscription?: any, params?: {}): Promise<any>;
|
|
@@ -24,7 +24,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
|
|
|
24
24
|
parseOrderStatus(status: string, type: string): string;
|
|
25
25
|
parseWsOrder(order: any, market?: any): Order;
|
|
26
26
|
handleTicker(client: Client, message: any): any;
|
|
27
|
-
handleL3OrderBook(client: Client, message: any):
|
|
27
|
+
handleL3OrderBook(client: Client, message: any): void;
|
|
28
28
|
handleLevel2(client: Client, message: any): void;
|
|
29
29
|
handleL2OrderBook(client: Client, message: any): void;
|
|
30
30
|
handeL2Snapshot(client: Client, message: any): void;
|
|
@@ -34,13 +34,13 @@ export default class poloniexfutures extends poloniexfuturesRest {
|
|
|
34
34
|
handleBalance(client: Client, message: any): any;
|
|
35
35
|
parseWsBalance(response: any): Balances;
|
|
36
36
|
handleSystemStatus(client: Client, message: any): any;
|
|
37
|
-
handleSubject(client: Client, message: any):
|
|
37
|
+
handleSubject(client: Client, message: any): void;
|
|
38
38
|
ping(client: Client): {
|
|
39
39
|
id: any;
|
|
40
40
|
type: string;
|
|
41
41
|
};
|
|
42
42
|
handlePong(client: Client, message: any): any;
|
|
43
43
|
handleErrorMessage(client: Client, message: any): void;
|
|
44
|
-
handleMessage(client: Client, message: any):
|
|
44
|
+
handleMessage(client: Client, message: any): void;
|
|
45
45
|
handleAuthenticate(client: any, message: any): any;
|
|
46
46
|
}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
5
|
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
|
6
6
|
|
|
7
|
-
'use strict';
|
|
8
7
|
// ---------------------------------------------------------------------------
|
|
9
8
|
import poloniexfuturesRest from '../poloniexfutures.js';
|
|
10
9
|
import { AuthenticationError, BadRequest, ExchangeError } from '../base/errors.js';
|
|
@@ -64,18 +63,21 @@ export default class poloniexfutures extends poloniexfuturesRest {
|
|
|
64
63
|
},
|
|
65
64
|
});
|
|
66
65
|
}
|
|
67
|
-
negotiate(privateChannel, params = {}) {
|
|
66
|
+
async negotiate(privateChannel, params = {}) {
|
|
68
67
|
const connectId = privateChannel ? 'private' : 'public';
|
|
69
68
|
const urls = this.safeValue(this.options, 'urls', {});
|
|
70
69
|
if (connectId in urls) {
|
|
71
|
-
return urls[connectId];
|
|
70
|
+
// return urls[connectId];
|
|
71
|
+
const storedFuture = urls[connectId];
|
|
72
|
+
return await storedFuture;
|
|
72
73
|
}
|
|
73
74
|
// we store an awaitable to the url
|
|
74
75
|
// so that multiple calls don't asynchronously
|
|
75
76
|
// fetch different urls and overwrite each other
|
|
76
77
|
urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params);
|
|
77
78
|
this.options['urls'] = urls;
|
|
78
|
-
|
|
79
|
+
const future = urls[connectId];
|
|
80
|
+
return await future;
|
|
79
81
|
}
|
|
80
82
|
async negotiateHelper(privateChannel, params = {}) {
|
|
81
83
|
let response = undefined;
|
|
@@ -713,7 +715,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
|
|
|
713
715
|
const messageHash = this.safeString(message, 'topic');
|
|
714
716
|
const subject = this.safeString(message, 'subject');
|
|
715
717
|
if (subject === 'received') {
|
|
716
|
-
return
|
|
718
|
+
return;
|
|
717
719
|
}
|
|
718
720
|
// At the time of writting this, there is no implementation to easily convert each order into the orderbook so raw messages are returned
|
|
719
721
|
client.resolve(message, messageHash);
|
|
@@ -732,9 +734,10 @@ export default class poloniexfutures extends poloniexfuturesRest {
|
|
|
732
734
|
const topic = this.safeString(message, 'topic');
|
|
733
735
|
const isSnapshot = topic.indexOf('Depth') >= 0;
|
|
734
736
|
if (isSnapshot) {
|
|
735
|
-
|
|
737
|
+
this.handeL2Snapshot(client, message);
|
|
738
|
+
return;
|
|
736
739
|
}
|
|
737
|
-
|
|
740
|
+
this.handleL2OrderBook(client, message);
|
|
738
741
|
}
|
|
739
742
|
handleL2OrderBook(client, message) {
|
|
740
743
|
//
|
|
@@ -771,7 +774,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
|
|
|
771
774
|
const snapshotDelay = this.handleOption('watchOrderBook', 'snapshotDelay', 5);
|
|
772
775
|
if (cacheLength === snapshotDelay) {
|
|
773
776
|
const limit = 0;
|
|
774
|
-
this.spawn(this.loadOrderBook, client, messageHash, symbol, limit);
|
|
777
|
+
this.spawn(this.loadOrderBook, client, messageHash, symbol, limit, {});
|
|
775
778
|
}
|
|
776
779
|
orderBook.cache.push(data);
|
|
777
780
|
return;
|
|
@@ -959,7 +962,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
|
|
|
959
962
|
};
|
|
960
963
|
const method = this.safeValue(methods, subject);
|
|
961
964
|
if (method !== undefined) {
|
|
962
|
-
|
|
965
|
+
method.call(this, client, message);
|
|
963
966
|
}
|
|
964
967
|
}
|
|
965
968
|
ping(client) {
|
|
@@ -995,7 +998,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
|
|
|
995
998
|
};
|
|
996
999
|
const method = this.safeValue(methods, type);
|
|
997
1000
|
if (method !== undefined) {
|
|
998
|
-
|
|
1001
|
+
method.call(this, client, message);
|
|
999
1002
|
}
|
|
1000
1003
|
}
|
|
1001
1004
|
handleAuthenticate(client, message) {
|
package/js/src/pro/probit.d.ts
CHANGED
|
@@ -22,6 +22,6 @@ export default class probit extends probitRest {
|
|
|
22
22
|
handleErrorMessage(client: Client, message: any): void;
|
|
23
23
|
handleAuthenticate(client: Client, message: any): void;
|
|
24
24
|
handleMarketData(client: Client, message: any): void;
|
|
25
|
-
handleMessage(client: Client, message: any):
|
|
25
|
+
handleMessage(client: Client, message: any): void;
|
|
26
26
|
authenticate(params?: {}): Promise<any>;
|
|
27
27
|
}
|
package/js/src/pro/probit.js
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
5
|
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
|
6
6
|
|
|
7
|
-
'use strict';
|
|
8
7
|
// ---------------------------------------------------------------------------
|
|
9
8
|
import probitRest from '../probit.js';
|
|
10
9
|
import { NotSupported, ExchangeError } from '../base/errors.js';
|
|
@@ -454,20 +453,20 @@ export default class probit extends probitRest {
|
|
|
454
453
|
const symbol = this.safeSymbol(marketId);
|
|
455
454
|
const dataBySide = this.groupBy(orderBook, 'side');
|
|
456
455
|
const messageHash = 'orderbook:' + symbol;
|
|
457
|
-
let
|
|
458
|
-
if (
|
|
459
|
-
|
|
460
|
-
this.orderbooks[symbol] =
|
|
456
|
+
let orderbook = this.safeValue(this.orderbooks, symbol);
|
|
457
|
+
if (orderbook === undefined) {
|
|
458
|
+
orderbook = this.orderBook({});
|
|
459
|
+
this.orderbooks[symbol] = orderbook;
|
|
461
460
|
}
|
|
462
461
|
const reset = this.safeBool(message, 'reset', false);
|
|
463
462
|
if (reset) {
|
|
464
463
|
const snapshot = this.parseOrderBook(dataBySide, symbol, undefined, 'buy', 'sell', 'price', 'quantity');
|
|
465
|
-
|
|
464
|
+
orderbook.reset(snapshot);
|
|
466
465
|
}
|
|
467
466
|
else {
|
|
468
|
-
this.handleDelta(
|
|
467
|
+
this.handleDelta(orderbook, dataBySide);
|
|
469
468
|
}
|
|
470
|
-
client.resolve(
|
|
469
|
+
client.resolve(orderbook, messageHash);
|
|
471
470
|
}
|
|
472
471
|
handleBidAsks(bookSide, bidAsks) {
|
|
473
472
|
for (let i = 0; i < bidAsks.length; i++) {
|
|
@@ -540,11 +539,13 @@ export default class probit extends probitRest {
|
|
|
540
539
|
//
|
|
541
540
|
const errorCode = this.safeString(message, 'errorCode');
|
|
542
541
|
if (errorCode !== undefined) {
|
|
543
|
-
|
|
542
|
+
this.handleErrorMessage(client, message);
|
|
543
|
+
return;
|
|
544
544
|
}
|
|
545
545
|
const type = this.safeString(message, 'type');
|
|
546
546
|
if (type === 'authorization') {
|
|
547
|
-
|
|
547
|
+
this.handleAuthenticate(client, message);
|
|
548
|
+
return;
|
|
548
549
|
}
|
|
549
550
|
const handlers = {
|
|
550
551
|
'marketdata': this.handleMarketData,
|
|
@@ -556,7 +557,8 @@ export default class probit extends probitRest {
|
|
|
556
557
|
const channel = this.safeString(message, 'channel');
|
|
557
558
|
const handler = this.safeValue(handlers, channel);
|
|
558
559
|
if (handler !== undefined) {
|
|
559
|
-
|
|
560
|
+
handler.call(this, client, message);
|
|
561
|
+
return;
|
|
560
562
|
}
|
|
561
563
|
const error = new NotSupported(this.id + ' handleMessage: unknown message: ' + this.json(message));
|
|
562
564
|
client.reject(error);
|
|
@@ -584,6 +586,6 @@ export default class probit extends probitRest {
|
|
|
584
586
|
future = this.watch(url, messageHash, this.extend(request, params));
|
|
585
587
|
client.subscriptions[messageHash] = future;
|
|
586
588
|
}
|
|
587
|
-
return
|
|
589
|
+
return future;
|
|
588
590
|
}
|
|
589
591
|
}
|
package/js/src/pro/upbit.js
CHANGED
|
@@ -166,15 +166,15 @@ export default class upbit extends upbitRest {
|
|
|
166
166
|
if (type === 'SNAPSHOT') {
|
|
167
167
|
this.orderbooks[symbol] = this.orderBook({}, limit);
|
|
168
168
|
}
|
|
169
|
-
const
|
|
169
|
+
const orderbook = this.orderbooks[symbol];
|
|
170
170
|
// upbit always returns a snapshot of 15 topmost entries
|
|
171
171
|
// the "REALTIME" deltas are not incremental
|
|
172
172
|
// therefore we reset the orderbook on each update
|
|
173
173
|
// and reinitialize it again with new bidasks
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
const bids =
|
|
177
|
-
const asks =
|
|
174
|
+
orderbook.reset({});
|
|
175
|
+
orderbook['symbol'] = symbol;
|
|
176
|
+
const bids = orderbook['bids'];
|
|
177
|
+
const asks = orderbook['asks'];
|
|
178
178
|
const data = this.safeValue(message, 'orderbook_units', []);
|
|
179
179
|
for (let i = 0; i < data.length; i++) {
|
|
180
180
|
const entry = data[i];
|
|
@@ -187,10 +187,10 @@ export default class upbit extends upbitRest {
|
|
|
187
187
|
}
|
|
188
188
|
const timestamp = this.safeInteger(message, 'timestamp');
|
|
189
189
|
const datetime = this.iso8601(timestamp);
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
orderbook['timestamp'] = timestamp;
|
|
191
|
+
orderbook['datetime'] = datetime;
|
|
192
192
|
const messageHash = 'orderbook:' + marketId;
|
|
193
|
-
client.resolve(
|
|
193
|
+
client.resolve(orderbook, messageHash);
|
|
194
194
|
}
|
|
195
195
|
handleTrades(client, message) {
|
|
196
196
|
// { type: "trade",
|
package/js/src/pro/wazirx.d.ts
CHANGED
|
@@ -27,6 +27,6 @@ export default class wazirx extends wazirxRest {
|
|
|
27
27
|
handleConnected(client: Client, message: any): any;
|
|
28
28
|
handleSubscribed(client: Client, message: any): any;
|
|
29
29
|
handleError(client: Client, message: any): void;
|
|
30
|
-
handleMessage(client: Client, message: any):
|
|
30
|
+
handleMessage(client: Client, message: any): void;
|
|
31
31
|
authenticate(params?: {}): Promise<string>;
|
|
32
32
|
}
|
package/js/src/pro/wazirx.js
CHANGED
|
@@ -723,7 +723,8 @@ export default class wazirx extends wazirxRest {
|
|
|
723
723
|
handleMessage(client, message) {
|
|
724
724
|
const status = this.safeString(message, 'status');
|
|
725
725
|
if (status === 'error') {
|
|
726
|
-
|
|
726
|
+
this.handleError(client, message);
|
|
727
|
+
return;
|
|
727
728
|
}
|
|
728
729
|
const event = this.safeString(message, 'event');
|
|
729
730
|
const eventHandlers = {
|
|
@@ -733,7 +734,8 @@ export default class wazirx extends wazirxRest {
|
|
|
733
734
|
};
|
|
734
735
|
const eventHandler = this.safeValue(eventHandlers, event);
|
|
735
736
|
if (eventHandler !== undefined) {
|
|
736
|
-
|
|
737
|
+
eventHandler.call(this, client, message);
|
|
738
|
+
return;
|
|
737
739
|
}
|
|
738
740
|
const stream = this.safeString(message, 'stream', '');
|
|
739
741
|
const streamHandlers = {
|
|
@@ -749,7 +751,8 @@ export default class wazirx extends wazirxRest {
|
|
|
749
751
|
for (let i = 0; i < streams.length; i++) {
|
|
750
752
|
if (this.inArray(streams[i], stream)) {
|
|
751
753
|
const handler = streamHandlers[streams[i]];
|
|
752
|
-
|
|
754
|
+
handler.call(this, client, message);
|
|
755
|
+
return;
|
|
753
756
|
}
|
|
754
757
|
}
|
|
755
758
|
throw new NotSupported(this.id + ' this message type is not supported yet. Message: ' + this.json(message));
|
package/js/src/pro/woo.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export default class woo extends wooRest {
|
|
|
18
18
|
handleTrade(client: Client, message: any): void;
|
|
19
19
|
parseWsTrade(trade: any, market?: any): Trade;
|
|
20
20
|
checkRequiredUid(error?: boolean): boolean;
|
|
21
|
-
authenticate(params?: {}): any
|
|
21
|
+
authenticate(params?: {}): Promise<any>;
|
|
22
22
|
watchPrivate(messageHash: any, message: any, params?: {}): Promise<any>;
|
|
23
23
|
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
24
24
|
parseWsOrder(order: any, market?: any): Order;
|
|
@@ -30,8 +30,8 @@ export default class woo extends wooRest {
|
|
|
30
30
|
handlePositions(client: any, message: any): void;
|
|
31
31
|
watchBalance(params?: {}): Promise<Balances>;
|
|
32
32
|
handleBalance(client: any, message: any): void;
|
|
33
|
-
handleMessage(client: Client, message: any):
|
|
34
|
-
ping(client:
|
|
33
|
+
handleMessage(client: Client, message: any): void;
|
|
34
|
+
ping(client: Client): {
|
|
35
35
|
event: string;
|
|
36
36
|
};
|
|
37
37
|
handlePing(client: Client, message: any): {
|