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
|
@@ -4,6 +4,7 @@ var poloniexfutures$1 = require('../poloniexfutures.js');
|
|
|
4
4
|
var errors = require('../base/errors.js');
|
|
5
5
|
var Cache = require('../base/ws/Cache.js');
|
|
6
6
|
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
7
8
|
// ---------------------------------------------------------------------------
|
|
8
9
|
class poloniexfutures extends poloniexfutures$1 {
|
|
9
10
|
describe() {
|
|
@@ -59,18 +60,21 @@ class poloniexfutures extends poloniexfutures$1 {
|
|
|
59
60
|
},
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
|
-
negotiate(privateChannel, params = {}) {
|
|
63
|
+
async negotiate(privateChannel, params = {}) {
|
|
63
64
|
const connectId = privateChannel ? 'private' : 'public';
|
|
64
65
|
const urls = this.safeValue(this.options, 'urls', {});
|
|
65
66
|
if (connectId in urls) {
|
|
66
|
-
return urls[connectId];
|
|
67
|
+
// return urls[connectId];
|
|
68
|
+
const storedFuture = urls[connectId];
|
|
69
|
+
return await storedFuture;
|
|
67
70
|
}
|
|
68
71
|
// we store an awaitable to the url
|
|
69
72
|
// so that multiple calls don't asynchronously
|
|
70
73
|
// fetch different urls and overwrite each other
|
|
71
74
|
urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params);
|
|
72
75
|
this.options['urls'] = urls;
|
|
73
|
-
|
|
76
|
+
const future = urls[connectId];
|
|
77
|
+
return await future;
|
|
74
78
|
}
|
|
75
79
|
async negotiateHelper(privateChannel, params = {}) {
|
|
76
80
|
let response = undefined;
|
|
@@ -708,7 +712,7 @@ class poloniexfutures extends poloniexfutures$1 {
|
|
|
708
712
|
const messageHash = this.safeString(message, 'topic');
|
|
709
713
|
const subject = this.safeString(message, 'subject');
|
|
710
714
|
if (subject === 'received') {
|
|
711
|
-
return
|
|
715
|
+
return;
|
|
712
716
|
}
|
|
713
717
|
// At the time of writting this, there is no implementation to easily convert each order into the orderbook so raw messages are returned
|
|
714
718
|
client.resolve(message, messageHash);
|
|
@@ -727,9 +731,10 @@ class poloniexfutures extends poloniexfutures$1 {
|
|
|
727
731
|
const topic = this.safeString(message, 'topic');
|
|
728
732
|
const isSnapshot = topic.indexOf('Depth') >= 0;
|
|
729
733
|
if (isSnapshot) {
|
|
730
|
-
|
|
734
|
+
this.handeL2Snapshot(client, message);
|
|
735
|
+
return;
|
|
731
736
|
}
|
|
732
|
-
|
|
737
|
+
this.handleL2OrderBook(client, message);
|
|
733
738
|
}
|
|
734
739
|
handleL2OrderBook(client, message) {
|
|
735
740
|
//
|
|
@@ -766,7 +771,7 @@ class poloniexfutures extends poloniexfutures$1 {
|
|
|
766
771
|
const snapshotDelay = this.handleOption('watchOrderBook', 'snapshotDelay', 5);
|
|
767
772
|
if (cacheLength === snapshotDelay) {
|
|
768
773
|
const limit = 0;
|
|
769
|
-
this.spawn(this.loadOrderBook, client, messageHash, symbol, limit);
|
|
774
|
+
this.spawn(this.loadOrderBook, client, messageHash, symbol, limit, {});
|
|
770
775
|
}
|
|
771
776
|
orderBook.cache.push(data);
|
|
772
777
|
return;
|
|
@@ -954,7 +959,7 @@ class poloniexfutures extends poloniexfutures$1 {
|
|
|
954
959
|
};
|
|
955
960
|
const method = this.safeValue(methods, subject);
|
|
956
961
|
if (method !== undefined) {
|
|
957
|
-
|
|
962
|
+
method.call(this, client, message);
|
|
958
963
|
}
|
|
959
964
|
}
|
|
960
965
|
ping(client) {
|
|
@@ -990,7 +995,7 @@ class poloniexfutures extends poloniexfutures$1 {
|
|
|
990
995
|
};
|
|
991
996
|
const method = this.safeValue(methods, type);
|
|
992
997
|
if (method !== undefined) {
|
|
993
|
-
|
|
998
|
+
method.call(this, client, message);
|
|
994
999
|
}
|
|
995
1000
|
}
|
|
996
1001
|
handleAuthenticate(client, message) {
|
|
@@ -4,6 +4,7 @@ var probit$1 = require('../probit.js');
|
|
|
4
4
|
var errors = require('../base/errors.js');
|
|
5
5
|
var Cache = require('../base/ws/Cache.js');
|
|
6
6
|
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
7
8
|
// ---------------------------------------------------------------------------
|
|
8
9
|
class probit extends probit$1 {
|
|
9
10
|
describe() {
|
|
@@ -449,20 +450,20 @@ class probit extends probit$1 {
|
|
|
449
450
|
const symbol = this.safeSymbol(marketId);
|
|
450
451
|
const dataBySide = this.groupBy(orderBook, 'side');
|
|
451
452
|
const messageHash = 'orderbook:' + symbol;
|
|
452
|
-
let
|
|
453
|
-
if (
|
|
454
|
-
|
|
455
|
-
this.orderbooks[symbol] =
|
|
453
|
+
let orderbook = this.safeValue(this.orderbooks, symbol);
|
|
454
|
+
if (orderbook === undefined) {
|
|
455
|
+
orderbook = this.orderBook({});
|
|
456
|
+
this.orderbooks[symbol] = orderbook;
|
|
456
457
|
}
|
|
457
458
|
const reset = this.safeBool(message, 'reset', false);
|
|
458
459
|
if (reset) {
|
|
459
460
|
const snapshot = this.parseOrderBook(dataBySide, symbol, undefined, 'buy', 'sell', 'price', 'quantity');
|
|
460
|
-
|
|
461
|
+
orderbook.reset(snapshot);
|
|
461
462
|
}
|
|
462
463
|
else {
|
|
463
|
-
this.handleDelta(
|
|
464
|
+
this.handleDelta(orderbook, dataBySide);
|
|
464
465
|
}
|
|
465
|
-
client.resolve(
|
|
466
|
+
client.resolve(orderbook, messageHash);
|
|
466
467
|
}
|
|
467
468
|
handleBidAsks(bookSide, bidAsks) {
|
|
468
469
|
for (let i = 0; i < bidAsks.length; i++) {
|
|
@@ -535,11 +536,13 @@ class probit extends probit$1 {
|
|
|
535
536
|
//
|
|
536
537
|
const errorCode = this.safeString(message, 'errorCode');
|
|
537
538
|
if (errorCode !== undefined) {
|
|
538
|
-
|
|
539
|
+
this.handleErrorMessage(client, message);
|
|
540
|
+
return;
|
|
539
541
|
}
|
|
540
542
|
const type = this.safeString(message, 'type');
|
|
541
543
|
if (type === 'authorization') {
|
|
542
|
-
|
|
544
|
+
this.handleAuthenticate(client, message);
|
|
545
|
+
return;
|
|
543
546
|
}
|
|
544
547
|
const handlers = {
|
|
545
548
|
'marketdata': this.handleMarketData,
|
|
@@ -551,7 +554,8 @@ class probit extends probit$1 {
|
|
|
551
554
|
const channel = this.safeString(message, 'channel');
|
|
552
555
|
const handler = this.safeValue(handlers, channel);
|
|
553
556
|
if (handler !== undefined) {
|
|
554
|
-
|
|
557
|
+
handler.call(this, client, message);
|
|
558
|
+
return;
|
|
555
559
|
}
|
|
556
560
|
const error = new errors.NotSupported(this.id + ' handleMessage: unknown message: ' + this.json(message));
|
|
557
561
|
client.reject(error);
|
|
@@ -579,7 +583,7 @@ class probit extends probit$1 {
|
|
|
579
583
|
future = this.watch(url, messageHash, this.extend(request, params));
|
|
580
584
|
client.subscriptions[messageHash] = future;
|
|
581
585
|
}
|
|
582
|
-
return
|
|
586
|
+
return future;
|
|
583
587
|
}
|
|
584
588
|
}
|
|
585
589
|
|
|
@@ -163,15 +163,15 @@ class upbit extends upbit$1 {
|
|
|
163
163
|
if (type === 'SNAPSHOT') {
|
|
164
164
|
this.orderbooks[symbol] = this.orderBook({}, limit);
|
|
165
165
|
}
|
|
166
|
-
const
|
|
166
|
+
const orderbook = this.orderbooks[symbol];
|
|
167
167
|
// upbit always returns a snapshot of 15 topmost entries
|
|
168
168
|
// the "REALTIME" deltas are not incremental
|
|
169
169
|
// therefore we reset the orderbook on each update
|
|
170
170
|
// and reinitialize it again with new bidasks
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
const bids =
|
|
174
|
-
const asks =
|
|
171
|
+
orderbook.reset({});
|
|
172
|
+
orderbook['symbol'] = symbol;
|
|
173
|
+
const bids = orderbook['bids'];
|
|
174
|
+
const asks = orderbook['asks'];
|
|
175
175
|
const data = this.safeValue(message, 'orderbook_units', []);
|
|
176
176
|
for (let i = 0; i < data.length; i++) {
|
|
177
177
|
const entry = data[i];
|
|
@@ -184,10 +184,10 @@ class upbit extends upbit$1 {
|
|
|
184
184
|
}
|
|
185
185
|
const timestamp = this.safeInteger(message, 'timestamp');
|
|
186
186
|
const datetime = this.iso8601(timestamp);
|
|
187
|
-
|
|
188
|
-
|
|
187
|
+
orderbook['timestamp'] = timestamp;
|
|
188
|
+
orderbook['datetime'] = datetime;
|
|
189
189
|
const messageHash = 'orderbook:' + marketId;
|
|
190
|
-
client.resolve(
|
|
190
|
+
client.resolve(orderbook, messageHash);
|
|
191
191
|
}
|
|
192
192
|
handleTrades(client, message) {
|
|
193
193
|
// { type: "trade",
|
|
@@ -720,7 +720,8 @@ class wazirx extends wazirx$1 {
|
|
|
720
720
|
handleMessage(client, message) {
|
|
721
721
|
const status = this.safeString(message, 'status');
|
|
722
722
|
if (status === 'error') {
|
|
723
|
-
|
|
723
|
+
this.handleError(client, message);
|
|
724
|
+
return;
|
|
724
725
|
}
|
|
725
726
|
const event = this.safeString(message, 'event');
|
|
726
727
|
const eventHandlers = {
|
|
@@ -730,7 +731,8 @@ class wazirx extends wazirx$1 {
|
|
|
730
731
|
};
|
|
731
732
|
const eventHandler = this.safeValue(eventHandlers, event);
|
|
732
733
|
if (eventHandler !== undefined) {
|
|
733
|
-
|
|
734
|
+
eventHandler.call(this, client, message);
|
|
735
|
+
return;
|
|
734
736
|
}
|
|
735
737
|
const stream = this.safeString(message, 'stream', '');
|
|
736
738
|
const streamHandlers = {
|
|
@@ -746,7 +748,8 @@ class wazirx extends wazirx$1 {
|
|
|
746
748
|
for (let i = 0; i < streams.length; i++) {
|
|
747
749
|
if (this.inArray(streams[i], stream)) {
|
|
748
750
|
const handler = streamHandlers[streams[i]];
|
|
749
|
-
|
|
751
|
+
handler.call(this, client, message);
|
|
752
|
+
return;
|
|
750
753
|
}
|
|
751
754
|
}
|
|
752
755
|
throw new errors.NotSupported(this.id + ' this message type is not supported yet. Message: ' + this.json(message));
|
package/dist/cjs/src/pro/woo.js
CHANGED
|
@@ -410,7 +410,7 @@ class woo extends woo$1 {
|
|
|
410
410
|
}
|
|
411
411
|
return true;
|
|
412
412
|
}
|
|
413
|
-
authenticate(params = {}) {
|
|
413
|
+
async authenticate(params = {}) {
|
|
414
414
|
this.checkRequiredCredentials();
|
|
415
415
|
const url = this.urls['api']['ws']['private'] + '/' + this.uid;
|
|
416
416
|
const client = this.client(url);
|
|
@@ -816,13 +816,15 @@ class woo extends woo$1 {
|
|
|
816
816
|
const event = this.safeString(message, 'event');
|
|
817
817
|
let method = this.safeValue(methods, event);
|
|
818
818
|
if (method !== undefined) {
|
|
819
|
-
|
|
819
|
+
method.call(this, client, message);
|
|
820
|
+
return;
|
|
820
821
|
}
|
|
821
822
|
const topic = this.safeString(message, 'topic');
|
|
822
823
|
if (topic !== undefined) {
|
|
823
824
|
method = this.safeValue(methods, topic);
|
|
824
825
|
if (method !== undefined) {
|
|
825
|
-
|
|
826
|
+
method.call(this, client, message);
|
|
827
|
+
return;
|
|
826
828
|
}
|
|
827
829
|
const splitTopic = topic.split('@');
|
|
828
830
|
const splitLength = splitTopic.length;
|
|
@@ -830,19 +832,19 @@ class woo extends woo$1 {
|
|
|
830
832
|
const name = this.safeString(splitTopic, 1);
|
|
831
833
|
method = this.safeValue(methods, name);
|
|
832
834
|
if (method !== undefined) {
|
|
833
|
-
|
|
835
|
+
method.call(this, client, message);
|
|
836
|
+
return;
|
|
834
837
|
}
|
|
835
838
|
const splitName = name.split('_');
|
|
836
839
|
const splitNameLength = splitTopic.length;
|
|
837
840
|
if (splitNameLength === 2) {
|
|
838
841
|
method = this.safeValue(methods, this.safeString(splitName, 0));
|
|
839
842
|
if (method !== undefined) {
|
|
840
|
-
|
|
843
|
+
method.call(this, client, message);
|
|
841
844
|
}
|
|
842
845
|
}
|
|
843
846
|
}
|
|
844
847
|
}
|
|
845
|
-
return message;
|
|
846
848
|
}
|
|
847
849
|
ping(client) {
|
|
848
850
|
return { 'event': 'ping' };
|
package/dist/cjs/src/probit.js
CHANGED
|
@@ -422,8 +422,8 @@ class probit extends probit$1 {
|
|
|
422
422
|
const networkList = {};
|
|
423
423
|
for (let j = 0; j < platformsByPriority.length; j++) {
|
|
424
424
|
const network = platformsByPriority[j];
|
|
425
|
-
const
|
|
426
|
-
const networkCode = this.networkIdToCode(
|
|
425
|
+
const idInner = this.safeString(network, 'id');
|
|
426
|
+
const networkCode = this.networkIdToCode(idInner);
|
|
427
427
|
const currentDepositSuspended = this.safeValue(network, 'deposit_suspended');
|
|
428
428
|
const currentWithdrawalSuspended = this.safeValue(network, 'withdrawal_suspended');
|
|
429
429
|
const currentDeposit = !currentDepositSuspended;
|
|
@@ -444,7 +444,7 @@ class probit extends probit$1 {
|
|
|
444
444
|
}
|
|
445
445
|
}
|
|
446
446
|
networkList[networkCode] = {
|
|
447
|
-
'id':
|
|
447
|
+
'id': idInner,
|
|
448
448
|
'network': networkCode,
|
|
449
449
|
'active': currentActive,
|
|
450
450
|
'deposit': currentDeposit,
|
|
@@ -1362,9 +1362,9 @@ class tokocrypto extends tokocrypto$1 {
|
|
|
1362
1362
|
// "timestamp":1659666786943
|
|
1363
1363
|
// }
|
|
1364
1364
|
//
|
|
1365
|
-
return this.
|
|
1365
|
+
return this.parseBalanceCustom(response, type, marginMode);
|
|
1366
1366
|
}
|
|
1367
|
-
|
|
1367
|
+
parseBalanceCustom(response, type = undefined, marginMode = undefined) {
|
|
1368
1368
|
const timestamp = this.safeInteger(response, 'updateTime');
|
|
1369
1369
|
const result = {
|
|
1370
1370
|
'info': response,
|
|
@@ -1253,7 +1253,8 @@ class wavesexchange extends wavesexchange$1 {
|
|
|
1253
1253
|
// precise.decimals should be integer
|
|
1254
1254
|
precise.decimals = this.parseToInt(Precise["default"].stringSub(this.numberToString(precise.decimals), this.numberToString(scale)));
|
|
1255
1255
|
precise.reduce();
|
|
1256
|
-
|
|
1256
|
+
const stringValue = precise.toString();
|
|
1257
|
+
return stringValue;
|
|
1257
1258
|
}
|
|
1258
1259
|
currencyFromPrecision(currency, amount) {
|
|
1259
1260
|
const scale = this.currencies[currency]['precision'];
|
package/dist/cjs/src/woo.js
CHANGED
|
@@ -856,7 +856,7 @@ class woo extends woo$1 {
|
|
|
856
856
|
const stopLoss = this.safeValue(params, 'stopLoss');
|
|
857
857
|
const takeProfit = this.safeValue(params, 'takeProfit');
|
|
858
858
|
const algoType = this.safeString(params, 'algoType');
|
|
859
|
-
const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activatedPrice', price);
|
|
859
|
+
const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activatedPrice', this.numberToString(price));
|
|
860
860
|
const trailingAmount = this.safeString2(params, 'trailingAmount', 'callbackValue');
|
|
861
861
|
const trailingPercent = this.safeString2(params, 'trailingPercent', 'callbackRate');
|
|
862
862
|
const isTrailingAmountOrder = trailingAmount !== undefined;
|
package/dist/cjs/src/yobit.js
CHANGED
|
@@ -1177,11 +1177,29 @@ class yobit extends yobit$1 {
|
|
|
1177
1177
|
const address = this.safeString(response['return'], 'address');
|
|
1178
1178
|
this.checkAddress(address);
|
|
1179
1179
|
return {
|
|
1180
|
+
'id': undefined,
|
|
1180
1181
|
'currency': code,
|
|
1181
1182
|
'address': address,
|
|
1182
1183
|
'tag': undefined,
|
|
1183
1184
|
'network': undefined,
|
|
1184
1185
|
'info': response,
|
|
1186
|
+
'txid': undefined,
|
|
1187
|
+
'type': undefined,
|
|
1188
|
+
'amount': undefined,
|
|
1189
|
+
'status': undefined,
|
|
1190
|
+
'timestamp': undefined,
|
|
1191
|
+
'datetime': undefined,
|
|
1192
|
+
'addressFrom': undefined,
|
|
1193
|
+
'addressTo': undefined,
|
|
1194
|
+
'tagFrom': undefined,
|
|
1195
|
+
'tagTo': undefined,
|
|
1196
|
+
'updated': undefined,
|
|
1197
|
+
'comment': undefined,
|
|
1198
|
+
'fee': {
|
|
1199
|
+
'currency': undefined,
|
|
1200
|
+
'cost': undefined,
|
|
1201
|
+
'rate': undefined,
|
|
1202
|
+
},
|
|
1185
1203
|
};
|
|
1186
1204
|
}
|
|
1187
1205
|
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
@@ -1214,6 +1232,27 @@ class yobit extends yobit$1 {
|
|
|
1214
1232
|
return {
|
|
1215
1233
|
'info': response,
|
|
1216
1234
|
'id': undefined,
|
|
1235
|
+
'txid': undefined,
|
|
1236
|
+
'type': undefined,
|
|
1237
|
+
'currency': undefined,
|
|
1238
|
+
'network': undefined,
|
|
1239
|
+
'amount': undefined,
|
|
1240
|
+
'status': undefined,
|
|
1241
|
+
'timestamp': undefined,
|
|
1242
|
+
'datetime': undefined,
|
|
1243
|
+
'address': undefined,
|
|
1244
|
+
'addressFrom': undefined,
|
|
1245
|
+
'addressTo': undefined,
|
|
1246
|
+
'tag': undefined,
|
|
1247
|
+
'tagFrom': undefined,
|
|
1248
|
+
'tagTo': undefined,
|
|
1249
|
+
'updated': undefined,
|
|
1250
|
+
'comment': undefined,
|
|
1251
|
+
'fee': {
|
|
1252
|
+
'currency': undefined,
|
|
1253
|
+
'cost': undefined,
|
|
1254
|
+
'rate': undefined,
|
|
1255
|
+
},
|
|
1217
1256
|
};
|
|
1218
1257
|
}
|
|
1219
1258
|
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
package/js/ccxt.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
|
|
|
4
4
|
import * as errors from './src/base/errors.js';
|
|
5
5
|
import type { Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory, MarginMode, Greeks } from './src/base/types.js';
|
|
6
6
|
import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
|
|
7
|
-
declare const version = "4.2.
|
|
7
|
+
declare const version = "4.2.34";
|
|
8
8
|
import ace from './src/ace.js';
|
|
9
9
|
import alpaca from './src/alpaca.js';
|
|
10
10
|
import ascendex from './src/ascendex.js';
|
package/js/ccxt.js
CHANGED
|
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
|
|
|
38
38
|
import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
|
|
39
39
|
//-----------------------------------------------------------------------------
|
|
40
40
|
// this is updated by vss.js when building
|
|
41
|
-
const version = '4.2.
|
|
41
|
+
const version = '4.2.35';
|
|
42
42
|
Exchange.ccxtVersion = version;
|
|
43
43
|
//-----------------------------------------------------------------------------
|
|
44
44
|
import ace from './src/ace.js';
|
package/js/src/ace.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export default class ace extends Exchange {
|
|
|
16
16
|
fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
17
17
|
parseOrderStatus(status: any): string;
|
|
18
18
|
parseOrder(order: any, market?: Market): Order;
|
|
19
|
-
createOrder(symbol: string, type: OrderType, side: OrderSide, amount:
|
|
19
|
+
createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
|
|
20
20
|
cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
|
|
21
21
|
fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
|
|
22
22
|
fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
package/js/src/ace.js
CHANGED
|
@@ -1051,8 +1051,9 @@ export default class ace extends Exchange {
|
|
|
1051
1051
|
const feedback = this.id + ' ' + body;
|
|
1052
1052
|
const status = this.safeNumber(response, 'status', 200);
|
|
1053
1053
|
if (status > 200) {
|
|
1054
|
-
|
|
1055
|
-
this.
|
|
1054
|
+
const statusStr = status.toString();
|
|
1055
|
+
this.throwExactlyMatchedException(this.exceptions['exact'], statusStr, feedback);
|
|
1056
|
+
this.throwBroadlyMatchedException(this.exceptions['broad'], statusStr, feedback);
|
|
1056
1057
|
}
|
|
1057
1058
|
return undefined;
|
|
1058
1059
|
}
|
package/js/src/alpaca.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export default class alpaca extends Exchange {
|
|
|
13
13
|
fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
14
14
|
fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
15
15
|
parseOHLCV(ohlcv: any, market?: Market): OHLCV;
|
|
16
|
-
createOrder(symbol: string, type: OrderType, side: OrderSide, amount:
|
|
16
|
+
createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
|
|
17
17
|
cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
|
|
18
18
|
cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
|
|
19
19
|
fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
|
package/js/src/ascendex.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/ascendex.js';
|
|
2
|
-
import type { FundingHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, FundingHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class ascendex
|
|
5
5
|
* @augments Exchange
|
|
@@ -31,8 +31,8 @@ export default class ascendex extends Exchange {
|
|
|
31
31
|
parseOrderStatus(status: any): string;
|
|
32
32
|
parseOrder(order: any, market?: Market): Order;
|
|
33
33
|
fetchTradingFees(params?: {}): Promise<{}>;
|
|
34
|
-
createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount:
|
|
35
|
-
createOrder(symbol: string, type: OrderType, side: OrderSide, amount:
|
|
34
|
+
createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): any;
|
|
35
|
+
createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
|
|
36
36
|
createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
|
|
37
37
|
fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
|
|
38
38
|
fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
@@ -86,7 +86,7 @@ export default class ascendex extends Exchange {
|
|
|
86
86
|
};
|
|
87
87
|
reduceMargin(symbol: string, amount: any, params?: {}): Promise<any>;
|
|
88
88
|
addMargin(symbol: string, amount: any, params?: {}): Promise<any>;
|
|
89
|
-
setLeverage(leverage:
|
|
89
|
+
setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
|
|
90
90
|
setMarginMode(marginMode: any, symbol?: Str, params?: {}): Promise<any>;
|
|
91
91
|
fetchLeverageTiers(symbols?: Strings, params?: {}): Promise<{}>;
|
|
92
92
|
parseMarketLeverageTiers(info: any, market?: Market): any[];
|
|
@@ -103,17 +103,7 @@ export default class ascendex extends Exchange {
|
|
|
103
103
|
networks: {};
|
|
104
104
|
};
|
|
105
105
|
fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
|
|
106
|
-
transfer(code: string, amount:
|
|
107
|
-
info: any;
|
|
108
|
-
id: any;
|
|
109
|
-
timestamp: number;
|
|
110
|
-
datetime: string;
|
|
111
|
-
currency: string;
|
|
112
|
-
amount: any;
|
|
113
|
-
fromAccount: any;
|
|
114
|
-
toAccount: any;
|
|
115
|
-
status: string;
|
|
116
|
-
}>;
|
|
106
|
+
transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
|
|
117
107
|
parseTransfer(transfer: any, currency?: Currency): {
|
|
118
108
|
info: any;
|
|
119
109
|
id: any;
|
package/js/src/ascendex.js
CHANGED
|
@@ -3133,7 +3133,7 @@ export default class ascendex extends Exchange {
|
|
|
3133
3133
|
* @method
|
|
3134
3134
|
* @name ascendex#transfer
|
|
3135
3135
|
* @description transfer currency internally between wallets on the same account
|
|
3136
|
-
* @param {string} code unified currency
|
|
3136
|
+
* @param {string} code unified currency codeåå
|
|
3137
3137
|
* @param {float} amount amount to transfer
|
|
3138
3138
|
* @param {string} fromAccount account to transfer from
|
|
3139
3139
|
* @param {string} toAccount account to transfer to
|