ccxt 4.2.17 → 4.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/dist/ccxt.browser.js +48992 -47725
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +12 -1
- package/dist/cjs/src/alpaca.js +18 -18
- package/dist/cjs/src/ascendex.js +13 -6
- package/dist/cjs/src/base/Exchange.js +266 -27
- package/dist/cjs/src/bigone.js +434 -168
- package/dist/cjs/src/binance.js +163 -34
- package/dist/cjs/src/binanceus.js +8 -0
- package/dist/cjs/src/bingx.js +183 -41
- package/dist/cjs/src/bitfinex.js +2 -3
- package/dist/cjs/src/bitget.js +59 -16
- package/dist/cjs/src/bitmart.js +5 -5
- package/dist/cjs/src/bitmex.js +4 -6
- package/dist/cjs/src/bitpanda.js +5 -1991
- package/dist/cjs/src/bitstamp.js +8 -0
- package/dist/cjs/src/bybit.js +27 -47
- package/dist/cjs/src/coinbase.js +176 -26
- package/dist/cjs/src/coincheck.js +1 -0
- package/dist/cjs/src/coinex.js +3 -0
- package/dist/cjs/src/coinlist.js +13 -6
- package/dist/cjs/src/coinone.js +2 -2
- package/dist/cjs/src/coinsph.js +4 -5
- package/dist/cjs/src/delta.js +7 -1
- package/dist/cjs/src/deribit.js +17 -4
- package/dist/cjs/src/gate.js +151 -169
- package/dist/cjs/src/gemini.js +1 -1
- package/dist/cjs/src/hitbtc.js +2 -3
- package/dist/cjs/src/htx.js +157 -7
- package/dist/cjs/src/huobijp.js +2 -3
- package/dist/cjs/src/independentreserve.js +7 -5
- package/dist/cjs/src/kraken.js +86 -54
- package/dist/cjs/src/kucoin.js +5 -0
- package/dist/cjs/src/kucoinfutures.js +131 -77
- package/dist/cjs/src/lbank.js +60 -33
- package/dist/cjs/src/luno.js +84 -2
- package/dist/cjs/src/mexc.js +3 -3
- package/dist/cjs/src/oceanex.js +1 -1
- package/dist/cjs/src/okx.js +23 -11
- package/dist/cjs/{js/src/bitpanda.js → src/onetrading.js} +39 -39
- package/dist/cjs/src/phemex.js +37 -27
- package/dist/cjs/src/poloniexfutures.js +1 -0
- package/dist/cjs/src/pro/binance.js +66 -25
- package/dist/cjs/src/pro/bitget.js +1 -1
- package/dist/cjs/src/pro/bitpanda.js +5 -1330
- package/dist/cjs/src/pro/coinbase.js +4 -1
- package/dist/cjs/src/pro/coincheck.js +208 -0
- package/dist/cjs/src/pro/hitbtc.js +5 -4
- package/dist/cjs/src/pro/htx.js +6 -1
- package/dist/cjs/src/pro/kraken.js +1 -1
- package/dist/cjs/src/pro/krakenfutures.js +7 -1
- package/dist/cjs/src/pro/kucoin.js +46 -36
- package/dist/cjs/src/pro/kucoinfutures.js +45 -37
- package/dist/cjs/src/pro/lbank.js +881 -0
- package/dist/cjs/src/pro/okx.js +52 -2
- package/dist/cjs/{js/src/pro/bitpanda.js → src/pro/onetrading.js} +4 -7
- package/dist/cjs/src/pro/poloniex.js +2 -2
- package/dist/cjs/src/pro/poloniexfutures.js +43 -35
- package/dist/cjs/src/pro/woo.js +126 -0
- package/dist/cjs/src/probit.js +4 -2
- package/dist/cjs/src/upbit.js +12 -12
- package/dist/cjs/src/wavesexchange.js +1 -1
- package/dist/cjs/src/whitebit.js +1 -0
- package/dist/cjs/src/woo.js +56 -0
- package/js/ccxt.d.ts +14 -2
- package/js/ccxt.js +10 -2
- package/js/src/abstract/bitpanda.d.ts +4 -4
- package/js/src/abstract/bitstamp.d.ts +8 -0
- package/js/src/abstract/gate.d.ts +1 -0
- package/js/src/abstract/gateio.d.ts +1 -0
- package/js/src/abstract/htx.d.ts +3 -0
- package/js/src/abstract/huobi.d.ts +3 -0
- package/js/src/abstract/luno.d.ts +1 -0
- package/js/src/abstract/onetrading.d.ts +38 -0
- package/js/src/ascendex.js +2 -0
- package/js/src/base/Exchange.d.ts +2 -3
- package/js/src/base/Exchange.js +5 -2
- package/js/src/binance.js +7 -1
- package/js/src/bingx.d.ts +1 -0
- package/js/src/bingx.js +26 -0
- package/js/src/bitget.js +22 -3
- package/js/src/bitpanda.d.ts +2 -72
- package/js/src/bitpanda.js +5 -1991
- package/js/src/bitstamp.js +8 -0
- package/js/src/bybit.js +21 -47
- package/js/src/coincheck.js +1 -0
- package/js/src/deribit.js +16 -4
- package/js/src/gate.d.ts +1 -0
- package/js/src/gate.js +50 -110
- package/js/src/htx.js +3 -0
- package/js/src/kraken.d.ts +1 -0
- package/js/src/kraken.js +40 -39
- package/js/src/lbank.js +1 -0
- package/js/src/luno.d.ts +3 -1
- package/js/src/luno.js +84 -2
- package/js/src/mexc.js +1 -2
- package/js/src/onetrading.d.ts +74 -0
- package/js/src/onetrading.js +2003 -0
- package/js/src/poloniexfutures.js +1 -0
- package/js/src/pro/binance.js +7 -2
- package/js/src/pro/bitget.js +1 -1
- package/js/src/pro/bitpanda.d.ts +2 -34
- package/js/src/pro/bitpanda.js +5 -1330
- package/js/src/pro/coincheck.d.ts +12 -0
- package/js/src/pro/coincheck.js +209 -0
- package/js/src/pro/kucoin.js +43 -35
- package/js/src/pro/kucoinfutures.js +45 -37
- package/js/src/pro/lbank.d.ts +29 -0
- package/js/src/pro/lbank.js +882 -0
- package/js/src/pro/onetrading.d.ts +36 -0
- package/js/src/pro/onetrading.js +1339 -0
- package/js/src/pro/poloniexfutures.js +43 -35
- package/js/src/whitebit.js +1 -0
- package/package.json +2 -2
- package/rollup.config.js +2 -0
- package/skip-tests.json +14 -2
- package/test-commonjs.cjs +25 -1
- package/dist/cjs/js/ccxt.js +0 -476
- package/dist/cjs/js/src/abstract/alpaca.js +0 -9
- package/dist/cjs/js/src/abstract/ascendex.js +0 -9
- package/dist/cjs/js/src/abstract/bigone.js +0 -9
- package/dist/cjs/js/src/abstract/binance.js +0 -9
- package/dist/cjs/js/src/abstract/bingx.js +0 -9
- package/dist/cjs/js/src/abstract/bit2c.js +0 -9
- package/dist/cjs/js/src/abstract/bitbank.js +0 -9
- package/dist/cjs/js/src/abstract/bitbns.js +0 -9
- package/dist/cjs/js/src/abstract/bitfinex.js +0 -9
- package/dist/cjs/js/src/abstract/bitfinex2.js +0 -9
- package/dist/cjs/js/src/abstract/bitflyer.js +0 -9
- package/dist/cjs/js/src/abstract/bitforex.js +0 -9
- package/dist/cjs/js/src/abstract/bitget.js +0 -9
- package/dist/cjs/js/src/abstract/bithumb.js +0 -9
- package/dist/cjs/js/src/abstract/bitmart.js +0 -9
- package/dist/cjs/js/src/abstract/bitmex.js +0 -9
- package/dist/cjs/js/src/abstract/bitopro.js +0 -9
- package/dist/cjs/js/src/abstract/bitpanda.js +0 -9
- package/dist/cjs/js/src/abstract/bitrue.js +0 -9
- package/dist/cjs/js/src/abstract/bitso.js +0 -9
- package/dist/cjs/js/src/abstract/bitstamp.js +0 -9
- package/dist/cjs/js/src/abstract/bitteam.js +0 -9
- package/dist/cjs/js/src/abstract/bitvavo.js +0 -9
- package/dist/cjs/js/src/abstract/bl3p.js +0 -9
- package/dist/cjs/js/src/abstract/blockchaincom.js +0 -9
- package/dist/cjs/js/src/abstract/btcalpha.js +0 -9
- package/dist/cjs/js/src/abstract/btcbox.js +0 -9
- package/dist/cjs/js/src/abstract/btcmarkets.js +0 -9
- package/dist/cjs/js/src/abstract/btcturk.js +0 -9
- package/dist/cjs/js/src/abstract/bybit.js +0 -9
- package/dist/cjs/js/src/abstract/cex.js +0 -9
- package/dist/cjs/js/src/abstract/coinbase.js +0 -9
- package/dist/cjs/js/src/abstract/coinbasepro.js +0 -9
- package/dist/cjs/js/src/abstract/coincheck.js +0 -9
- package/dist/cjs/js/src/abstract/coinex.js +0 -9
- package/dist/cjs/js/src/abstract/coinlist.js +0 -9
- package/dist/cjs/js/src/abstract/coinmate.js +0 -9
- package/dist/cjs/js/src/abstract/coinone.js +0 -9
- package/dist/cjs/js/src/abstract/coinsph.js +0 -9
- package/dist/cjs/js/src/abstract/coinspot.js +0 -9
- package/dist/cjs/js/src/abstract/cryptocom.js +0 -9
- package/dist/cjs/js/src/abstract/currencycom.js +0 -9
- package/dist/cjs/js/src/abstract/delta.js +0 -9
- package/dist/cjs/js/src/abstract/deribit.js +0 -9
- package/dist/cjs/js/src/abstract/digifinex.js +0 -9
- package/dist/cjs/js/src/abstract/exmo.js +0 -9
- package/dist/cjs/js/src/abstract/gate.js +0 -9
- package/dist/cjs/js/src/abstract/gemini.js +0 -9
- package/dist/cjs/js/src/abstract/hitbtc.js +0 -9
- package/dist/cjs/js/src/abstract/hollaex.js +0 -9
- package/dist/cjs/js/src/abstract/htx.js +0 -9
- package/dist/cjs/js/src/abstract/huobijp.js +0 -9
- package/dist/cjs/js/src/abstract/idex.js +0 -9
- package/dist/cjs/js/src/abstract/independentreserve.js +0 -9
- package/dist/cjs/js/src/abstract/indodax.js +0 -9
- package/dist/cjs/js/src/abstract/kraken.js +0 -9
- package/dist/cjs/js/src/abstract/krakenfutures.js +0 -9
- package/dist/cjs/js/src/abstract/kucoin.js +0 -9
- package/dist/cjs/js/src/abstract/kucoinfutures.js +0 -9
- package/dist/cjs/js/src/abstract/kuna.js +0 -9
- package/dist/cjs/js/src/abstract/latoken.js +0 -9
- package/dist/cjs/js/src/abstract/lbank.js +0 -9
- package/dist/cjs/js/src/abstract/luno.js +0 -9
- package/dist/cjs/js/src/abstract/lykke.js +0 -9
- package/dist/cjs/js/src/abstract/mercado.js +0 -9
- package/dist/cjs/js/src/abstract/mexc.js +0 -9
- package/dist/cjs/js/src/abstract/ndax.js +0 -9
- package/dist/cjs/js/src/abstract/novadax.js +0 -9
- package/dist/cjs/js/src/abstract/oceanex.js +0 -9
- package/dist/cjs/js/src/abstract/okcoin.js +0 -9
- package/dist/cjs/js/src/abstract/okx.js +0 -9
- package/dist/cjs/js/src/abstract/p2b.js +0 -9
- package/dist/cjs/js/src/abstract/paymium.js +0 -9
- package/dist/cjs/js/src/abstract/phemex.js +0 -9
- package/dist/cjs/js/src/abstract/poloniex.js +0 -9
- package/dist/cjs/js/src/abstract/poloniexfutures.js +0 -9
- package/dist/cjs/js/src/abstract/probit.js +0 -9
- package/dist/cjs/js/src/abstract/timex.js +0 -9
- package/dist/cjs/js/src/abstract/tokocrypto.js +0 -9
- package/dist/cjs/js/src/abstract/upbit.js +0 -9
- package/dist/cjs/js/src/abstract/wavesexchange.js +0 -9
- package/dist/cjs/js/src/abstract/wazirx.js +0 -9
- package/dist/cjs/js/src/abstract/whitebit.js +0 -9
- package/dist/cjs/js/src/abstract/woo.js +0 -9
- package/dist/cjs/js/src/abstract/yobit.js +0 -9
- package/dist/cjs/js/src/abstract/zaif.js +0 -9
- package/dist/cjs/js/src/abstract/zonda.js +0 -9
- package/dist/cjs/js/src/ace.js +0 -1058
- package/dist/cjs/js/src/alpaca.js +0 -1125
- package/dist/cjs/js/src/ascendex.js +0 -3365
- package/dist/cjs/js/src/base/Exchange.js +0 -5257
- package/dist/cjs/js/src/base/Precise.js +0 -263
- package/dist/cjs/js/src/base/errors.js +0 -299
- package/dist/cjs/js/src/base/functions/crypto.js +0 -78
- package/dist/cjs/js/src/base/functions/encode.js +0 -44
- package/dist/cjs/js/src/base/functions/generic.js +0 -193
- package/dist/cjs/js/src/base/functions/misc.js +0 -96
- package/dist/cjs/js/src/base/functions/number.js +0 -297
- package/dist/cjs/js/src/base/functions/platform.js +0 -28
- package/dist/cjs/js/src/base/functions/rsa.js +0 -34
- package/dist/cjs/js/src/base/functions/string.js +0 -48
- package/dist/cjs/js/src/base/functions/throttle.js +0 -66
- package/dist/cjs/js/src/base/functions/time.js +0 -187
- package/dist/cjs/js/src/base/functions/totp.js +0 -24
- package/dist/cjs/js/src/base/functions/type.js +0 -162
- package/dist/cjs/js/src/base/functions.js +0 -157
- package/dist/cjs/js/src/base/ws/Cache.js +0 -254
- package/dist/cjs/js/src/base/ws/Client.js +0 -299
- package/dist/cjs/js/src/base/ws/Future.js +0 -34
- package/dist/cjs/js/src/base/ws/OrderBook.js +0 -107
- package/dist/cjs/js/src/base/ws/OrderBookSide.js +0 -281
- package/dist/cjs/js/src/base/ws/WsClient.js +0 -69
- package/dist/cjs/js/src/bequant.js +0 -33
- package/dist/cjs/js/src/bigone.js +0 -2213
- package/dist/cjs/js/src/binance.js +0 -9845
- package/dist/cjs/js/src/binancecoinm.js +0 -45
- package/dist/cjs/js/src/binanceus.js +0 -92
- package/dist/cjs/js/src/binanceusdm.js +0 -58
- package/dist/cjs/js/src/bingx.js +0 -3846
- package/dist/cjs/js/src/bit2c.js +0 -916
- package/dist/cjs/js/src/bitbank.js +0 -1000
- package/dist/cjs/js/src/bitbay.js +0 -17
- package/dist/cjs/js/src/bitbns.js +0 -1220
- package/dist/cjs/js/src/bitcoincom.js +0 -17
- package/dist/cjs/js/src/bitfinex.js +0 -1670
- package/dist/cjs/js/src/bitfinex2.js +0 -2990
- package/dist/cjs/js/src/bitflyer.js +0 -1045
- package/dist/cjs/js/src/bitforex.js +0 -852
- package/dist/cjs/js/src/bitget.js +0 -8295
- package/dist/cjs/js/src/bithumb.js +0 -1090
- package/dist/cjs/js/src/bitmart.js +0 -4454
- package/dist/cjs/js/src/bitmex.js +0 -2881
- package/dist/cjs/js/src/bitopro.js +0 -1724
- package/dist/cjs/js/src/bitrue.js +0 -3253
- package/dist/cjs/js/src/bitso.js +0 -1753
- package/dist/cjs/js/src/bitstamp.js +0 -2188
- package/dist/cjs/js/src/bitteam.js +0 -2309
- package/dist/cjs/js/src/bitvavo.js +0 -1968
- package/dist/cjs/js/src/bl3p.js +0 -447
- package/dist/cjs/js/src/blockchaincom.js +0 -1160
- package/dist/cjs/js/src/btcalpha.js +0 -929
- package/dist/cjs/js/src/btcbox.js +0 -565
- package/dist/cjs/js/src/btcmarkets.js +0 -1237
- package/dist/cjs/js/src/btcturk.js +0 -929
- package/dist/cjs/js/src/bybit.js +0 -7650
- package/dist/cjs/js/src/cex.js +0 -1693
- package/dist/cjs/js/src/coinbase.js +0 -3424
- package/dist/cjs/js/src/coinbasepro.js +0 -1866
- package/dist/cjs/js/src/coincheck.js +0 -843
- package/dist/cjs/js/src/coinex.js +0 -5417
- package/dist/cjs/js/src/coinlist.js +0 -2337
- package/dist/cjs/js/src/coinmate.js +0 -989
- package/dist/cjs/js/src/coinone.js +0 -1185
- package/dist/cjs/js/src/coinsph.js +0 -1933
- package/dist/cjs/js/src/coinspot.js +0 -548
- package/dist/cjs/js/src/cryptocom.js +0 -3007
- package/dist/cjs/js/src/currencycom.js +0 -2015
- package/dist/cjs/js/src/delta.js +0 -3262
- package/dist/cjs/js/src/deribit.js +0 -3306
- package/dist/cjs/js/src/digifinex.js +0 -4307
- package/dist/cjs/js/src/exmo.js +0 -2645
- package/dist/cjs/js/src/fmfwio.js +0 -34
- package/dist/cjs/js/src/gate.js +0 -7077
- package/dist/cjs/js/src/gateio.js +0 -16
- package/dist/cjs/js/src/gemini.js +0 -1801
- package/dist/cjs/js/src/hitbtc.js +0 -3660
- package/dist/cjs/js/src/hitbtc3.js +0 -19
- package/dist/cjs/js/src/hollaex.js +0 -1882
- package/dist/cjs/js/src/htx.js +0 -9174
- package/dist/cjs/js/src/huobi.js +0 -16
- package/dist/cjs/js/src/huobijp.js +0 -1918
- package/dist/cjs/js/src/idex.js +0 -1770
- package/dist/cjs/js/src/independentreserve.js +0 -761
- package/dist/cjs/js/src/indodax.js +0 -1069
- package/dist/cjs/js/src/kraken.js +0 -2891
- package/dist/cjs/js/src/krakenfutures.js +0 -2407
- package/dist/cjs/js/src/kucoin.js +0 -4494
- package/dist/cjs/js/src/kucoinfutures.js +0 -2529
- package/dist/cjs/js/src/kuna.js +0 -1949
- package/dist/cjs/js/src/latoken.js +0 -1729
- package/dist/cjs/js/src/lbank.js +0 -2851
- package/dist/cjs/js/src/luno.js +0 -1044
- package/dist/cjs/js/src/lykke.js +0 -1303
- package/dist/cjs/js/src/mercado.js +0 -897
- package/dist/cjs/js/src/mexc.js +0 -5407
- package/dist/cjs/js/src/ndax.js +0 -2450
- package/dist/cjs/js/src/novadax.js +0 -1556
- package/dist/cjs/js/src/oceanex.js +0 -964
- package/dist/cjs/js/src/okcoin.js +0 -3115
- package/dist/cjs/js/src/okx.js +0 -7331
- package/dist/cjs/js/src/p2b.js +0 -1243
- package/dist/cjs/js/src/paymium.js +0 -597
- package/dist/cjs/js/src/phemex.js +0 -4725
- package/dist/cjs/js/src/poloniex.js +0 -2356
- package/dist/cjs/js/src/poloniexfutures.js +0 -1794
- package/dist/cjs/js/src/pro/alpaca.js +0 -714
- package/dist/cjs/js/src/pro/ascendex.js +0 -957
- package/dist/cjs/js/src/pro/bequant.js +0 -33
- package/dist/cjs/js/src/pro/binance.js +0 -2796
- package/dist/cjs/js/src/pro/binancecoinm.js +0 -23
- package/dist/cjs/js/src/pro/binanceus.js +0 -51
- package/dist/cjs/js/src/pro/binanceusdm.js +0 -32
- package/dist/cjs/js/src/pro/bingx.js +0 -944
- package/dist/cjs/js/src/pro/bitcoincom.js +0 -29
- package/dist/cjs/js/src/pro/bitfinex.js +0 -672
- package/dist/cjs/js/src/pro/bitfinex2.js +0 -1159
- package/dist/cjs/js/src/pro/bitget.js +0 -1733
- package/dist/cjs/js/src/pro/bitmart.js +0 -1486
- package/dist/cjs/js/src/pro/bitmex.js +0 -1576
- package/dist/cjs/js/src/pro/bitopro.js +0 -327
- package/dist/cjs/js/src/pro/bitrue.js +0 -462
- package/dist/cjs/js/src/pro/bitstamp.js +0 -547
- package/dist/cjs/js/src/pro/bitvavo.js +0 -704
- package/dist/cjs/js/src/pro/blockchaincom.js +0 -794
- package/dist/cjs/js/src/pro/bybit.js +0 -1843
- package/dist/cjs/js/src/pro/cex.js +0 -1510
- package/dist/cjs/js/src/pro/coinbase.js +0 -561
- package/dist/cjs/js/src/pro/coinbasepro.js +0 -968
- package/dist/cjs/js/src/pro/coinex.js +0 -1095
- package/dist/cjs/js/src/pro/cryptocom.js +0 -1020
- package/dist/cjs/js/src/pro/currencycom.js +0 -563
- package/dist/cjs/js/src/pro/deribit.js +0 -825
- package/dist/cjs/js/src/pro/exmo.js +0 -658
- package/dist/cjs/js/src/pro/gate.js +0 -1316
- package/dist/cjs/js/src/pro/gateio.js +0 -16
- package/dist/cjs/js/src/pro/gemini.js +0 -649
- package/dist/cjs/js/src/pro/hitbtc.js +0 -1294
- package/dist/cjs/js/src/pro/hollaex.js +0 -597
- package/dist/cjs/js/src/pro/htx.js +0 -2388
- package/dist/cjs/js/src/pro/huobi.js +0 -16
- package/dist/cjs/js/src/pro/huobijp.js +0 -606
- package/dist/cjs/js/src/pro/idex.js +0 -714
- package/dist/cjs/js/src/pro/independentreserve.js +0 -280
- package/dist/cjs/js/src/pro/kraken.js +0 -1364
- package/dist/cjs/js/src/pro/krakenfutures.js +0 -1506
- package/dist/cjs/js/src/pro/kucoin.js +0 -1054
- package/dist/cjs/js/src/pro/kucoinfutures.js +0 -981
- package/dist/cjs/js/src/pro/luno.js +0 -322
- package/dist/cjs/js/src/pro/mexc.js +0 -1170
- package/dist/cjs/js/src/pro/ndax.js +0 -545
- package/dist/cjs/js/src/pro/okcoin.js +0 -760
- package/dist/cjs/js/src/pro/okx.js +0 -1608
- package/dist/cjs/js/src/pro/phemex.js +0 -1511
- package/dist/cjs/js/src/pro/poloniex.js +0 -1253
- package/dist/cjs/js/src/pro/poloniexfutures.js +0 -1014
- package/dist/cjs/js/src/pro/probit.js +0 -586
- package/dist/cjs/js/src/pro/upbit.js +0 -234
- package/dist/cjs/js/src/pro/wazirx.js +0 -776
- package/dist/cjs/js/src/pro/whitebit.js +0 -927
- package/dist/cjs/js/src/pro/woo.js +0 -895
- package/dist/cjs/js/src/probit.js +0 -1867
- package/dist/cjs/js/src/static_dependencies/fflake/browser.js +0 -401
- package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -195
- package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -308
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -554
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -94
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -70
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -91
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -16
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -1760
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -52
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -81
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -376
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -70
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -1580
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -74
- package/dist/cjs/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -24
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -158
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -429
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -176
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -324
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -163
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -245
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -1018
- package/dist/cjs/js/src/static_dependencies/noble-curves/ed25519.js +0 -383
- package/dist/cjs/js/src/static_dependencies/noble-curves/secp256k1.js +0 -258
- package/dist/cjs/js/src/static_dependencies/noble-hashes/_assert.js +0 -53
- package/dist/cjs/js/src/static_dependencies/noble-hashes/_sha2.js +0 -120
- package/dist/cjs/js/src/static_dependencies/noble-hashes/_u64.js +0 -69
- package/dist/cjs/js/src/static_dependencies/noble-hashes/crypto.js +0 -7
- package/dist/cjs/js/src/static_dependencies/noble-hashes/hmac.js +0 -83
- package/dist/cjs/js/src/static_dependencies/noble-hashes/md5.js +0 -240
- package/dist/cjs/js/src/static_dependencies/noble-hashes/sha1.js +0 -91
- package/dist/cjs/js/src/static_dependencies/noble-hashes/sha256.js +0 -130
- package/dist/cjs/js/src/static_dependencies/noble-hashes/sha3.js +0 -214
- package/dist/cjs/js/src/static_dependencies/noble-hashes/sha512.js +0 -239
- package/dist/cjs/js/src/static_dependencies/noble-hashes/utils.js +0 -93
- package/dist/cjs/js/src/static_dependencies/node-fetch/body.js +0 -354
- package/dist/cjs/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -16
- package/dist/cjs/js/src/static_dependencies/node-fetch/errors/base.js +0 -20
- package/dist/cjs/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -30
- package/dist/cjs/js/src/static_dependencies/node-fetch/headers.js +0 -239
- package/dist/cjs/js/src/static_dependencies/node-fetch/index.js +0 -372
- package/dist/cjs/js/src/static_dependencies/node-fetch/request.js +0 -273
- package/dist/cjs/js/src/static_dependencies/node-fetch/response.js +0 -139
- package/dist/cjs/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -14
- package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -16
- package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is.js +0 -81
- package/dist/cjs/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -292
- package/dist/cjs/js/src/static_dependencies/proxies/agent-base/index.js +0 -103
- package/dist/cjs/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -140
- package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -175
- package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -95
- package/dist/cjs/js/src/static_dependencies/qs/index.cjs.js +0 -7
- package/dist/cjs/js/src/static_dependencies/scure-base/index.js +0 -383
- package/dist/cjs/js/src/timex.js +0 -1562
- package/dist/cjs/js/src/tokocrypto.js +0 -2542
- package/dist/cjs/js/src/upbit.js +0 -1844
- package/dist/cjs/js/src/wavesexchange.js +0 -2607
- package/dist/cjs/js/src/wazirx.js +0 -953
- package/dist/cjs/js/src/whitebit.js +0 -2309
- package/dist/cjs/js/src/woo.js +0 -2769
- package/dist/cjs/js/src/yobit.js +0 -1314
- package/dist/cjs/js/src/zaif.js +0 -736
- package/dist/cjs/js/src/zonda.js +0 -1883
- package/dist/cjs/src/abstract/bitpanda.js +0 -9
- package/test.ts +0 -0
- /package/dist/cjs/{js/src/abstract/ace.js → src/abstract/onetrading.js} +0 -0
- /package/dist/cjs/{js/src → src}/pro/coinone.js +0 -0
- /package/js/src/abstract/{bitpanda.js → onetrading.js} +0 -0
|
@@ -1,776 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var wazirx$1 = require('../wazirx.js');
|
|
4
|
-
var errors = require('../base/errors.js');
|
|
5
|
-
var Cache = require('../base/ws/Cache.js');
|
|
6
|
-
|
|
7
|
-
// ---------------------------------------------------------------------------
|
|
8
|
-
// ---------------------------------------------------------------------------
|
|
9
|
-
class wazirx extends wazirx$1 {
|
|
10
|
-
describe() {
|
|
11
|
-
return this.deepExtend(super.describe(), {
|
|
12
|
-
'has': {
|
|
13
|
-
'ws': true,
|
|
14
|
-
'watchBalance': true,
|
|
15
|
-
'watchTicker': true,
|
|
16
|
-
'watchTickers': true,
|
|
17
|
-
'watchTrades': true,
|
|
18
|
-
'watchMyTrades': true,
|
|
19
|
-
'watchOrders': true,
|
|
20
|
-
'watchOrderBook': true,
|
|
21
|
-
'watchOHLCV': true,
|
|
22
|
-
},
|
|
23
|
-
'urls': {
|
|
24
|
-
'api': {
|
|
25
|
-
'ws': 'wss://stream.wazirx.com/stream',
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
'options': {},
|
|
29
|
-
'streaming': {},
|
|
30
|
-
'exceptions': {},
|
|
31
|
-
'api': {
|
|
32
|
-
'private': {
|
|
33
|
-
'post': {
|
|
34
|
-
'create_auth_token': 1,
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
async watchBalance(params = {}) {
|
|
41
|
-
/**
|
|
42
|
-
* @method
|
|
43
|
-
* @name wazirx#watchBalance
|
|
44
|
-
* @description watch balance and get the amount of funds available for trading or funds locked in orders
|
|
45
|
-
* @see https://docs.wazirx.com/#account-update
|
|
46
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
47
|
-
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
|
|
48
|
-
*/
|
|
49
|
-
await this.loadMarkets();
|
|
50
|
-
const token = await this.authenticate(params);
|
|
51
|
-
const messageHash = 'balance';
|
|
52
|
-
const url = this.urls['api']['ws'];
|
|
53
|
-
const subscribe = {
|
|
54
|
-
'event': 'subscribe',
|
|
55
|
-
'streams': ['outboundAccountPosition'],
|
|
56
|
-
'auth_key': token,
|
|
57
|
-
};
|
|
58
|
-
const request = this.deepExtend(subscribe, params);
|
|
59
|
-
return await this.watch(url, messageHash, request, messageHash);
|
|
60
|
-
}
|
|
61
|
-
handleBalance(client, message) {
|
|
62
|
-
//
|
|
63
|
-
// {
|
|
64
|
-
// "data":
|
|
65
|
-
// {
|
|
66
|
-
// "B": [
|
|
67
|
-
// {
|
|
68
|
-
// "a":"wrx",
|
|
69
|
-
// "b":"2043856.426455209",
|
|
70
|
-
// "l":"3001318.98"
|
|
71
|
-
// }
|
|
72
|
-
// ],
|
|
73
|
-
// "E":1631683058909
|
|
74
|
-
// },
|
|
75
|
-
// "stream":"outboundAccountPosition"
|
|
76
|
-
// }
|
|
77
|
-
//
|
|
78
|
-
const data = this.safeValue(message, 'data', {});
|
|
79
|
-
const balances = this.safeValue(data, 'B', []);
|
|
80
|
-
const timestamp = this.safeInteger(data, 'E');
|
|
81
|
-
this.balance['info'] = balances;
|
|
82
|
-
this.balance['timestamp'] = timestamp;
|
|
83
|
-
this.balance['datetime'] = this.iso8601(timestamp);
|
|
84
|
-
for (let i = 0; i < balances.length; i++) {
|
|
85
|
-
const balance = balances[i];
|
|
86
|
-
const currencyId = this.safeString(balance, 'a');
|
|
87
|
-
const code = this.safeCurrencyCode(currencyId);
|
|
88
|
-
const available = this.safeString(balance, 'b');
|
|
89
|
-
const locked = this.safeString(balance, 'l');
|
|
90
|
-
const account = this.account();
|
|
91
|
-
account['free'] = available;
|
|
92
|
-
account['used'] = locked;
|
|
93
|
-
this.balance[code] = account;
|
|
94
|
-
}
|
|
95
|
-
this.balance = this.safeBalance(this.balance);
|
|
96
|
-
const messageHash = 'balance';
|
|
97
|
-
client.resolve(this.balance, messageHash);
|
|
98
|
-
}
|
|
99
|
-
parseWsTrade(trade, market = undefined) {
|
|
100
|
-
//
|
|
101
|
-
// trade
|
|
102
|
-
// {
|
|
103
|
-
// "E": 1631681323000, Event time
|
|
104
|
-
// "S": "buy", Side
|
|
105
|
-
// "a": 26946138, Buyer order ID
|
|
106
|
-
// "b": 26946169, Seller order ID
|
|
107
|
-
// "m": true, Is buyer maker?
|
|
108
|
-
// "p": "7.0", Price
|
|
109
|
-
// "q": "15.0", Quantity
|
|
110
|
-
// "s": "btcinr", Symbol
|
|
111
|
-
// "t": 17376030 Trade ID
|
|
112
|
-
// }
|
|
113
|
-
// ownTrade
|
|
114
|
-
// {
|
|
115
|
-
// "E": 1631683058000,
|
|
116
|
-
// "S": "ask",
|
|
117
|
-
// "U": "inr",
|
|
118
|
-
// "a": 114144050,
|
|
119
|
-
// "b": 114144121,
|
|
120
|
-
// "f": "0.2",
|
|
121
|
-
// "m": true,
|
|
122
|
-
// "o": 26946170,
|
|
123
|
-
// "p": "5.0",
|
|
124
|
-
// "q": "20.0",
|
|
125
|
-
// "s": "btcinr",
|
|
126
|
-
// "t": 17376032,
|
|
127
|
-
// "w": "100.0"
|
|
128
|
-
// }
|
|
129
|
-
//
|
|
130
|
-
const timestamp = this.safeInteger(trade, 'E');
|
|
131
|
-
const marketId = this.safeString(trade, 's');
|
|
132
|
-
market = this.safeMarket(marketId, market);
|
|
133
|
-
const feeCost = this.safeString(trade, 'f');
|
|
134
|
-
const feeCurrencyId = this.safeString(trade, 'U');
|
|
135
|
-
const isMaker = this.safeValue(trade, 'm') === true;
|
|
136
|
-
let fee = undefined;
|
|
137
|
-
if (feeCost !== undefined) {
|
|
138
|
-
fee = {
|
|
139
|
-
'cost': feeCost,
|
|
140
|
-
'currency': this.safeCurrencyCode(feeCurrencyId),
|
|
141
|
-
'rate': undefined,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
return this.safeTrade({
|
|
145
|
-
'id': this.safeString(trade, 't'),
|
|
146
|
-
'info': trade,
|
|
147
|
-
'timestamp': timestamp,
|
|
148
|
-
'datetime': this.iso8601(timestamp),
|
|
149
|
-
'symbol': market['symbol'],
|
|
150
|
-
'order': this.safeStringN(trade, ['o']),
|
|
151
|
-
'type': undefined,
|
|
152
|
-
'side': this.safeString(trade, 'S'),
|
|
153
|
-
'takerOrMaker': isMaker ? 'maker' : 'taker',
|
|
154
|
-
'price': this.safeString(trade, 'p'),
|
|
155
|
-
'amount': this.safeString(trade, 'q'),
|
|
156
|
-
'cost': undefined,
|
|
157
|
-
'fee': fee,
|
|
158
|
-
}, market);
|
|
159
|
-
}
|
|
160
|
-
async watchTicker(symbol, params = {}) {
|
|
161
|
-
/**
|
|
162
|
-
* @method
|
|
163
|
-
* @name wazirx#watchTicker
|
|
164
|
-
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
165
|
-
* @see https://docs.wazirx.com/#all-market-tickers-stream
|
|
166
|
-
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
167
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
168
|
-
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
169
|
-
*/
|
|
170
|
-
await this.loadMarkets();
|
|
171
|
-
const market = this.market(symbol);
|
|
172
|
-
const url = this.urls['api']['ws'];
|
|
173
|
-
const messageHash = 'ticker:' + market['symbol'];
|
|
174
|
-
const subscribeHash = 'tickers';
|
|
175
|
-
const stream = '!' + 'ticker@arr';
|
|
176
|
-
const subscribe = {
|
|
177
|
-
'event': 'subscribe',
|
|
178
|
-
'streams': [stream],
|
|
179
|
-
};
|
|
180
|
-
const request = this.deepExtend(subscribe, params);
|
|
181
|
-
return await this.watch(url, messageHash, request, subscribeHash);
|
|
182
|
-
}
|
|
183
|
-
async watchTickers(symbols = undefined, params = {}) {
|
|
184
|
-
/**
|
|
185
|
-
* @method
|
|
186
|
-
* @name wazirx#watchTickers
|
|
187
|
-
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
188
|
-
* @see https://docs.wazirx.com/#all-market-tickers-stream
|
|
189
|
-
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
190
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
191
|
-
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
192
|
-
*/
|
|
193
|
-
await this.loadMarkets();
|
|
194
|
-
symbols = this.marketSymbols(symbols);
|
|
195
|
-
const url = this.urls['api']['ws'];
|
|
196
|
-
const messageHash = 'tickers';
|
|
197
|
-
const stream = '!' + 'ticker@arr';
|
|
198
|
-
const subscribe = {
|
|
199
|
-
'event': 'subscribe',
|
|
200
|
-
'streams': [stream],
|
|
201
|
-
};
|
|
202
|
-
const request = this.deepExtend(subscribe, params);
|
|
203
|
-
const tickers = await this.watch(url, messageHash, request, messageHash);
|
|
204
|
-
return this.filterByArray(tickers, 'symbol', symbols, false);
|
|
205
|
-
}
|
|
206
|
-
handleTicker(client, message) {
|
|
207
|
-
//
|
|
208
|
-
// {
|
|
209
|
-
// "data":
|
|
210
|
-
// [
|
|
211
|
-
// {
|
|
212
|
-
// "E":1631625534000, // Event time
|
|
213
|
-
// "T":"SPOT", // Type
|
|
214
|
-
// "U":"wrx", // Quote unit
|
|
215
|
-
// "a":"0.0", // Best sell price
|
|
216
|
-
// "b":"0.0", // Best buy price
|
|
217
|
-
// "c":"5.0", // Last price
|
|
218
|
-
// "h":"5.0", // High price
|
|
219
|
-
// "l":"5.0", // Low price
|
|
220
|
-
// "o":"5.0", // Open price
|
|
221
|
-
// "q":"0.0", // Quantity
|
|
222
|
-
// "s":"btcwrx", // Symbol
|
|
223
|
-
// "u":"btc" // Base unit
|
|
224
|
-
// }
|
|
225
|
-
// ],
|
|
226
|
-
// "stream":"!ticker@arr"
|
|
227
|
-
// }
|
|
228
|
-
//
|
|
229
|
-
const data = this.safeValue(message, 'data', []);
|
|
230
|
-
for (let i = 0; i < data.length; i++) {
|
|
231
|
-
const ticker = data[i];
|
|
232
|
-
const parsedTicker = this.parseWSTicker(ticker);
|
|
233
|
-
const symbol = parsedTicker['symbol'];
|
|
234
|
-
this.tickers[symbol] = parsedTicker;
|
|
235
|
-
const messageHash = 'ticker:' + symbol;
|
|
236
|
-
client.resolve(parsedTicker, messageHash);
|
|
237
|
-
}
|
|
238
|
-
client.resolve(this.tickers, 'tickers');
|
|
239
|
-
}
|
|
240
|
-
parseWSTicker(ticker, market = undefined) {
|
|
241
|
-
//
|
|
242
|
-
// {
|
|
243
|
-
// "E":1631625534000, // Event time
|
|
244
|
-
// "T":"SPOT", // Type
|
|
245
|
-
// "U":"wrx", // Quote unit
|
|
246
|
-
// "a":"0.0", // Best sell price
|
|
247
|
-
// "b":"0.0", // Best buy price
|
|
248
|
-
// "c":"5.0", // Last price
|
|
249
|
-
// "h":"5.0", // High price
|
|
250
|
-
// "l":"5.0", // Low price
|
|
251
|
-
// "o":"5.0", // Open price
|
|
252
|
-
// "q":"0.0", // Quantity
|
|
253
|
-
// "s":"btcwrx", // Symbol
|
|
254
|
-
// "u":"btc" // Base unit
|
|
255
|
-
// }
|
|
256
|
-
//
|
|
257
|
-
const marketId = this.safeString(ticker, 's');
|
|
258
|
-
const timestamp = this.safeInteger(ticker, 'E');
|
|
259
|
-
return this.safeTicker({
|
|
260
|
-
'symbol': this.safeSymbol(marketId, market),
|
|
261
|
-
'timestamp': timestamp,
|
|
262
|
-
'datetime': this.iso8601(timestamp),
|
|
263
|
-
'high': this.safeString(ticker, 'h'),
|
|
264
|
-
'low': this.safeString(ticker, 'l'),
|
|
265
|
-
'bid': this.safeNumber(ticker, 'b'),
|
|
266
|
-
'bidVolume': undefined,
|
|
267
|
-
'ask': this.safeNumber(ticker, 'a'),
|
|
268
|
-
'askVolume': undefined,
|
|
269
|
-
'vwap': undefined,
|
|
270
|
-
'open': this.safeString(ticker, 'o'),
|
|
271
|
-
'close': undefined,
|
|
272
|
-
'last': this.safeString(ticker, 'l'),
|
|
273
|
-
'previousClose': undefined,
|
|
274
|
-
'change': undefined,
|
|
275
|
-
'percentage': undefined,
|
|
276
|
-
'average': undefined,
|
|
277
|
-
'baseVolume': undefined,
|
|
278
|
-
'quoteVolume': this.safeString(ticker, 'q'),
|
|
279
|
-
'info': ticker,
|
|
280
|
-
}, market);
|
|
281
|
-
}
|
|
282
|
-
async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
283
|
-
/**
|
|
284
|
-
* @method
|
|
285
|
-
* @name wazirx#watchTrades
|
|
286
|
-
* @description get the list of most recent trades for a particular symbol
|
|
287
|
-
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
288
|
-
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
289
|
-
* @param {int} [limit] the maximum amount of trades to fetch
|
|
290
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
291
|
-
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
292
|
-
*/
|
|
293
|
-
await this.loadMarkets();
|
|
294
|
-
const market = this.market(symbol);
|
|
295
|
-
symbol = market['symbol'];
|
|
296
|
-
const messageHash = market['id'] + '@trades';
|
|
297
|
-
const url = this.urls['api']['ws'];
|
|
298
|
-
const message = {
|
|
299
|
-
'event': 'subscribe',
|
|
300
|
-
'streams': [messageHash],
|
|
301
|
-
};
|
|
302
|
-
const request = this.extend(message, params);
|
|
303
|
-
const trades = await this.watch(url, messageHash, request, messageHash);
|
|
304
|
-
if (this.newUpdates) {
|
|
305
|
-
limit = trades.getLimit(symbol, limit);
|
|
306
|
-
}
|
|
307
|
-
return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
|
|
308
|
-
}
|
|
309
|
-
handleTrades(client, message) {
|
|
310
|
-
//
|
|
311
|
-
// {
|
|
312
|
-
// "data": {
|
|
313
|
-
// "trades": [{
|
|
314
|
-
// "E": 1631681323000, Event time
|
|
315
|
-
// "S": "buy", Side
|
|
316
|
-
// "a": 26946138, Buyer order ID
|
|
317
|
-
// "b": 26946169, Seller order ID
|
|
318
|
-
// "m": true, Is buyer maker?
|
|
319
|
-
// "p": "7.0", Price
|
|
320
|
-
// "q": "15.0", Quantity
|
|
321
|
-
// "s": "btcinr", Symbol
|
|
322
|
-
// "t": 17376030 Trade ID
|
|
323
|
-
// }]
|
|
324
|
-
// },
|
|
325
|
-
// "stream": "btcinr@trades"
|
|
326
|
-
// }
|
|
327
|
-
//
|
|
328
|
-
const data = this.safeValue(message, 'data', {});
|
|
329
|
-
const rawTrades = this.safeValue(data, 'trades', []);
|
|
330
|
-
const messageHash = this.safeString(message, 'stream');
|
|
331
|
-
const split = messageHash.split('@');
|
|
332
|
-
const marketId = this.safeString(split, 0);
|
|
333
|
-
const market = this.safeMarket(marketId);
|
|
334
|
-
const symbol = this.safeSymbol(marketId, market);
|
|
335
|
-
let trades = this.safeValue(this.trades, symbol);
|
|
336
|
-
if (trades === undefined) {
|
|
337
|
-
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
338
|
-
trades = new Cache.ArrayCache(limit);
|
|
339
|
-
this.trades[symbol] = trades;
|
|
340
|
-
}
|
|
341
|
-
for (let i = 0; i < rawTrades.length; i++) {
|
|
342
|
-
const parsedTrade = this.parseWsTrade(rawTrades[i], market);
|
|
343
|
-
trades.append(parsedTrade);
|
|
344
|
-
}
|
|
345
|
-
client.resolve(trades, messageHash);
|
|
346
|
-
}
|
|
347
|
-
async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
348
|
-
/**
|
|
349
|
-
* @method
|
|
350
|
-
* @name wazirx#watchMyTrades
|
|
351
|
-
* @description watch trades by user
|
|
352
|
-
* @see https://docs.wazirx.com/#trade-update
|
|
353
|
-
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
354
|
-
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
355
|
-
* @param {int} [limit] the maximum amount of trades to fetch
|
|
356
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
357
|
-
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
358
|
-
*/
|
|
359
|
-
await this.loadMarkets();
|
|
360
|
-
const token = await this.authenticate(params);
|
|
361
|
-
if (symbol !== undefined) {
|
|
362
|
-
const market = this.market(symbol);
|
|
363
|
-
symbol = market['symbol'];
|
|
364
|
-
}
|
|
365
|
-
const url = this.urls['api']['ws'];
|
|
366
|
-
const messageHash = 'myTrades';
|
|
367
|
-
const message = {
|
|
368
|
-
'event': 'subscribe',
|
|
369
|
-
'streams': ['ownTrade'],
|
|
370
|
-
'auth_key': token,
|
|
371
|
-
};
|
|
372
|
-
const request = this.deepExtend(message, params);
|
|
373
|
-
const trades = await this.watch(url, messageHash, request, messageHash);
|
|
374
|
-
if (this.newUpdates) {
|
|
375
|
-
limit = trades.getLimit(symbol, limit);
|
|
376
|
-
}
|
|
377
|
-
return this.filterBySymbolSinceLimit(trades, symbol, since, limit, true);
|
|
378
|
-
}
|
|
379
|
-
async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
380
|
-
/**
|
|
381
|
-
* @method
|
|
382
|
-
* @name wazirx#watchOHLCV
|
|
383
|
-
* @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
384
|
-
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
385
|
-
* @param {string} timeframe the length of time each candle represents
|
|
386
|
-
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
387
|
-
* @param {int} [limit] the maximum amount of candles to fetch
|
|
388
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
389
|
-
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
390
|
-
*/
|
|
391
|
-
await this.loadMarkets();
|
|
392
|
-
const market = this.market(symbol);
|
|
393
|
-
symbol = market['symbol'];
|
|
394
|
-
const url = this.urls['api']['ws'];
|
|
395
|
-
const messageHash = 'ohlcv:' + symbol + ':' + timeframe;
|
|
396
|
-
const stream = market['id'] + '@kline_' + timeframe;
|
|
397
|
-
const message = {
|
|
398
|
-
'event': 'subscribe',
|
|
399
|
-
'streams': [stream],
|
|
400
|
-
};
|
|
401
|
-
const request = this.deepExtend(message, params);
|
|
402
|
-
const ohlcv = await this.watch(url, messageHash, request, messageHash);
|
|
403
|
-
if (this.newUpdates) {
|
|
404
|
-
limit = ohlcv.getLimit(symbol, limit);
|
|
405
|
-
}
|
|
406
|
-
return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
|
|
407
|
-
}
|
|
408
|
-
handleOHLCV(client, message) {
|
|
409
|
-
//
|
|
410
|
-
// {
|
|
411
|
-
// "data": {
|
|
412
|
-
// "E":1631683058904, Event time
|
|
413
|
-
// "s": "btcinr", Symbol
|
|
414
|
-
// "t": 1638747660000, Kline start time
|
|
415
|
-
// "T": 1638747719999, Kline close time
|
|
416
|
-
// "i": "1m", Interval
|
|
417
|
-
// "o": "0.0010", Open price
|
|
418
|
-
// "c": "0.0020", Close price
|
|
419
|
-
// "h": "0.0025", High price
|
|
420
|
-
// "l": "0.0015", Low price
|
|
421
|
-
// "v": "1000", Base asset volume
|
|
422
|
-
// },
|
|
423
|
-
// "stream": "btcinr@kline_1m"
|
|
424
|
-
// }
|
|
425
|
-
//
|
|
426
|
-
const data = this.safeValue(message, 'data', {});
|
|
427
|
-
const marketId = this.safeString(data, 's');
|
|
428
|
-
const market = this.safeMarket(marketId);
|
|
429
|
-
const symbol = this.safeSymbol(marketId, market);
|
|
430
|
-
const timeframe = this.safeString(data, 'i');
|
|
431
|
-
this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
|
|
432
|
-
let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
|
|
433
|
-
if (stored === undefined) {
|
|
434
|
-
const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
|
|
435
|
-
stored = new Cache.ArrayCacheByTimestamp(limit);
|
|
436
|
-
this.ohlcvs[symbol][timeframe] = stored;
|
|
437
|
-
}
|
|
438
|
-
const parsed = this.parseWsOHLCV(data, market);
|
|
439
|
-
stored.append(parsed);
|
|
440
|
-
const messageHash = 'ohlcv:' + symbol + ':' + timeframe;
|
|
441
|
-
client.resolve(stored, messageHash);
|
|
442
|
-
}
|
|
443
|
-
parseWsOHLCV(ohlcv, market = undefined) {
|
|
444
|
-
//
|
|
445
|
-
// {
|
|
446
|
-
// "E":1631683058904, Event time
|
|
447
|
-
// "s": "btcinr", Symbol
|
|
448
|
-
// "t": 1638747660000, Kline start time
|
|
449
|
-
// "T": 1638747719999, Kline close time
|
|
450
|
-
// "i": "1m", Interval
|
|
451
|
-
// "o": "0.0010", Open price
|
|
452
|
-
// "c": "0.0020", Close price
|
|
453
|
-
// "h": "0.0025", High price
|
|
454
|
-
// "l": "0.0015", Low price
|
|
455
|
-
// "v": "1000", Base asset volume
|
|
456
|
-
// }
|
|
457
|
-
//
|
|
458
|
-
return [
|
|
459
|
-
this.safeInteger(ohlcv, 't'),
|
|
460
|
-
this.safeNumber(ohlcv, 'o'),
|
|
461
|
-
this.safeNumber(ohlcv, 'c'),
|
|
462
|
-
this.safeNumber(ohlcv, 'h'),
|
|
463
|
-
this.safeNumber(ohlcv, 'l'),
|
|
464
|
-
this.safeNumber(ohlcv, 'v'),
|
|
465
|
-
];
|
|
466
|
-
}
|
|
467
|
-
async watchOrderBook(symbol, limit = undefined, params = {}) {
|
|
468
|
-
/**
|
|
469
|
-
* @method
|
|
470
|
-
* @name wazirx#watchOrderBook
|
|
471
|
-
* @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
472
|
-
* @see https://docs.wazirx.com/#depth-stream
|
|
473
|
-
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
474
|
-
* @param {int} [limit] the maximum amount of order book entries to return
|
|
475
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
476
|
-
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
477
|
-
*/
|
|
478
|
-
await this.loadMarkets();
|
|
479
|
-
const market = this.market(symbol);
|
|
480
|
-
symbol = market['symbol'];
|
|
481
|
-
const url = this.urls['api']['ws'];
|
|
482
|
-
const messageHash = 'orderbook:' + symbol;
|
|
483
|
-
const stream = market['id'] + '@depth';
|
|
484
|
-
const subscribe = {
|
|
485
|
-
'event': 'subscribe',
|
|
486
|
-
'streams': [stream],
|
|
487
|
-
};
|
|
488
|
-
const request = this.deepExtend(subscribe, params);
|
|
489
|
-
const orderbook = await this.watch(url, messageHash, request, messageHash);
|
|
490
|
-
return orderbook.limit();
|
|
491
|
-
}
|
|
492
|
-
handleDelta(bookside, delta) {
|
|
493
|
-
const bidAsk = this.parseBidAsk(delta, 0, 1);
|
|
494
|
-
bookside.storeArray(bidAsk);
|
|
495
|
-
}
|
|
496
|
-
handleDeltas(bookside, deltas) {
|
|
497
|
-
for (let i = 0; i < deltas.length; i++) {
|
|
498
|
-
this.handleDelta(bookside, deltas[i]);
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
handleOrderBook(client, message) {
|
|
502
|
-
//
|
|
503
|
-
// {
|
|
504
|
-
// "data": {
|
|
505
|
-
// "E": 1659475095000,
|
|
506
|
-
// "a": [
|
|
507
|
-
// ["23051.0", "1.30141"],
|
|
508
|
-
// ],
|
|
509
|
-
// "b": [
|
|
510
|
-
// ["22910.0", "1.30944"],
|
|
511
|
-
// ],
|
|
512
|
-
// "s": "btcusdt"
|
|
513
|
-
// },
|
|
514
|
-
// "stream": "btcusdt@depth"
|
|
515
|
-
// }
|
|
516
|
-
//
|
|
517
|
-
const data = this.safeValue(message, 'data', {});
|
|
518
|
-
const timestamp = this.safeInteger(data, 'E');
|
|
519
|
-
const marketId = this.safeString(data, 's');
|
|
520
|
-
const market = this.safeMarket(marketId);
|
|
521
|
-
const symbol = market['symbol'];
|
|
522
|
-
const messageHash = 'orderbook:' + symbol;
|
|
523
|
-
const currentOrderBook = this.safeValue(this.orderbooks, symbol);
|
|
524
|
-
if (currentOrderBook === undefined) {
|
|
525
|
-
const snapshot = this.parseOrderBook(data, symbol, timestamp, 'b', 'a');
|
|
526
|
-
const orderBook = this.orderBook(snapshot);
|
|
527
|
-
this.orderbooks[symbol] = orderBook;
|
|
528
|
-
}
|
|
529
|
-
else {
|
|
530
|
-
const asks = this.safeValue(data, 'a', []);
|
|
531
|
-
const bids = this.safeValue(data, 'b', []);
|
|
532
|
-
this.handleDeltas(currentOrderBook['asks'], asks);
|
|
533
|
-
this.handleDeltas(currentOrderBook['bids'], bids);
|
|
534
|
-
currentOrderBook['nonce'] = timestamp;
|
|
535
|
-
currentOrderBook['timestamp'] = timestamp;
|
|
536
|
-
currentOrderBook['datetime'] = this.iso8601(timestamp);
|
|
537
|
-
this.orderbooks[symbol] = currentOrderBook;
|
|
538
|
-
}
|
|
539
|
-
client.resolve(this.orderbooks[symbol], messageHash);
|
|
540
|
-
}
|
|
541
|
-
async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
542
|
-
await this.loadMarkets();
|
|
543
|
-
if (symbol !== undefined) {
|
|
544
|
-
const market = this.market(symbol);
|
|
545
|
-
symbol = market['symbol'];
|
|
546
|
-
}
|
|
547
|
-
const token = await this.authenticate(params);
|
|
548
|
-
const messageHash = 'orders';
|
|
549
|
-
const message = {
|
|
550
|
-
'event': 'subscribe',
|
|
551
|
-
'streams': ['orderUpdate'],
|
|
552
|
-
'auth_key': token,
|
|
553
|
-
};
|
|
554
|
-
const url = this.urls['api']['ws'];
|
|
555
|
-
const request = this.deepExtend(message, params);
|
|
556
|
-
const orders = await this.watch(url, messageHash, request, messageHash, request);
|
|
557
|
-
if (this.newUpdates) {
|
|
558
|
-
limit = orders.getLimit(symbol, limit);
|
|
559
|
-
}
|
|
560
|
-
return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
|
|
561
|
-
}
|
|
562
|
-
handleOrder(client, message) {
|
|
563
|
-
//
|
|
564
|
-
// {
|
|
565
|
-
// "data": {
|
|
566
|
-
// "E": 1631683058904,
|
|
567
|
-
// "O": 1631683058000,
|
|
568
|
-
// "S": "ask",
|
|
569
|
-
// "V": "70.0",
|
|
570
|
-
// "X": "wait",
|
|
571
|
-
// "i": 26946170,
|
|
572
|
-
// "m": true,
|
|
573
|
-
// "o": "sell",
|
|
574
|
-
// "p": "5.0",
|
|
575
|
-
// "q": "70.0",
|
|
576
|
-
// "s": "wrxinr",
|
|
577
|
-
// "v": "0.0"
|
|
578
|
-
// },
|
|
579
|
-
// "stream": "orderUpdate"
|
|
580
|
-
// }
|
|
581
|
-
//
|
|
582
|
-
const order = this.safeValue(message, 'data', {});
|
|
583
|
-
const parsedOrder = this.parseWsOrder(order);
|
|
584
|
-
if (this.orders === undefined) {
|
|
585
|
-
const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
|
|
586
|
-
this.orders = new Cache.ArrayCacheBySymbolById(limit);
|
|
587
|
-
}
|
|
588
|
-
const orders = this.orders;
|
|
589
|
-
orders.append(parsedOrder);
|
|
590
|
-
let messageHash = 'orders';
|
|
591
|
-
client.resolve(this.orders, messageHash);
|
|
592
|
-
messageHash += ':' + parsedOrder['symbol'];
|
|
593
|
-
client.resolve(this.orders, messageHash);
|
|
594
|
-
}
|
|
595
|
-
parseWsOrder(order, market = undefined) {
|
|
596
|
-
//
|
|
597
|
-
// {
|
|
598
|
-
// "E": 1631683058904,
|
|
599
|
-
// "O": 1631683058000,
|
|
600
|
-
// "S": "ask",
|
|
601
|
-
// "V": "70.0",
|
|
602
|
-
// "X": "wait",
|
|
603
|
-
// "i": 26946170,
|
|
604
|
-
// "m": true,
|
|
605
|
-
// "o": "sell",
|
|
606
|
-
// "p": "5.0",
|
|
607
|
-
// "q": "70.0",
|
|
608
|
-
// "s": "wrxinr",
|
|
609
|
-
// "v": "0.0"
|
|
610
|
-
// }
|
|
611
|
-
//
|
|
612
|
-
const timestamp = this.safeInteger(order, 'O');
|
|
613
|
-
const marketId = this.safeString(order, 's');
|
|
614
|
-
const status = this.safeString(order, 'X');
|
|
615
|
-
market = this.safeMarket(marketId);
|
|
616
|
-
return this.safeOrder({
|
|
617
|
-
'info': order,
|
|
618
|
-
'id': this.safeString(order, 'i'),
|
|
619
|
-
'clientOrderId': this.safeString(order, 'c'),
|
|
620
|
-
'datetime': this.iso8601(timestamp),
|
|
621
|
-
'timestamp': timestamp,
|
|
622
|
-
'lastTradeTimestamp': undefined,
|
|
623
|
-
'symbol': market['symbol'],
|
|
624
|
-
'type': this.safeValue(order, 'm') ? 'limit' : 'market',
|
|
625
|
-
'timeInForce': undefined,
|
|
626
|
-
'postOnly': undefined,
|
|
627
|
-
'side': this.safeString(order, 'o'),
|
|
628
|
-
'price': this.safeString(order, 'p'),
|
|
629
|
-
'stopPrice': undefined,
|
|
630
|
-
'triggerPrice': undefined,
|
|
631
|
-
'amount': this.safeString(order, 'V'),
|
|
632
|
-
'filled': undefined,
|
|
633
|
-
'remaining': this.safeString(order, 'q'),
|
|
634
|
-
'cost': undefined,
|
|
635
|
-
'average': this.safeString(order, 'v'),
|
|
636
|
-
'status': this.parseOrderStatus(status),
|
|
637
|
-
'fee': undefined,
|
|
638
|
-
'trades': undefined,
|
|
639
|
-
}, market);
|
|
640
|
-
}
|
|
641
|
-
handleMyTrades(client, message) {
|
|
642
|
-
//
|
|
643
|
-
// {
|
|
644
|
-
// "data": {
|
|
645
|
-
// "E": 1631683058000,
|
|
646
|
-
// "S": "ask",
|
|
647
|
-
// "U": "usdt",
|
|
648
|
-
// "a": 114144050,
|
|
649
|
-
// "b": 114144121,
|
|
650
|
-
// "f": "0.2",
|
|
651
|
-
// "ga": "0.0",
|
|
652
|
-
// "gc": "usdt",
|
|
653
|
-
// "m": true,
|
|
654
|
-
// "o": 26946170,
|
|
655
|
-
// "p": "5.0",
|
|
656
|
-
// "q": "20.0",
|
|
657
|
-
// "s": "btcusdt",
|
|
658
|
-
// "t": 17376032,
|
|
659
|
-
// "w": "100.0"
|
|
660
|
-
// },
|
|
661
|
-
// "stream": "ownTrade"
|
|
662
|
-
// }
|
|
663
|
-
//
|
|
664
|
-
const trade = this.safeValue(message, 'data', {});
|
|
665
|
-
const messageHash = 'myTrades';
|
|
666
|
-
let myTrades = undefined;
|
|
667
|
-
if (this.myTrades === undefined) {
|
|
668
|
-
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
669
|
-
myTrades = new Cache.ArrayCacheBySymbolById(limit);
|
|
670
|
-
this.myTrades = myTrades;
|
|
671
|
-
}
|
|
672
|
-
else {
|
|
673
|
-
myTrades = this.myTrades;
|
|
674
|
-
}
|
|
675
|
-
const parsedTrade = this.parseWsTrade(trade);
|
|
676
|
-
myTrades.append(parsedTrade);
|
|
677
|
-
client.resolve(myTrades, messageHash);
|
|
678
|
-
}
|
|
679
|
-
handleConnected(client, message) {
|
|
680
|
-
//
|
|
681
|
-
// {
|
|
682
|
-
// "data": {
|
|
683
|
-
// "timeout_duration": 1800
|
|
684
|
-
// },
|
|
685
|
-
// "event": "connected"
|
|
686
|
-
// }
|
|
687
|
-
//
|
|
688
|
-
return message;
|
|
689
|
-
}
|
|
690
|
-
handleSubscribed(client, message) {
|
|
691
|
-
//
|
|
692
|
-
// {
|
|
693
|
-
// "data": {
|
|
694
|
-
// "streams": ["!ticker@arr"]
|
|
695
|
-
// },
|
|
696
|
-
// "event": "subscribed",
|
|
697
|
-
// "id": 0
|
|
698
|
-
// }
|
|
699
|
-
//
|
|
700
|
-
return message;
|
|
701
|
-
}
|
|
702
|
-
handleError(client, message) {
|
|
703
|
-
//
|
|
704
|
-
// {
|
|
705
|
-
// "data": {
|
|
706
|
-
// "code": 400,
|
|
707
|
-
// "message": "Invalid request: streams must be an array"
|
|
708
|
-
// },
|
|
709
|
-
// "event": "error",
|
|
710
|
-
// "id": 0
|
|
711
|
-
// }
|
|
712
|
-
//
|
|
713
|
-
// {
|
|
714
|
-
// "message": "HeartBeat message not received, closing the connection",
|
|
715
|
-
// "status": "error"
|
|
716
|
-
// }
|
|
717
|
-
//
|
|
718
|
-
throw new errors.ExchangeError(this.id + ' ' + this.json(message));
|
|
719
|
-
}
|
|
720
|
-
handleMessage(client, message) {
|
|
721
|
-
const status = this.safeString(message, 'status');
|
|
722
|
-
if (status === 'error') {
|
|
723
|
-
return this.handleError(client, message);
|
|
724
|
-
}
|
|
725
|
-
const event = this.safeString(message, 'event');
|
|
726
|
-
const eventHandlers = {
|
|
727
|
-
'error': this.handleError,
|
|
728
|
-
'connected': this.handleConnected,
|
|
729
|
-
'subscribed': this.handleSubscribed,
|
|
730
|
-
};
|
|
731
|
-
const eventHandler = this.safeValue(eventHandlers, event);
|
|
732
|
-
if (eventHandler !== undefined) {
|
|
733
|
-
return eventHandler.call(this, client, message);
|
|
734
|
-
}
|
|
735
|
-
const stream = this.safeString(message, 'stream', '');
|
|
736
|
-
const streamHandlers = {
|
|
737
|
-
'ticker@arr': this.handleTicker,
|
|
738
|
-
'@depth': this.handleOrderBook,
|
|
739
|
-
'@kline': this.handleOHLCV,
|
|
740
|
-
'@trades': this.handleTrades,
|
|
741
|
-
'outboundAccountPosition': this.handleBalance,
|
|
742
|
-
'orderUpdate': this.handleOrder,
|
|
743
|
-
'ownTrade': this.handleMyTrades,
|
|
744
|
-
};
|
|
745
|
-
const streams = Object.keys(streamHandlers);
|
|
746
|
-
for (let i = 0; i < streams.length; i++) {
|
|
747
|
-
if (this.inArray(streams[i], stream)) {
|
|
748
|
-
const handler = streamHandlers[streams[i]];
|
|
749
|
-
return handler.call(this, client, message);
|
|
750
|
-
}
|
|
751
|
-
}
|
|
752
|
-
throw new errors.NotSupported(this.id + ' this message type is not supported yet. Message: ' + this.json(message));
|
|
753
|
-
}
|
|
754
|
-
async authenticate(params = {}) {
|
|
755
|
-
const url = this.urls['api']['ws'];
|
|
756
|
-
const client = this.client(url);
|
|
757
|
-
const messageHash = 'authenticated';
|
|
758
|
-
const now = this.milliseconds();
|
|
759
|
-
let subscription = this.safeValue(client.subscriptions, messageHash);
|
|
760
|
-
const expires = this.safeInteger(subscription, 'expires');
|
|
761
|
-
if (subscription === undefined || now > expires) {
|
|
762
|
-
subscription = await this.privatePostCreateAuthToken();
|
|
763
|
-
subscription['expires'] = now + this.safeInteger(subscription, 'timeout_duration') * 1000;
|
|
764
|
-
//
|
|
765
|
-
// {
|
|
766
|
-
// "auth_key": "Xx***dM",
|
|
767
|
-
// "timeout_duration": 900
|
|
768
|
-
// }
|
|
769
|
-
//
|
|
770
|
-
client.subscriptions[messageHash] = subscription;
|
|
771
|
-
}
|
|
772
|
-
return this.safeString(subscription, 'auth_key');
|
|
773
|
-
}
|
|
774
|
-
}
|
|
775
|
-
|
|
776
|
-
module.exports = wazirx;
|