ccxt 4.2.18 → 4.2.20
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 +100 -100
- package/dist/ccxt.browser.js +34240 -33297
- package/dist/ccxt.browser.min.js +2 -2
- 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 +276 -27
- package/dist/cjs/src/bigone.js +434 -168
- package/dist/cjs/src/binance.js +165 -35
- package/dist/cjs/src/binanceus.js +25 -0
- package/dist/cjs/src/bingx.js +185 -42
- package/dist/cjs/src/bitfinex.js +2 -3
- package/dist/cjs/src/bitget.js +84 -47
- 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/bitteam.js +1 -1
- package/dist/cjs/src/bybit.js +27 -75
- 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 -19
- package/dist/cjs/src/deribit.js +17 -4
- package/dist/cjs/src/gate.js +151 -194
- 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 +140 -86
- 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 -29
- 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/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 +11 -2
- package/js/ccxt.js +8 -2
- package/js/src/abstract/binance.d.ts +1 -0
- package/js/src/abstract/binancecoinm.d.ts +1 -0
- package/js/src/abstract/binanceus.d.ts +1 -0
- package/js/src/abstract/binanceusdm.d.ts +1 -0
- package/js/src/abstract/bitpanda.d.ts +4 -4
- package/js/src/abstract/bitpanda.js +3 -3
- 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/abstract/onetrading.js +11 -0
- package/js/src/ascendex.js +2 -0
- package/js/src/base/Exchange.d.ts +3 -0
- package/js/src/base/Exchange.js +10 -0
- package/js/src/binance.js +2 -1
- package/js/src/binanceus.js +17 -0
- package/js/src/bingx.js +3 -2
- package/js/src/bitget.d.ts +1 -1
- package/js/src/bitget.js +47 -34
- 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/bitteam.js +1 -1
- package/js/src/bybit.d.ts +0 -1
- package/js/src/bybit.js +1 -29
- package/js/src/delta.d.ts +0 -1
- package/js/src/delta.js +0 -18
- package/js/src/deribit.js +11 -3
- package/js/src/gate.d.ts +1 -1
- package/js/src/gate.js +50 -135
- package/js/src/htx.js +3 -0
- package/js/src/kraken.d.ts +1 -0
- package/js/src/kraken.js +39 -38
- package/js/src/kucoinfutures.d.ts +6 -6
- package/js/src/kucoinfutures.js +9 -9
- 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/okx.d.ts +0 -1
- package/js/src/okx.js +0 -18
- 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 +6 -1
- package/js/src/pro/bitpanda.d.ts +2 -34
- package/js/src/pro/bitpanda.js +5 -1330
- 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/package.json +2 -2
- package/rollup.config.js +2 -0
- package/skip-tests.json +4 -2
- package/test-commonjs.cjs +25 -1
- package/dist/cjs/js/ccxt.js +0 -478
- 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 -5260
- 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 -9851
- 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 -3872
- 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 -7624
- 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 -844
- 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 -3310
- 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 -1062
- package/dist/cjs/js/src/pro/kucoinfutures.js +0 -989
- 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 -1022
- 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 -2310
- 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/coincheck.js +0 -0
- /package/dist/cjs/{js/src → src}/pro/coinone.js +0 -0
package/dist/cjs/ccxt.js
CHANGED
|
@@ -94,6 +94,7 @@ var novadax = require('./src/novadax.js');
|
|
|
94
94
|
var oceanex = require('./src/oceanex.js');
|
|
95
95
|
var okcoin = require('./src/okcoin.js');
|
|
96
96
|
var okx = require('./src/okx.js');
|
|
97
|
+
var onetrading = require('./src/onetrading.js');
|
|
97
98
|
var p2b = require('./src/p2b.js');
|
|
98
99
|
var paymium = require('./src/paymium.js');
|
|
99
100
|
var phemex = require('./src/phemex.js');
|
|
@@ -134,7 +135,9 @@ var bybit$1 = require('./src/pro/bybit.js');
|
|
|
134
135
|
var cex$1 = require('./src/pro/cex.js');
|
|
135
136
|
var coinbase$1 = require('./src/pro/coinbase.js');
|
|
136
137
|
var coinbasepro$1 = require('./src/pro/coinbasepro.js');
|
|
138
|
+
var coincheck$1 = require('./src/pro/coincheck.js');
|
|
137
139
|
var coinex$1 = require('./src/pro/coinex.js');
|
|
140
|
+
var coinone$1 = require('./src/pro/coinone.js');
|
|
138
141
|
var cryptocom$1 = require('./src/pro/cryptocom.js');
|
|
139
142
|
var currencycom$1 = require('./src/pro/currencycom.js');
|
|
140
143
|
var deribit$1 = require('./src/pro/deribit.js');
|
|
@@ -153,11 +156,13 @@ var kraken$1 = require('./src/pro/kraken.js');
|
|
|
153
156
|
var krakenfutures$1 = require('./src/pro/krakenfutures.js');
|
|
154
157
|
var kucoin$1 = require('./src/pro/kucoin.js');
|
|
155
158
|
var kucoinfutures$1 = require('./src/pro/kucoinfutures.js');
|
|
159
|
+
var lbank$1 = require('./src/pro/lbank.js');
|
|
156
160
|
var luno$1 = require('./src/pro/luno.js');
|
|
157
161
|
var mexc$1 = require('./src/pro/mexc.js');
|
|
158
162
|
var ndax$1 = require('./src/pro/ndax.js');
|
|
159
163
|
var okcoin$1 = require('./src/pro/okcoin.js');
|
|
160
164
|
var okx$1 = require('./src/pro/okx.js');
|
|
165
|
+
var onetrading$1 = require('./src/pro/onetrading.js');
|
|
161
166
|
var phemex$1 = require('./src/pro/phemex.js');
|
|
162
167
|
var poloniex$1 = require('./src/pro/poloniex.js');
|
|
163
168
|
var poloniexfutures$1 = require('./src/pro/poloniexfutures.js');
|
|
@@ -169,7 +174,7 @@ var woo$1 = require('./src/pro/woo.js');
|
|
|
169
174
|
|
|
170
175
|
//-----------------------------------------------------------------------------
|
|
171
176
|
// this is updated by vss.js when building
|
|
172
|
-
const version = '4.2.
|
|
177
|
+
const version = '4.2.20';
|
|
173
178
|
Exchange["default"].ccxtVersion = version;
|
|
174
179
|
const exchanges = {
|
|
175
180
|
'ace': ace,
|
|
@@ -254,6 +259,7 @@ const exchanges = {
|
|
|
254
259
|
'oceanex': oceanex,
|
|
255
260
|
'okcoin': okcoin,
|
|
256
261
|
'okx': okx,
|
|
262
|
+
'onetrading': onetrading,
|
|
257
263
|
'p2b': p2b,
|
|
258
264
|
'paymium': paymium,
|
|
259
265
|
'phemex': phemex,
|
|
@@ -296,7 +302,9 @@ const pro = {
|
|
|
296
302
|
'cex': cex$1,
|
|
297
303
|
'coinbase': coinbase$1,
|
|
298
304
|
'coinbasepro': coinbasepro$1,
|
|
305
|
+
'coincheck': coincheck$1,
|
|
299
306
|
'coinex': coinex$1,
|
|
307
|
+
'coinone': coinone$1,
|
|
300
308
|
'cryptocom': cryptocom$1,
|
|
301
309
|
'currencycom': currencycom$1,
|
|
302
310
|
'deribit': deribit$1,
|
|
@@ -315,11 +323,13 @@ const pro = {
|
|
|
315
323
|
'krakenfutures': krakenfutures$1,
|
|
316
324
|
'kucoin': kucoin$1,
|
|
317
325
|
'kucoinfutures': kucoinfutures$1,
|
|
326
|
+
'lbank': lbank$1,
|
|
318
327
|
'luno': luno$1,
|
|
319
328
|
'mexc': mexc$1,
|
|
320
329
|
'ndax': ndax$1,
|
|
321
330
|
'okcoin': okcoin$1,
|
|
322
331
|
'okx': okx$1,
|
|
332
|
+
'onetrading': onetrading$1,
|
|
323
333
|
'phemex': phemex$1,
|
|
324
334
|
'poloniex': poloniex$1,
|
|
325
335
|
'poloniexfutures': poloniexfutures$1,
|
|
@@ -452,6 +462,7 @@ exports.novadax = novadax;
|
|
|
452
462
|
exports.oceanex = oceanex;
|
|
453
463
|
exports.okcoin = okcoin;
|
|
454
464
|
exports.okx = okx;
|
|
465
|
+
exports.onetrading = onetrading;
|
|
455
466
|
exports.p2b = p2b;
|
|
456
467
|
exports.paymium = paymium;
|
|
457
468
|
exports.phemex = phemex;
|
package/dist/cjs/src/alpaca.js
CHANGED
|
@@ -36,7 +36,7 @@ class alpaca extends alpaca$1 {
|
|
|
36
36
|
'market': 'https://data.sandbox.{hostname}',
|
|
37
37
|
},
|
|
38
38
|
'doc': 'https://alpaca.markets/docs/',
|
|
39
|
-
'fees': 'https://alpaca.markets/
|
|
39
|
+
'fees': 'https://docs.alpaca.markets/docs/crypto-fees',
|
|
40
40
|
},
|
|
41
41
|
'has': {
|
|
42
42
|
'CORS': false,
|
|
@@ -207,28 +207,28 @@ class alpaca extends alpaca$1 {
|
|
|
207
207
|
'trading': {
|
|
208
208
|
'tierBased': true,
|
|
209
209
|
'percentage': true,
|
|
210
|
-
'maker': this.parseNumber('0.
|
|
211
|
-
'taker': this.parseNumber('0.
|
|
210
|
+
'maker': this.parseNumber('0.0015'),
|
|
211
|
+
'taker': this.parseNumber('0.0025'),
|
|
212
212
|
'tiers': {
|
|
213
213
|
'taker': [
|
|
214
|
-
[this.parseNumber('0'), this.parseNumber('0.
|
|
215
|
-
[this.parseNumber('
|
|
216
|
-
[this.parseNumber('
|
|
217
|
-
[this.parseNumber('
|
|
218
|
-
[this.parseNumber('10000000'), this.parseNumber('0.
|
|
219
|
-
[this.parseNumber('25000000'), this.parseNumber('0.
|
|
220
|
-
[this.parseNumber('50000000'), this.parseNumber('0.
|
|
214
|
+
[this.parseNumber('0'), this.parseNumber('0.0025')],
|
|
215
|
+
[this.parseNumber('100000'), this.parseNumber('0.0022')],
|
|
216
|
+
[this.parseNumber('500000'), this.parseNumber('0.0020')],
|
|
217
|
+
[this.parseNumber('1000000'), this.parseNumber('0.0018')],
|
|
218
|
+
[this.parseNumber('10000000'), this.parseNumber('0.0015')],
|
|
219
|
+
[this.parseNumber('25000000'), this.parseNumber('0.0013')],
|
|
220
|
+
[this.parseNumber('50000000'), this.parseNumber('0.0012')],
|
|
221
221
|
[this.parseNumber('100000000'), this.parseNumber('0.001')],
|
|
222
222
|
],
|
|
223
223
|
'maker': [
|
|
224
|
-
[this.parseNumber('0'), this.parseNumber('0.
|
|
225
|
-
[this.parseNumber('
|
|
226
|
-
[this.parseNumber('
|
|
227
|
-
[this.parseNumber('
|
|
228
|
-
[this.parseNumber('10000000'), this.parseNumber('0.
|
|
229
|
-
[this.parseNumber('25000000'), this.parseNumber('0.
|
|
230
|
-
[this.parseNumber('50000000'), this.parseNumber('0.
|
|
231
|
-
[this.parseNumber('100000000'), this.parseNumber('0.
|
|
224
|
+
[this.parseNumber('0'), this.parseNumber('0.0015')],
|
|
225
|
+
[this.parseNumber('100000'), this.parseNumber('0.0012')],
|
|
226
|
+
[this.parseNumber('500000'), this.parseNumber('0.001')],
|
|
227
|
+
[this.parseNumber('1000000'), this.parseNumber('0.0008')],
|
|
228
|
+
[this.parseNumber('10000000'), this.parseNumber('0.0005')],
|
|
229
|
+
[this.parseNumber('25000000'), this.parseNumber('0.0002')],
|
|
230
|
+
[this.parseNumber('50000000'), this.parseNumber('0.0002')],
|
|
231
|
+
[this.parseNumber('100000000'), this.parseNumber('0.00')],
|
|
232
232
|
],
|
|
233
233
|
},
|
|
234
234
|
},
|
package/dist/cjs/src/ascendex.js
CHANGED
|
@@ -64,6 +64,8 @@ class ascendex extends ascendex$1 {
|
|
|
64
64
|
'fetchMarkets': true,
|
|
65
65
|
'fetchMarkOHLCV': false,
|
|
66
66
|
'fetchOHLCV': true,
|
|
67
|
+
'fetchOpenInterest': false,
|
|
68
|
+
'fetchOpenInterestHistory': false,
|
|
67
69
|
'fetchOpenOrders': true,
|
|
68
70
|
'fetchOrder': true,
|
|
69
71
|
'fetchOrderBook': true,
|
|
@@ -808,12 +810,14 @@ class ascendex extends ascendex$1 {
|
|
|
808
810
|
*/
|
|
809
811
|
await this.loadMarkets();
|
|
810
812
|
await this.loadAccounts();
|
|
811
|
-
let query = undefined;
|
|
812
813
|
let marketType = undefined;
|
|
813
|
-
|
|
814
|
+
let marginMode = undefined;
|
|
815
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
|
|
816
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchBalance', params);
|
|
814
817
|
const isMargin = this.safeValue(params, 'margin', false);
|
|
815
|
-
|
|
816
|
-
|
|
818
|
+
const isCross = marginMode === 'cross';
|
|
819
|
+
marketType = (isMargin || isCross) ? 'margin' : marketType;
|
|
820
|
+
params = this.omit(params, 'margin');
|
|
817
821
|
const accountsByType = this.safeValue(this.options, 'accountsByType', {});
|
|
818
822
|
const accountCategory = this.safeString(accountsByType, marketType, 'cash');
|
|
819
823
|
const account = this.safeValue(this.accounts, 0, {});
|
|
@@ -821,15 +825,18 @@ class ascendex extends ascendex$1 {
|
|
|
821
825
|
const request = {
|
|
822
826
|
'account-group': accountGroup,
|
|
823
827
|
};
|
|
828
|
+
if ((marginMode === 'isolated') && (marketType !== 'swap')) {
|
|
829
|
+
throw new errors.BadRequest(this.id + ' does not supported isolated margin trading');
|
|
830
|
+
}
|
|
824
831
|
if ((accountCategory === 'cash') || (accountCategory === 'margin')) {
|
|
825
832
|
request['account-category'] = accountCategory;
|
|
826
833
|
}
|
|
827
834
|
let response = undefined;
|
|
828
835
|
if ((marketType === 'spot') || (marketType === 'margin')) {
|
|
829
|
-
response = await this.v1PrivateAccountCategoryGetBalance(this.extend(request,
|
|
836
|
+
response = await this.v1PrivateAccountCategoryGetBalance(this.extend(request, params));
|
|
830
837
|
}
|
|
831
838
|
else if (marketType === 'swap') {
|
|
832
|
-
response = await this.v2PrivateAccountGroupGetFuturesPosition(this.extend(request,
|
|
839
|
+
response = await this.v2PrivateAccountGroupGetFuturesPosition(this.extend(request, params));
|
|
833
840
|
}
|
|
834
841
|
else {
|
|
835
842
|
throw new errors.NotSupported(this.id + ' fetchBalance() is not currently supported for ' + marketType + ' markets');
|
|
@@ -365,11 +365,17 @@ class Exchange {
|
|
|
365
365
|
'createMarketOrderWithCost': undefined,
|
|
366
366
|
'createMarketSellOrderWithCost': undefined,
|
|
367
367
|
'createOrders': undefined,
|
|
368
|
+
'createOrderWithTakeProfitAndStopLoss': undefined,
|
|
368
369
|
'createPostOnlyOrder': undefined,
|
|
369
370
|
'createReduceOnlyOrder': undefined,
|
|
371
|
+
'createStopLossOrder': undefined,
|
|
370
372
|
'createStopOrder': undefined,
|
|
371
373
|
'createStopLimitOrder': undefined,
|
|
372
374
|
'createStopMarketOrder': undefined,
|
|
375
|
+
'createTakeProfitOrder': undefined,
|
|
376
|
+
'createTrailingAmountOrder': undefined,
|
|
377
|
+
'createTrailingPercentOrder': undefined,
|
|
378
|
+
'createTriggerOrder': undefined,
|
|
373
379
|
'createOrderWs': undefined,
|
|
374
380
|
'editOrderWs': undefined,
|
|
375
381
|
'fetchOpenOrdersWs': undefined,
|
|
@@ -388,6 +394,7 @@ class Exchange {
|
|
|
388
394
|
'fetchBorrowInterest': undefined,
|
|
389
395
|
'fetchBorrowRateHistory': undefined,
|
|
390
396
|
'fetchCanceledOrders': undefined,
|
|
397
|
+
'fetchCanceledAndClosedOrders': undefined,
|
|
391
398
|
'fetchClosedOrder': undefined,
|
|
392
399
|
'fetchClosedOrders': undefined,
|
|
393
400
|
'fetchCrossBorrowRate': undefined,
|
|
@@ -433,7 +440,7 @@ class Exchange {
|
|
|
433
440
|
'fetchPositionsForSymbol': undefined,
|
|
434
441
|
'fetchPositionsRisk': undefined,
|
|
435
442
|
'fetchPremiumIndexOHLCV': undefined,
|
|
436
|
-
'fetchStatus':
|
|
443
|
+
'fetchStatus': undefined,
|
|
437
444
|
'fetchTicker': true,
|
|
438
445
|
'fetchTickers': undefined,
|
|
439
446
|
'fetchTime': undefined,
|
|
@@ -662,10 +669,28 @@ class Exchange {
|
|
|
662
669
|
console.log(...args);
|
|
663
670
|
}
|
|
664
671
|
async loadProxyModules() {
|
|
672
|
+
if (this.proxyModulesLoaded) {
|
|
673
|
+
return;
|
|
674
|
+
}
|
|
665
675
|
this.proxyModulesLoaded = true;
|
|
666
|
-
//
|
|
667
|
-
|
|
668
|
-
|
|
676
|
+
// we have to handle it with below nested way, because of dynamic
|
|
677
|
+
// import issues (https://github.com/ccxt/ccxt/pull/20687)
|
|
678
|
+
try {
|
|
679
|
+
// todo: possible sync alternatives: https://stackoverflow.com/questions/51069002/convert-import-to-synchronous
|
|
680
|
+
this.httpProxyAgentModule = await Promise.resolve().then(function () { return require(/* webpackIgnore: true */ '../static_dependencies/proxies/http-proxy-agent/index.js'); });
|
|
681
|
+
this.httpsProxyAgentModule = await Promise.resolve().then(function () { return require(/* webpackIgnore: true */ '../static_dependencies/proxies/https-proxy-agent/index.js'); });
|
|
682
|
+
}
|
|
683
|
+
catch (e) {
|
|
684
|
+
// if several users are using those frameworks which cause exceptions,
|
|
685
|
+
// let them to be able to load modules still, by installing them
|
|
686
|
+
try {
|
|
687
|
+
// @ts-ignore
|
|
688
|
+
this.httpProxyAgentModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(/* webpackIgnore: true */ 'http-proxy-agent')); });
|
|
689
|
+
// @ts-ignore
|
|
690
|
+
this.httpProxyAgentModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(/* webpackIgnore: true */ 'https-proxy-agent')); });
|
|
691
|
+
}
|
|
692
|
+
catch { }
|
|
693
|
+
}
|
|
669
694
|
if (this.socksProxyAgentModuleChecked === false) {
|
|
670
695
|
this.socksProxyAgentModuleChecked = true;
|
|
671
696
|
try {
|
|
@@ -757,11 +782,10 @@ class Exchange {
|
|
|
757
782
|
// proxy agents
|
|
758
783
|
const [httpProxy, httpsProxy, socksProxy] = this.checkProxySettings(url, method, headers, body);
|
|
759
784
|
this.checkConflictingProxies(httpProxy || httpsProxy || socksProxy, proxyUrl);
|
|
785
|
+
// skip proxies on the browser
|
|
760
786
|
if (isNode) {
|
|
761
|
-
//
|
|
762
|
-
|
|
763
|
-
await this.loadProxyModules(); // this is needed in JS, independently whether proxy properties were set or not, we have to load them because of necessity in WS, which would happen beyond 'fetch' method (WS/etc)
|
|
764
|
-
}
|
|
787
|
+
// this is needed in JS, independently whether proxy properties were set or not, we have to load them because of necessity in WS, which would happen beyond 'fetch' method (WS/etc)
|
|
788
|
+
await this.loadProxyModules();
|
|
765
789
|
}
|
|
766
790
|
const chosenAgent = this.setProxyAgents(httpProxy, httpsProxy, socksProxy);
|
|
767
791
|
// user-agent
|
|
@@ -783,13 +807,29 @@ class Exchange {
|
|
|
783
807
|
// end of proxies & headers
|
|
784
808
|
if (this.fetchImplementation === undefined) {
|
|
785
809
|
if (isNode) {
|
|
786
|
-
const module = await Promise.resolve().then(function () { return require(/* webpackIgnore: true */ '../static_dependencies/node-fetch/index.js'); });
|
|
787
810
|
if (this.agent === undefined) {
|
|
788
811
|
this.agent = this.httpsAgent;
|
|
789
812
|
}
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
813
|
+
try {
|
|
814
|
+
const module = await Promise.resolve().then(function () { return require(/* webpackIgnore: true */ '../static_dependencies/node-fetch/index.js'); });
|
|
815
|
+
this.AbortError = module.AbortError;
|
|
816
|
+
this.fetchImplementation = module.default;
|
|
817
|
+
this.FetchError = module.FetchError;
|
|
818
|
+
}
|
|
819
|
+
catch (e) {
|
|
820
|
+
// some users having issues with dynamic imports (https://github.com/ccxt/ccxt/pull/20687)
|
|
821
|
+
// so let them to fallback to node's native fetch
|
|
822
|
+
if (typeof fetch === 'function') {
|
|
823
|
+
this.fetchImplementation = fetch;
|
|
824
|
+
// as it's browser-compatible implementation ( https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#fetch )
|
|
825
|
+
// it throws same error types
|
|
826
|
+
this.AbortError = DOMException;
|
|
827
|
+
this.FetchError = TypeError;
|
|
828
|
+
}
|
|
829
|
+
else {
|
|
830
|
+
throw new Error('Seems, "fetch" function is not available in your node-js version, please use latest node-js version');
|
|
831
|
+
}
|
|
832
|
+
}
|
|
793
833
|
}
|
|
794
834
|
else {
|
|
795
835
|
this.fetchImplementation = self.fetch;
|
|
@@ -982,7 +1022,10 @@ class Exchange {
|
|
|
982
1022
|
}
|
|
983
1023
|
spawn(method, ...args) {
|
|
984
1024
|
const future = Future.Future();
|
|
985
|
-
|
|
1025
|
+
// using setTimeout 0 to force the execution to run after the future is returned
|
|
1026
|
+
setTimeout(() => {
|
|
1027
|
+
method.apply(this, args).then(future.resolve).catch(future.reject);
|
|
1028
|
+
}, 0);
|
|
986
1029
|
return future;
|
|
987
1030
|
}
|
|
988
1031
|
delay(timeout, method, ...args) {
|
|
@@ -1413,11 +1456,11 @@ class Exchange {
|
|
|
1413
1456
|
let httpsProxy = undefined;
|
|
1414
1457
|
let socksProxy = undefined;
|
|
1415
1458
|
// httpProxy
|
|
1416
|
-
if (this.httpProxy
|
|
1459
|
+
if (this.valueIsDefined(this.httpProxy)) {
|
|
1417
1460
|
usedProxies.push('httpProxy');
|
|
1418
1461
|
httpProxy = this.httpProxy;
|
|
1419
1462
|
}
|
|
1420
|
-
if (this.http_proxy
|
|
1463
|
+
if (this.valueIsDefined(this.http_proxy)) {
|
|
1421
1464
|
usedProxies.push('http_proxy');
|
|
1422
1465
|
httpProxy = this.http_proxy;
|
|
1423
1466
|
}
|
|
@@ -1430,11 +1473,11 @@ class Exchange {
|
|
|
1430
1473
|
httpProxy = this.http_proxy_callback(url, method, headers, body);
|
|
1431
1474
|
}
|
|
1432
1475
|
// httpsProxy
|
|
1433
|
-
if (this.httpsProxy
|
|
1476
|
+
if (this.valueIsDefined(this.httpsProxy)) {
|
|
1434
1477
|
usedProxies.push('httpsProxy');
|
|
1435
1478
|
httpsProxy = this.httpsProxy;
|
|
1436
1479
|
}
|
|
1437
|
-
if (this.https_proxy
|
|
1480
|
+
if (this.valueIsDefined(this.https_proxy)) {
|
|
1438
1481
|
usedProxies.push('https_proxy');
|
|
1439
1482
|
httpsProxy = this.https_proxy;
|
|
1440
1483
|
}
|
|
@@ -1447,11 +1490,11 @@ class Exchange {
|
|
|
1447
1490
|
httpsProxy = this.https_proxy_callback(url, method, headers, body);
|
|
1448
1491
|
}
|
|
1449
1492
|
// socksProxy
|
|
1450
|
-
if (this.socksProxy
|
|
1493
|
+
if (this.valueIsDefined(this.socksProxy)) {
|
|
1451
1494
|
usedProxies.push('socksProxy');
|
|
1452
1495
|
socksProxy = this.socksProxy;
|
|
1453
1496
|
}
|
|
1454
|
-
if (this.socks_proxy
|
|
1497
|
+
if (this.valueIsDefined(this.socks_proxy)) {
|
|
1455
1498
|
usedProxies.push('socks_proxy');
|
|
1456
1499
|
socksProxy = this.socks_proxy;
|
|
1457
1500
|
}
|
|
@@ -1477,29 +1520,29 @@ class Exchange {
|
|
|
1477
1520
|
let wssProxy = undefined;
|
|
1478
1521
|
let wsSocksProxy = undefined;
|
|
1479
1522
|
// ws proxy
|
|
1480
|
-
if (this.wsProxy
|
|
1523
|
+
if (this.valueIsDefined(this.wsProxy)) {
|
|
1481
1524
|
usedProxies.push('wsProxy');
|
|
1482
1525
|
wsProxy = this.wsProxy;
|
|
1483
1526
|
}
|
|
1484
|
-
if (this.ws_proxy
|
|
1527
|
+
if (this.valueIsDefined(this.ws_proxy)) {
|
|
1485
1528
|
usedProxies.push('ws_proxy');
|
|
1486
1529
|
wsProxy = this.ws_proxy;
|
|
1487
1530
|
}
|
|
1488
1531
|
// wss proxy
|
|
1489
|
-
if (this.wssProxy
|
|
1532
|
+
if (this.valueIsDefined(this.wssProxy)) {
|
|
1490
1533
|
usedProxies.push('wssProxy');
|
|
1491
1534
|
wssProxy = this.wssProxy;
|
|
1492
1535
|
}
|
|
1493
|
-
if (this.wss_proxy
|
|
1536
|
+
if (this.valueIsDefined(this.wss_proxy)) {
|
|
1494
1537
|
usedProxies.push('wss_proxy');
|
|
1495
1538
|
wssProxy = this.wss_proxy;
|
|
1496
1539
|
}
|
|
1497
1540
|
// ws socks proxy
|
|
1498
|
-
if (this.wsSocksProxy
|
|
1541
|
+
if (this.valueIsDefined(this.wsSocksProxy)) {
|
|
1499
1542
|
usedProxies.push('wsSocksProxy');
|
|
1500
1543
|
wsSocksProxy = this.wsSocksProxy;
|
|
1501
1544
|
}
|
|
1502
|
-
if (this.ws_socks_proxy
|
|
1545
|
+
if (this.valueIsDefined(this.ws_socks_proxy)) {
|
|
1503
1546
|
usedProxies.push('ws_socks_proxy');
|
|
1504
1547
|
wsSocksProxy = this.ws_socks_proxy;
|
|
1505
1548
|
}
|
|
@@ -3742,6 +3785,60 @@ class Exchange {
|
|
|
3742
3785
|
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
3743
3786
|
throw new errors.NotSupported(this.id + ' createOrder() is not supported yet');
|
|
3744
3787
|
}
|
|
3788
|
+
async createTrailingAmountOrder(symbol, type, side, amount, price = undefined, trailingAmount = undefined, trailingTriggerPrice = undefined, params = {}) {
|
|
3789
|
+
/**
|
|
3790
|
+
* @method
|
|
3791
|
+
* @name createTrailingAmountOrder
|
|
3792
|
+
* @description create a trailing order by providing the symbol, type, side, amount, price and trailingAmount
|
|
3793
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
3794
|
+
* @param {string} type 'market' or 'limit'
|
|
3795
|
+
* @param {string} side 'buy' or 'sell'
|
|
3796
|
+
* @param {float} amount how much you want to trade in units of the base currency, or number of contracts
|
|
3797
|
+
* @param {float} [price] the price for the order to be filled at, in units of the quote currency, ignored in market orders
|
|
3798
|
+
* @param {float} trailingAmount the quote amount to trail away from the current market price
|
|
3799
|
+
* @param {float} [trailingTriggerPrice] the price to activate a trailing order, default uses the price argument
|
|
3800
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3801
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
3802
|
+
*/
|
|
3803
|
+
if (trailingAmount === undefined) {
|
|
3804
|
+
throw new errors.ArgumentsRequired(this.id + ' createTrailingAmountOrder() requires a trailingAmount argument');
|
|
3805
|
+
}
|
|
3806
|
+
params['trailingAmount'] = trailingAmount;
|
|
3807
|
+
if (trailingTriggerPrice !== undefined) {
|
|
3808
|
+
params['trailingTriggerPrice'] = trailingTriggerPrice;
|
|
3809
|
+
}
|
|
3810
|
+
if (this.has['createTrailingAmountOrder']) {
|
|
3811
|
+
return await this.createOrder(symbol, type, side, amount, price, params);
|
|
3812
|
+
}
|
|
3813
|
+
throw new errors.NotSupported(this.id + ' createTrailingAmountOrder() is not supported yet');
|
|
3814
|
+
}
|
|
3815
|
+
async createTrailingPercentOrder(symbol, type, side, amount, price = undefined, trailingPercent = undefined, trailingTriggerPrice = undefined, params = {}) {
|
|
3816
|
+
/**
|
|
3817
|
+
* @method
|
|
3818
|
+
* @name createTrailingPercentOrder
|
|
3819
|
+
* @description create a trailing order by providing the symbol, type, side, amount, price and trailingPercent
|
|
3820
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
3821
|
+
* @param {string} type 'market' or 'limit'
|
|
3822
|
+
* @param {string} side 'buy' or 'sell'
|
|
3823
|
+
* @param {float} amount how much you want to trade in units of the base currency, or number of contracts
|
|
3824
|
+
* @param {float} [price] the price for the order to be filled at, in units of the quote currency, ignored in market orders
|
|
3825
|
+
* @param {float} trailingPercent the percent to trail away from the current market price
|
|
3826
|
+
* @param {float} [trailingTriggerPrice] the price to activate a trailing order, default uses the price argument
|
|
3827
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3828
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
3829
|
+
*/
|
|
3830
|
+
if (trailingPercent === undefined) {
|
|
3831
|
+
throw new errors.ArgumentsRequired(this.id + ' createTrailingPercentOrder() requires a trailingPercent argument');
|
|
3832
|
+
}
|
|
3833
|
+
params['trailingPercent'] = trailingPercent;
|
|
3834
|
+
if (trailingTriggerPrice !== undefined) {
|
|
3835
|
+
params['trailingTriggerPrice'] = trailingTriggerPrice;
|
|
3836
|
+
}
|
|
3837
|
+
if (this.has['createTrailingPercentOrder']) {
|
|
3838
|
+
return await this.createOrder(symbol, type, side, amount, price, params);
|
|
3839
|
+
}
|
|
3840
|
+
throw new errors.NotSupported(this.id + ' createTrailingPercentOrder() is not supported yet');
|
|
3841
|
+
}
|
|
3745
3842
|
async createMarketOrderWithCost(symbol, side, cost, params = {}) {
|
|
3746
3843
|
/**
|
|
3747
3844
|
* @method
|
|
@@ -3783,11 +3880,154 @@ class Exchange {
|
|
|
3783
3880
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3784
3881
|
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
3785
3882
|
*/
|
|
3786
|
-
if (this.options['createMarketSellOrderRequiresPrice'] || this.
|
|
3883
|
+
if (this.options['createMarketSellOrderRequiresPrice'] || this.has['createMarketSellOrderWithCost']) {
|
|
3787
3884
|
return await this.createOrder(symbol, 'market', 'sell', cost, 1, params);
|
|
3788
3885
|
}
|
|
3789
3886
|
throw new errors.NotSupported(this.id + ' createMarketSellOrderWithCost() is not supported yet');
|
|
3790
3887
|
}
|
|
3888
|
+
async createTriggerOrder(symbol, type, side, amount, price = undefined, triggerPrice = undefined, params = {}) {
|
|
3889
|
+
/**
|
|
3890
|
+
* @method
|
|
3891
|
+
* @name createTriggerOrder
|
|
3892
|
+
* @description create a trigger stop order (type 1)
|
|
3893
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
3894
|
+
* @param {string} type 'market' or 'limit'
|
|
3895
|
+
* @param {string} side 'buy' or 'sell'
|
|
3896
|
+
* @param {float} amount how much you want to trade in units of the base currency or the number of contracts
|
|
3897
|
+
* @param {float} [price] the price to fulfill the order, in units of the quote currency, ignored in market orders
|
|
3898
|
+
* @param {float} triggerPrice the price to trigger the stop order, in units of the quote currency
|
|
3899
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3900
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
3901
|
+
*/
|
|
3902
|
+
if (triggerPrice === undefined) {
|
|
3903
|
+
throw new errors.ArgumentsRequired(this.id + ' createTriggerOrder() requires a triggerPrice argument');
|
|
3904
|
+
}
|
|
3905
|
+
params['triggerPrice'] = triggerPrice;
|
|
3906
|
+
if (this.has['createTriggerOrder']) {
|
|
3907
|
+
return await this.createOrder(symbol, type, side, amount, price, params);
|
|
3908
|
+
}
|
|
3909
|
+
throw new errors.NotSupported(this.id + ' createTriggerOrder() is not supported yet');
|
|
3910
|
+
}
|
|
3911
|
+
async createStopLossOrder(symbol, type, side, amount, price = undefined, stopLossPrice = undefined, params = {}) {
|
|
3912
|
+
/**
|
|
3913
|
+
* @method
|
|
3914
|
+
* @name createStopLossOrder
|
|
3915
|
+
* @description create a trigger stop loss order (type 2)
|
|
3916
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
3917
|
+
* @param {string} type 'market' or 'limit'
|
|
3918
|
+
* @param {string} side 'buy' or 'sell'
|
|
3919
|
+
* @param {float} amount how much you want to trade in units of the base currency or the number of contracts
|
|
3920
|
+
* @param {float} [price] the price to fulfill the order, in units of the quote currency, ignored in market orders
|
|
3921
|
+
* @param {float} stopLossPrice the price to trigger the stop loss order, in units of the quote currency
|
|
3922
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3923
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
3924
|
+
*/
|
|
3925
|
+
if (stopLossPrice === undefined) {
|
|
3926
|
+
throw new errors.ArgumentsRequired(this.id + ' createStopLossOrder() requires a stopLossPrice argument');
|
|
3927
|
+
}
|
|
3928
|
+
params['stopLossPrice'] = stopLossPrice;
|
|
3929
|
+
if (this.has['createStopLossOrder']) {
|
|
3930
|
+
return await this.createOrder(symbol, type, side, amount, price, params);
|
|
3931
|
+
}
|
|
3932
|
+
throw new errors.NotSupported(this.id + ' createStopLossOrder() is not supported yet');
|
|
3933
|
+
}
|
|
3934
|
+
async createTakeProfitOrder(symbol, type, side, amount, price = undefined, takeProfitPrice = undefined, params = {}) {
|
|
3935
|
+
/**
|
|
3936
|
+
* @method
|
|
3937
|
+
* @name createTakeProfitOrder
|
|
3938
|
+
* @description create a trigger take profit order (type 2)
|
|
3939
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
3940
|
+
* @param {string} type 'market' or 'limit'
|
|
3941
|
+
* @param {string} side 'buy' or 'sell'
|
|
3942
|
+
* @param {float} amount how much you want to trade in units of the base currency or the number of contracts
|
|
3943
|
+
* @param {float} [price] the price to fulfill the order, in units of the quote currency, ignored in market orders
|
|
3944
|
+
* @param {float} takeProfitPrice the price to trigger the take profit order, in units of the quote currency
|
|
3945
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3946
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
3947
|
+
*/
|
|
3948
|
+
if (takeProfitPrice === undefined) {
|
|
3949
|
+
throw new errors.ArgumentsRequired(this.id + ' createTakeProfitOrder() requires a takeProfitPrice argument');
|
|
3950
|
+
}
|
|
3951
|
+
params['takeProfitPrice'] = takeProfitPrice;
|
|
3952
|
+
if (this.has['createTakeProfitOrder']) {
|
|
3953
|
+
return await this.createOrder(symbol, type, side, amount, price, params);
|
|
3954
|
+
}
|
|
3955
|
+
throw new errors.NotSupported(this.id + ' createTakeProfitOrder() is not supported yet');
|
|
3956
|
+
}
|
|
3957
|
+
async createOrderWithTakeProfitAndStopLoss(symbol, type, side, amount, price = undefined, takeProfit = undefined, stopLoss = undefined, params = {}) {
|
|
3958
|
+
/**
|
|
3959
|
+
* @method
|
|
3960
|
+
* @name createOrderWithTakeProfitAndStopLoss
|
|
3961
|
+
* @description create an order with a stop loss or take profit attached (type 3)
|
|
3962
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
3963
|
+
* @param {string} type 'market' or 'limit'
|
|
3964
|
+
* @param {string} side 'buy' or 'sell'
|
|
3965
|
+
* @param {float} amount how much you want to trade in units of the base currency or the number of contracts
|
|
3966
|
+
* @param {float} [price] the price to fulfill the order, in units of the quote currency, ignored in market orders
|
|
3967
|
+
* @param {float} [takeProfit] the take profit price, in units of the quote currency
|
|
3968
|
+
* @param {float} [stopLoss] the stop loss price, in units of the quote currency
|
|
3969
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3970
|
+
* @param {string} [params.takeProfitType] *not available on all exchanges* 'limit' or 'market'
|
|
3971
|
+
* @param {string} [params.stopLossType] *not available on all exchanges* 'limit' or 'market'
|
|
3972
|
+
* @param {string} [params.takeProfitPriceType] *not available on all exchanges* 'last', 'mark' or 'index'
|
|
3973
|
+
* @param {string} [params.stopLossPriceType] *not available on all exchanges* 'last', 'mark' or 'index'
|
|
3974
|
+
* @param {float} [params.takeProfitLimitPrice] *not available on all exchanges* limit price for a limit take profit order
|
|
3975
|
+
* @param {float} [params.stopLossLimitPrice] *not available on all exchanges* stop loss for a limit stop loss order
|
|
3976
|
+
* @param {float} [params.takeProfitAmount] *not available on all exchanges* the amount for a take profit
|
|
3977
|
+
* @param {float} [params.stopLossAmount] *not available on all exchanges* the amount for a stop loss
|
|
3978
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
3979
|
+
*/
|
|
3980
|
+
if ((takeProfit === undefined) && (stopLoss === undefined)) {
|
|
3981
|
+
throw new errors.ArgumentsRequired(this.id + ' createOrderWithTakeProfitAndStopLoss() requires either a takeProfit or stopLoss argument');
|
|
3982
|
+
}
|
|
3983
|
+
if (takeProfit !== undefined) {
|
|
3984
|
+
params['takeProfit'] = {
|
|
3985
|
+
'triggerPrice': takeProfit,
|
|
3986
|
+
};
|
|
3987
|
+
}
|
|
3988
|
+
if (stopLoss !== undefined) {
|
|
3989
|
+
params['stopLoss'] = {
|
|
3990
|
+
'triggerPrice': stopLoss,
|
|
3991
|
+
};
|
|
3992
|
+
}
|
|
3993
|
+
const takeProfitType = this.safeString(params, 'takeProfitType');
|
|
3994
|
+
const takeProfitPriceType = this.safeString(params, 'takeProfitPriceType');
|
|
3995
|
+
const takeProfitLimitPrice = this.safeString(params, 'takeProfitLimitPrice');
|
|
3996
|
+
const takeProfitAmount = this.safeString(params, 'takeProfitAmount');
|
|
3997
|
+
const stopLossType = this.safeString(params, 'stopLossType');
|
|
3998
|
+
const stopLossPriceType = this.safeString(params, 'stopLossPriceType');
|
|
3999
|
+
const stopLossLimitPrice = this.safeString(params, 'stopLossLimitPrice');
|
|
4000
|
+
const stopLossAmount = this.safeString(params, 'stopLossAmount');
|
|
4001
|
+
if (takeProfitType !== undefined) {
|
|
4002
|
+
params['takeProfit']['type'] = takeProfitType;
|
|
4003
|
+
}
|
|
4004
|
+
if (takeProfitPriceType !== undefined) {
|
|
4005
|
+
params['takeProfit']['priceType'] = takeProfitPriceType;
|
|
4006
|
+
}
|
|
4007
|
+
if (takeProfitLimitPrice !== undefined) {
|
|
4008
|
+
params['takeProfit']['price'] = this.parseToNumeric(takeProfitLimitPrice);
|
|
4009
|
+
}
|
|
4010
|
+
if (takeProfitAmount !== undefined) {
|
|
4011
|
+
params['takeProfit']['amount'] = this.parseToNumeric(takeProfitAmount);
|
|
4012
|
+
}
|
|
4013
|
+
if (stopLossType !== undefined) {
|
|
4014
|
+
params['stopLoss']['type'] = stopLossType;
|
|
4015
|
+
}
|
|
4016
|
+
if (stopLossPriceType !== undefined) {
|
|
4017
|
+
params['stopLoss']['priceType'] = stopLossPriceType;
|
|
4018
|
+
}
|
|
4019
|
+
if (stopLossLimitPrice !== undefined) {
|
|
4020
|
+
params['stopLoss']['price'] = this.parseToNumeric(stopLossLimitPrice);
|
|
4021
|
+
}
|
|
4022
|
+
if (stopLossAmount !== undefined) {
|
|
4023
|
+
params['stopLoss']['amount'] = this.parseToNumeric(stopLossAmount);
|
|
4024
|
+
}
|
|
4025
|
+
params = this.omit(params, ['takeProfitType', 'takeProfitPriceType', 'takeProfitLimitPrice', 'takeProfitAmount', 'stopLossType', 'stopLossPriceType', 'stopLossLimitPrice', 'stopLossAmount']);
|
|
4026
|
+
if (this.has['createOrderWithTakeProfitAndStopLoss']) {
|
|
4027
|
+
return await this.createOrder(symbol, type, side, amount, price, params);
|
|
4028
|
+
}
|
|
4029
|
+
throw new errors.NotSupported(this.id + ' createOrderWithTakeProfitAndStopLoss() is not supported yet');
|
|
4030
|
+
}
|
|
3791
4031
|
async createOrders(orders, params = {}) {
|
|
3792
4032
|
throw new errors.NotSupported(this.id + ' createOrders() is not supported yet');
|
|
3793
4033
|
}
|
|
@@ -3845,6 +4085,9 @@ class Exchange {
|
|
|
3845
4085
|
}
|
|
3846
4086
|
throw new errors.NotSupported(this.id + ' fetchClosedOrders() is not supported yet');
|
|
3847
4087
|
}
|
|
4088
|
+
async fetchCanceledAndClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
4089
|
+
throw new errors.NotSupported(this.id + ' fetchCanceledAndClosedOrders() is not supported yet');
|
|
4090
|
+
}
|
|
3848
4091
|
async fetchClosedOrdersWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
3849
4092
|
if (this.has['fetchOrdersWs']) {
|
|
3850
4093
|
const orders = await this.fetchOrdersWs(symbol, since, limit, params);
|
|
@@ -3902,7 +4145,7 @@ class Exchange {
|
|
|
3902
4145
|
throw new errors.NotSupported(this.id + ' fetchFundingHistory() is not supported yet');
|
|
3903
4146
|
}
|
|
3904
4147
|
async closePosition(symbol, side = undefined, params = {}) {
|
|
3905
|
-
throw new errors.NotSupported(this.id + '
|
|
4148
|
+
throw new errors.NotSupported(this.id + ' closePosition() is not supported yet');
|
|
3906
4149
|
}
|
|
3907
4150
|
async closeAllPositions(params = {}) {
|
|
3908
4151
|
throw new errors.NotSupported(this.id + ' closeAllPositions() is not supported yet');
|
|
@@ -3973,8 +4216,14 @@ class Exchange {
|
|
|
3973
4216
|
}
|
|
3974
4217
|
return markets[0];
|
|
3975
4218
|
}
|
|
4219
|
+
else if ((symbol.endsWith('-C')) || (symbol.endsWith('-P')) || (symbol.startsWith('C-')) || (symbol.startsWith('P-'))) {
|
|
4220
|
+
return this.createExpiredOptionMarket(symbol);
|
|
4221
|
+
}
|
|
3976
4222
|
throw new errors.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
3977
4223
|
}
|
|
4224
|
+
createExpiredOptionMarket(symbol) {
|
|
4225
|
+
throw new errors.NotSupported(this.id + ' createExpiredOptionMarket () is not supported yet');
|
|
4226
|
+
}
|
|
3978
4227
|
handleWithdrawTagAndParams(tag, params) {
|
|
3979
4228
|
if (typeof tag === 'object') {
|
|
3980
4229
|
params = this.extend(tag, params);
|