ccxt 4.5.82 → 4.5.83
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 +5 -4
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +3 -1
- package/dist/cjs/src/abstract/prediction/sxbet.js +11 -0
- package/dist/cjs/src/apex.js +1 -0
- package/dist/cjs/src/aster.js +2 -2
- package/dist/cjs/src/base/Exchange.js +1 -1
- package/dist/cjs/src/bigone.js +2 -2
- package/dist/cjs/src/binance.js +10 -10
- package/dist/cjs/src/bingx.js +3 -3
- package/dist/cjs/src/bit2c.js +4 -4
- package/dist/cjs/src/bitbank.js +15 -15
- package/dist/cjs/src/bitfinex.js +15 -15
- package/dist/cjs/src/bitget.js +109 -73
- package/dist/cjs/src/bitmex.js +7 -7
- package/dist/cjs/src/bitopro.js +2 -2
- package/dist/cjs/src/bitrue.js +6 -6
- package/dist/cjs/src/bitso.js +18 -18
- package/dist/cjs/src/bitstamp.js +5 -5
- package/dist/cjs/src/bitteam.js +32 -32
- package/dist/cjs/src/bittrade.js +10 -10
- package/dist/cjs/src/bitvavo.js +9 -9
- package/dist/cjs/src/blockchaincom.js +2 -2
- package/dist/cjs/src/btcbox.js +2 -2
- package/dist/cjs/src/btcmarkets.js +2 -2
- package/dist/cjs/src/btcturk.js +2 -2
- package/dist/cjs/src/btse.js +2 -2
- package/dist/cjs/src/bybitid.js +4 -0
- package/dist/cjs/src/coinbase.js +1 -1
- package/dist/cjs/src/coinbaseexchange.js +13 -13
- package/dist/cjs/src/coincheck.js +4 -4
- package/dist/cjs/src/coinex.js +10 -10
- package/dist/cjs/src/coinmate.js +4 -4
- package/dist/cjs/src/coinone.js +4 -4
- package/dist/cjs/src/coinsph.js +5 -5
- package/dist/cjs/src/cryptocom.js +5 -5
- package/dist/cjs/src/deribit.js +31 -31
- package/dist/cjs/src/derive.js +1 -1
- package/dist/cjs/src/digifinex.js +31 -31
- package/dist/cjs/src/gate.js +25 -25
- package/dist/cjs/src/gemini.js +5 -5
- package/dist/cjs/src/grvt.js +1 -1
- package/dist/cjs/src/hibachi.js +5 -5
- package/dist/cjs/src/hitbtc.js +15 -15
- package/dist/cjs/src/hollaex.js +15 -15
- package/dist/cjs/src/htx.js +52 -52
- package/dist/cjs/src/hyperliquid.js +2 -2
- package/dist/cjs/src/independentreserve.js +2 -2
- package/dist/cjs/src/indodax.js +8 -8
- package/dist/cjs/src/kraken.js +29 -29
- package/dist/cjs/src/krakenfutures.js +16 -16
- package/dist/cjs/src/kucoin.js +15 -15
- package/dist/cjs/src/latoken.js +8 -8
- package/dist/cjs/src/lbank.js +31 -31
- package/dist/cjs/src/lighter.js +2 -2
- package/dist/cjs/src/luno.js +2 -2
- package/dist/cjs/src/mercado.js +12 -12
- package/dist/cjs/src/mexc.js +27 -27
- package/dist/cjs/src/modetrade.js +10 -10
- package/dist/cjs/src/ndax.js +4 -4
- package/dist/cjs/src/okx.js +19 -20
- package/dist/cjs/src/onetrading.js +7 -7
- package/dist/cjs/src/p2b.js +8 -8
- package/dist/cjs/src/pacifica.js +9 -3
- package/dist/cjs/src/paymium.js +2 -2
- package/dist/cjs/src/phemex.js +37 -37
- package/dist/cjs/src/poloniex.js +14 -14
- package/dist/cjs/src/prediction/sxbet.js +2710 -0
- package/dist/cjs/src/pro/alpaca.js +5 -5
- package/dist/cjs/src/pro/apex.js +6 -6
- package/dist/cjs/src/pro/aster.js +8 -8
- package/dist/cjs/src/pro/backpack.js +1 -1
- package/dist/cjs/src/pro/binance.js +26 -26
- package/dist/cjs/src/pro/bingx.js +11 -11
- package/dist/cjs/src/pro/bitfinex.js +11 -11
- package/dist/cjs/src/pro/bitget.js +20 -20
- package/dist/cjs/src/pro/bithumb.js +1 -1
- package/dist/cjs/src/pro/bitmex.js +12 -12
- package/dist/cjs/src/pro/bitopro.js +5 -5
- package/dist/cjs/src/pro/bitrue.js +7 -7
- package/dist/cjs/src/pro/bitstamp.js +5 -5
- package/dist/cjs/src/pro/bittrade.js +11 -11
- package/dist/cjs/src/pro/bitvavo.js +16 -16
- package/dist/cjs/src/pro/blockchaincom.js +5 -5
- package/dist/cjs/src/pro/blofin.js +2 -2
- package/dist/cjs/src/pro/bybit.js +21 -21
- package/dist/cjs/src/pro/bydfi.js +2 -2
- package/dist/cjs/src/pro/cex.js +19 -19
- package/dist/cjs/src/pro/coinbase.js +2 -2
- package/dist/cjs/src/pro/coinbaseexchange.js +9 -9
- package/dist/cjs/src/pro/coinbaseinternational.js +2 -2
- package/dist/cjs/src/pro/coincheck.js +2 -2
- package/dist/cjs/src/pro/coinex.js +3 -3
- package/dist/cjs/src/pro/coinone.js +6 -6
- package/dist/cjs/src/pro/cryptocom.js +10 -10
- package/dist/cjs/src/pro/deribit.js +13 -13
- package/dist/cjs/src/pro/derive.js +4 -4
- package/dist/cjs/src/pro/dydx.js +1 -1
- package/dist/cjs/src/pro/extended.js +16 -10
- package/dist/cjs/src/pro/gate.js +10 -10
- package/dist/cjs/src/pro/gemini.js +3 -3
- package/dist/cjs/src/pro/grvt.js +2 -2
- package/dist/cjs/src/pro/hashkey.js +2 -2
- package/dist/cjs/src/pro/hitbtc.js +6 -6
- package/dist/cjs/src/pro/hollaex.js +3 -3
- package/dist/cjs/src/pro/htx.js +28 -28
- package/dist/cjs/src/pro/hyperliquid.js +1 -1
- package/dist/cjs/src/pro/independentreserve.js +2 -2
- package/dist/cjs/src/pro/kraken.js +7 -7
- package/dist/cjs/src/pro/krakenfutures.js +12 -12
- package/dist/cjs/src/pro/kucoin.js +12 -12
- package/dist/cjs/src/pro/lbank.js +16 -16
- package/dist/cjs/src/pro/luno.js +2 -2
- package/dist/cjs/src/pro/mexc.js +8 -8
- package/dist/cjs/src/pro/modetrade.js +3 -3
- package/dist/cjs/src/pro/mudrex.js +2 -2
- package/dist/cjs/src/pro/nado.js +3 -3
- package/dist/cjs/src/pro/ndax.js +6 -6
- package/dist/cjs/src/pro/okx.js +20 -20
- package/dist/cjs/src/pro/onetrading.js +14 -14
- package/dist/cjs/src/pro/p2b.js +5 -5
- package/dist/cjs/src/pro/pacifica.js +1 -1
- package/dist/cjs/src/pro/paradex.js +1 -1
- package/dist/cjs/src/pro/phemex.js +13 -13
- package/dist/cjs/src/pro/poloniex.js +17 -17
- package/dist/cjs/src/pro/toobit.js +2 -2
- package/dist/cjs/src/pro/upbit.js +4 -4
- package/dist/cjs/src/pro/weex.js +2 -2
- package/dist/cjs/src/pro/whitebit.js +12 -12
- package/dist/cjs/src/pro/woo.js +13 -13
- package/dist/cjs/src/pro/woofipro.js +3 -3
- package/dist/cjs/src/pro/xt.js +3 -3
- package/dist/cjs/src/tokocrypto.js +20 -20
- package/dist/cjs/src/upbit.js +12 -12
- package/dist/cjs/src/whitebit.js +15 -15
- package/dist/cjs/src/woo.js +3 -3
- package/dist/cjs/src/woofipro.js +14 -14
- package/dist/cjs/src/zaif.js +9 -3
- package/dist/cjs/src/zebpay.js +1 -1
- package/js/ccxt.d.ts +4 -1
- package/js/ccxt.js +3 -1
- package/js/src/abstract/prediction/sxbet.d.ts +41 -0
- package/js/src/abstract/prediction/sxbet.js +11 -0
- package/js/src/alpaca.d.ts +28 -33
- package/js/src/apex.d.ts +28 -42
- package/js/src/apex.js +1 -0
- package/js/src/aster.d.ts +58 -108
- package/js/src/aster.js +2 -2
- package/js/src/backpack.d.ts +34 -48
- package/js/src/base/Exchange.d.ts +304 -320
- package/js/src/base/Exchange.js +1 -1
- package/js/src/bigone.d.ts +24 -29
- package/js/src/bigone.js +2 -2
- package/js/src/binance.d.ts +112 -138
- package/js/src/binance.js +10 -10
- package/js/src/binancecoinm.d.ts +3 -2
- package/js/src/binanceusdm.d.ts +3 -2
- package/js/src/bingx.d.ts +65 -84
- package/js/src/bingx.js +3 -3
- package/js/src/bit2c.d.ts +13 -18
- package/js/src/bit2c.js +4 -4
- package/js/src/bitbank.d.ts +16 -21
- package/js/src/bitbank.js +15 -15
- package/js/src/bitbns.d.ts +15 -20
- package/js/src/bitfinex.d.ts +46 -51
- package/js/src/bitfinex.js +15 -15
- package/js/src/bitflyer.d.ts +20 -25
- package/js/src/bitget.d.ts +105 -93
- package/js/src/bitget.js +109 -73
- package/js/src/bithumb.d.ts +26 -31
- package/js/src/bitmex.d.ts +48 -65
- package/js/src/bitmex.js +7 -7
- package/js/src/bitopro.d.ts +25 -41
- package/js/src/bitopro.js +2 -2
- package/js/src/bitrue.d.ts +30 -45
- package/js/src/bitrue.js +6 -6
- package/js/src/bitso.d.ts +24 -29
- package/js/src/bitso.js +18 -18
- package/js/src/bitstamp.d.ts +36 -47
- package/js/src/bitstamp.js +5 -5
- package/js/src/bitteam.d.ts +22 -27
- package/js/src/bitteam.js +32 -32
- package/js/src/bittrade.d.ts +35 -46
- package/js/src/bittrade.js +10 -10
- package/js/src/bitvavo.d.ts +43 -48
- package/js/src/bitvavo.js +9 -9
- package/js/src/blockchaincom.d.ts +26 -31
- package/js/src/blockchaincom.js +2 -2
- package/js/src/blofin.d.ts +38 -43
- package/js/src/btcbox.d.ts +14 -19
- package/js/src/btcbox.js +2 -2
- package/js/src/btcmarkets.d.ts +25 -30
- package/js/src/btcmarkets.js +2 -2
- package/js/src/btcturk.d.ts +13 -18
- package/js/src/btcturk.js +2 -2
- package/js/src/btse.d.ts +44 -50
- package/js/src/btse.js +2 -2
- package/js/src/bullish.d.ts +35 -57
- package/js/src/bybit.d.ts +95 -106
- package/js/src/bybitid.js +4 -0
- package/js/src/bydfi.d.ts +37 -48
- package/js/src/cex.d.ts +29 -34
- package/js/src/coinbase.d.ts +66 -82
- package/js/src/coinbase.js +1 -1
- package/js/src/coinbaseexchange.d.ts +33 -43
- package/js/src/coinbaseexchange.js +13 -13
- package/js/src/coinbaseinternational.d.ts +34 -73
- package/js/src/coincheck.d.ts +13 -18
- package/js/src/coincheck.js +4 -4
- package/js/src/coinex.d.ts +63 -68
- package/js/src/coinex.js +10 -10
- package/js/src/coinmate.d.ts +15 -20
- package/js/src/coinmate.js +4 -4
- package/js/src/coinone.d.ts +14 -19
- package/js/src/coinone.js +4 -4
- package/js/src/coinsph.d.ts +32 -37
- package/js/src/coinsph.js +5 -5
- package/js/src/coinspot.d.ts +10 -15
- package/js/src/cryptocom.d.ts +48 -64
- package/js/src/cryptocom.js +5 -5
- package/js/src/cryptomus.d.ts +15 -23
- package/js/src/deepcoin.d.ts +43 -48
- package/js/src/delta.d.ts +43 -54
- package/js/src/deribit.d.ts +48 -69
- package/js/src/deribit.js +31 -31
- package/js/src/derive.d.ts +28 -42
- package/js/src/derive.js +1 -1
- package/js/src/digifinex.d.ts +54 -67
- package/js/src/digifinex.js +31 -31
- package/js/src/dydx.d.ts +26 -31
- package/js/src/extended.d.ts +51 -56
- package/js/src/foxbit.d.ts +34 -64
- package/js/src/gate.d.ts +94 -162
- package/js/src/gate.js +25 -25
- package/js/src/gemini.d.ts +33 -43
- package/js/src/gemini.js +5 -5
- package/js/src/grvt.d.ts +36 -47
- package/js/src/grvt.js +1 -1
- package/js/src/hashkey.d.ts +58 -78
- package/js/src/hibachi.d.ts +42 -52
- package/js/src/hibachi.js +5 -5
- package/js/src/hitbtc.d.ts +49 -56
- package/js/src/hitbtc.js +15 -15
- package/js/src/hollaex.d.ts +26 -31
- package/js/src/hollaex.js +15 -15
- package/js/src/htx.d.ts +80 -121
- package/js/src/htx.js +52 -52
- package/js/src/hyperliquid.d.ts +77 -127
- package/js/src/hyperliquid.js +2 -2
- package/js/src/independentreserve.d.ts +15 -20
- package/js/src/independentreserve.js +2 -2
- package/js/src/indodax.d.ts +19 -24
- package/js/src/indodax.js +8 -8
- package/js/src/kraken.d.ts +43 -55
- package/js/src/kraken.js +29 -29
- package/js/src/krakenfutures.d.ts +34 -39
- package/js/src/krakenfutures.js +16 -16
- package/js/src/kucoin.d.ts +121 -132
- package/js/src/kucoin.js +15 -15
- package/js/src/kucoinfutures.d.ts +4 -4
- package/js/src/latoken.d.ts +24 -29
- package/js/src/latoken.js +8 -8
- package/js/src/lbank.d.ts +40 -53
- package/js/src/lbank.js +31 -31
- package/js/src/lighter.d.ts +40 -45
- package/js/src/lighter.js +2 -2
- package/js/src/luno.d.ts +25 -30
- package/js/src/luno.js +2 -2
- package/js/src/mercado.d.ts +15 -20
- package/js/src/mercado.js +12 -12
- package/js/src/mexc.d.ts +70 -83
- package/js/src/mexc.js +27 -27
- package/js/src/modetrade.d.ts +43 -57
- package/js/src/modetrade.js +10 -10
- package/js/src/mudrex.d.ts +25 -35
- package/js/src/nado.d.ts +45 -50
- package/js/src/ndax.d.ts +27 -32
- package/js/src/ndax.js +4 -4
- package/js/src/okx.d.ts +97 -108
- package/js/src/okx.js +19 -20
- package/js/src/onetrading.d.ts +23 -31
- package/js/src/onetrading.js +7 -7
- package/js/src/p2b.d.ts +17 -22
- package/js/src/p2b.js +8 -8
- package/js/src/pacifica.d.ts +55 -73
- package/js/src/pacifica.js +9 -3
- package/js/src/paradex.d.ts +47 -68
- package/js/src/paymium.d.ts +12 -17
- package/js/src/paymium.js +2 -2
- package/js/src/phemex.d.ts +47 -52
- package/js/src/phemex.js +37 -37
- package/js/src/poloniex.d.ts +45 -50
- package/js/src/poloniex.js +14 -14
- package/js/src/prediction/sxbet.d.ts +595 -0
- package/js/src/prediction/sxbet.js +2708 -0
- package/js/src/pro/alpaca.d.ts +23 -23
- package/js/src/pro/alpaca.js +5 -5
- package/js/src/pro/apex.d.ts +28 -28
- package/js/src/pro/apex.js +6 -6
- package/js/src/pro/aster.d.ts +33 -33
- package/js/src/pro/aster.js +8 -8
- package/js/src/pro/backpack.d.ts +28 -28
- package/js/src/pro/backpack.js +1 -1
- package/js/src/pro/binance.d.ts +57 -57
- package/js/src/pro/binance.js +26 -26
- package/js/src/pro/bingx.d.ts +26 -26
- package/js/src/pro/bingx.js +11 -11
- package/js/src/pro/bitfinex.d.ts +25 -25
- package/js/src/pro/bitfinex.js +11 -11
- package/js/src/pro/bitget.d.ts +41 -41
- package/js/src/pro/bitget.js +20 -20
- package/js/src/pro/bithumb.d.ts +15 -15
- package/js/src/pro/bithumb.js +1 -1
- package/js/src/pro/bitmex.d.ts +29 -29
- package/js/src/pro/bitmex.js +12 -12
- package/js/src/pro/bitopro.d.ts +13 -13
- package/js/src/pro/bitopro.js +5 -5
- package/js/src/pro/bitrue.d.ts +25 -25
- package/js/src/pro/bitrue.js +7 -7
- package/js/src/pro/bitstamp.d.ts +21 -21
- package/js/src/pro/bitstamp.js +5 -5
- package/js/src/pro/bittrade.d.ts +19 -19
- package/js/src/pro/bittrade.js +11 -11
- package/js/src/pro/bitvavo.d.ts +62 -62
- package/js/src/pro/bitvavo.js +16 -16
- package/js/src/pro/blockchaincom.d.ts +19 -19
- package/js/src/pro/blockchaincom.js +5 -5
- package/js/src/pro/blofin.d.ts +23 -23
- package/js/src/pro/blofin.js +2 -2
- package/js/src/pro/bullish.d.ts +19 -25
- package/js/src/pro/bybit.d.ts +42 -45
- package/js/src/pro/bybit.js +21 -21
- package/js/src/pro/bydfi.d.ts +24 -24
- package/js/src/pro/bydfi.js +2 -2
- package/js/src/pro/cex.d.ts +37 -37
- package/js/src/pro/cex.js +19 -19
- package/js/src/pro/coinbase.d.ts +19 -19
- package/js/src/pro/coinbase.js +2 -2
- package/js/src/pro/coinbaseexchange.d.ts +25 -25
- package/js/src/pro/coinbaseexchange.js +9 -9
- package/js/src/pro/coinbaseinternational.d.ts +20 -20
- package/js/src/pro/coinbaseinternational.js +2 -2
- package/js/src/pro/coincheck.d.ts +5 -5
- package/js/src/pro/coincheck.js +2 -2
- package/js/src/pro/coinex.d.ts +24 -24
- package/js/src/pro/coinex.js +3 -3
- package/js/src/pro/coinone.d.ts +9 -11
- package/js/src/pro/coinone.js +6 -6
- package/js/src/pro/cryptocom.d.ts +40 -40
- package/js/src/pro/cryptocom.js +10 -10
- package/js/src/pro/deepcoin.d.ts +24 -32
- package/js/src/pro/deribit.d.ts +24 -24
- package/js/src/pro/deribit.js +13 -13
- package/js/src/pro/derive.d.ts +22 -22
- package/js/src/pro/derive.js +4 -4
- package/js/src/pro/dydx.d.ts +9 -9
- package/js/src/pro/dydx.js +1 -1
- package/js/src/pro/extended.d.ts +22 -22
- package/js/src/pro/extended.js +16 -10
- package/js/src/pro/gate.d.ts +50 -50
- package/js/src/pro/gate.js +10 -10
- package/js/src/pro/gemini.d.ts +26 -26
- package/js/src/pro/gemini.js +3 -3
- package/js/src/pro/grvt.d.ts +22 -22
- package/js/src/pro/grvt.js +2 -2
- package/js/src/pro/hashkey.d.ts +19 -19
- package/js/src/pro/hashkey.js +2 -2
- package/js/src/pro/hitbtc.d.ts +32 -32
- package/js/src/pro/hitbtc.js +6 -6
- package/js/src/pro/hollaex.d.ts +15 -17
- package/js/src/pro/hollaex.js +3 -3
- package/js/src/pro/htx.d.ts +36 -36
- package/js/src/pro/htx.js +28 -28
- package/js/src/pro/hyperliquid.d.ts +29 -31
- package/js/src/pro/hyperliquid.js +1 -1
- package/js/src/pro/independentreserve.d.ts +10 -10
- package/js/src/pro/independentreserve.js +2 -2
- package/js/src/pro/kraken.d.ts +41 -55
- package/js/src/pro/kraken.js +7 -7
- package/js/src/pro/krakenfutures.d.ts +32 -32
- package/js/src/pro/krakenfutures.js +12 -12
- package/js/src/pro/kucoin.d.ts +69 -72
- package/js/src/pro/kucoin.js +12 -12
- package/js/src/pro/kucoinfutures.d.ts +4 -4
- package/js/src/pro/lbank.d.ts +22 -22
- package/js/src/pro/lbank.js +16 -16
- package/js/src/pro/lighter.d.ts +27 -27
- package/js/src/pro/luno.d.ts +8 -8
- package/js/src/pro/luno.js +2 -2
- package/js/src/pro/mexc.d.ts +33 -33
- package/js/src/pro/mexc.js +8 -8
- package/js/src/pro/modetrade.d.ts +37 -39
- package/js/src/pro/modetrade.js +3 -3
- package/js/src/pro/mudrex.d.ts +8 -8
- package/js/src/pro/mudrex.js +2 -2
- package/js/src/pro/nado.d.ts +42 -46
- package/js/src/pro/nado.js +3 -3
- package/js/src/pro/ndax.d.ts +12 -12
- package/js/src/pro/ndax.js +6 -6
- package/js/src/pro/okx.d.ts +49 -49
- package/js/src/pro/okx.js +20 -20
- package/js/src/pro/onetrading.d.ts +28 -28
- package/js/src/pro/onetrading.js +14 -14
- package/js/src/pro/p2b.d.ts +15 -19
- package/js/src/pro/p2b.js +5 -5
- package/js/src/pro/pacifica.d.ts +22 -22
- package/js/src/pro/pacifica.js +1 -1
- package/js/src/pro/paradex.d.ts +18 -18
- package/js/src/pro/paradex.js +1 -1
- package/js/src/pro/phemex.d.ts +25 -25
- package/js/src/pro/phemex.js +13 -13
- package/js/src/pro/poloniex.d.ts +30 -32
- package/js/src/pro/poloniex.js +17 -17
- package/js/src/pro/toobit.d.ts +31 -31
- package/js/src/pro/toobit.js +2 -2
- package/js/src/pro/upbit.d.ts +24 -24
- package/js/src/pro/upbit.js +4 -4
- package/js/src/pro/weex.d.ts +39 -39
- package/js/src/pro/weex.js +2 -2
- package/js/src/pro/whitebit.d.ts +26 -30
- package/js/src/pro/whitebit.js +12 -12
- package/js/src/pro/woo.d.ts +44 -46
- package/js/src/pro/woo.js +13 -13
- package/js/src/pro/woofipro.d.ts +39 -41
- package/js/src/pro/woofipro.js +3 -3
- package/js/src/pro/xt.d.ts +20 -20
- package/js/src/pro/xt.js +3 -3
- package/js/src/revolutx.d.ts +17 -17
- package/js/src/tokocrypto.d.ts +25 -30
- package/js/src/tokocrypto.js +20 -20
- package/js/src/toobit.d.ts +45 -79
- package/js/src/upbit.d.ts +28 -61
- package/js/src/upbit.js +12 -12
- package/js/src/weex.d.ts +57 -68
- package/js/src/whitebit.d.ts +53 -64
- package/js/src/whitebit.js +15 -15
- package/js/src/woo.d.ts +61 -75
- package/js/src/woo.js +3 -3
- package/js/src/woofipro.d.ts +53 -67
- package/js/src/woofipro.js +14 -14
- package/js/src/xt.d.ts +57 -67
- package/js/src/zaif.d.ts +11 -16
- package/js/src/zaif.js +9 -3
- package/js/src/zebpay.d.ts +32 -37
- package/js/src/zebpay.js +1 -1
- package/package.json +2 -2
package/js/src/pro/binance.js
CHANGED
|
@@ -229,7 +229,7 @@ export default class binance extends binanceRest {
|
|
|
229
229
|
let stream = this.safeString(streamBySubscriptionsHash, subscriptionHash);
|
|
230
230
|
if (stream === undefined) {
|
|
231
231
|
let streamIndex = this.safeInteger(this.options, 'streamIndex', -1);
|
|
232
|
-
const streamLimits = this.
|
|
232
|
+
const streamLimits = this.safeDict(this.options, 'streamLimits');
|
|
233
233
|
const streamLimit = this.safeInteger(streamLimits, type);
|
|
234
234
|
streamIndex = streamIndex + 1;
|
|
235
235
|
const normalizedIndex = streamIndex % streamLimit;
|
|
@@ -238,7 +238,7 @@ export default class binance extends binanceRest {
|
|
|
238
238
|
if (subscriptionHash !== undefined) {
|
|
239
239
|
this.options['streamBySubscriptionsHash'][subscriptionHash] = stream;
|
|
240
240
|
}
|
|
241
|
-
const subscriptionsByStreams = this.
|
|
241
|
+
const subscriptionsByStreams = this.safeDict(this.options, 'numSubscriptionsByStream');
|
|
242
242
|
if (subscriptionsByStreams === undefined) {
|
|
243
243
|
this.options['numSubscriptionsByStream'] = this.createSafeDictionary();
|
|
244
244
|
}
|
|
@@ -460,7 +460,7 @@ export default class binance extends binanceRest {
|
|
|
460
460
|
// }
|
|
461
461
|
// }
|
|
462
462
|
//
|
|
463
|
-
const rawLiquidation = this.
|
|
463
|
+
const rawLiquidation = this.safeDict(message, 'o', {});
|
|
464
464
|
const marketId = this.safeString(rawLiquidation, 's');
|
|
465
465
|
const market = this.safeMarket(marketId, undefined, '', 'contract');
|
|
466
466
|
const symbol = market['symbol'];
|
|
@@ -951,9 +951,9 @@ export default class binance extends binanceRest {
|
|
|
951
951
|
const messageHash = 'orderbook::' + symbol;
|
|
952
952
|
try {
|
|
953
953
|
const defaultLimit = this.safeInteger(this.options, 'watchOrderBookLimit', 1000);
|
|
954
|
-
const type = this.
|
|
954
|
+
const type = this.safeString(subscription, 'type');
|
|
955
955
|
const limit = this.safeInteger(subscription, 'limit', defaultLimit);
|
|
956
|
-
const params = this.
|
|
956
|
+
const params = this.safeDict(subscription, 'params');
|
|
957
957
|
// 3. Get a depth snapshot from https://www.binance.com/api/v1/depth?symbol=BNBBTC&limit=1000 .
|
|
958
958
|
// todo: this is a synch blocking call - make it async
|
|
959
959
|
// default 100, max 1000, valid limits 5, 10, 20, 50, 100, 500, 1000
|
|
@@ -1018,8 +1018,8 @@ export default class binance extends binanceRest {
|
|
|
1018
1018
|
}
|
|
1019
1019
|
handleOrderBookMessage(client, message, orderbook) {
|
|
1020
1020
|
const u = this.safeInteger(message, 'u');
|
|
1021
|
-
this.handleDeltas(orderbook['asks'], this.
|
|
1022
|
-
this.handleDeltas(orderbook['bids'], this.
|
|
1021
|
+
this.handleDeltas(orderbook['asks'], this.safeList(message, 'a', []));
|
|
1022
|
+
this.handleDeltas(orderbook['bids'], this.safeList(message, 'b', []));
|
|
1023
1023
|
orderbook['nonce'] = u;
|
|
1024
1024
|
const timestamp = this.safeInteger(message, 'E');
|
|
1025
1025
|
orderbook['timestamp'] = timestamp;
|
|
@@ -1150,7 +1150,7 @@ export default class binance extends binanceRest {
|
|
|
1150
1150
|
const defaultLimit = this.safeInteger(this.options, 'watchOrderBookLimit', 1000);
|
|
1151
1151
|
// const messageHash = this.safeString (subscription, 'messageHash');
|
|
1152
1152
|
const symbolOfSubscription = this.safeString(subscription, 'symbol'); // watchOrderBook
|
|
1153
|
-
const symbols = this.
|
|
1153
|
+
const symbols = this.safeList(subscription, 'symbols', [symbolOfSubscription]); // watchOrderBookForSymbols
|
|
1154
1154
|
const limit = this.safeInteger(subscription, 'limit', defaultLimit);
|
|
1155
1155
|
// handle list of symbols
|
|
1156
1156
|
for (let i = 0; i < symbols.length; i++) {
|
|
@@ -1173,7 +1173,7 @@ export default class binance extends binanceRest {
|
|
|
1173
1173
|
//
|
|
1174
1174
|
const id = this.safeString(message, 'id');
|
|
1175
1175
|
const subscriptionsById = this.indexBy(client.subscriptions, 'id');
|
|
1176
|
-
const subscription = this.
|
|
1176
|
+
const subscription = this.safeDict(subscriptionsById, id, {});
|
|
1177
1177
|
const method = this.safeValue(subscription, 'method');
|
|
1178
1178
|
if (method !== undefined) {
|
|
1179
1179
|
method.call(this, client, message, subscription);
|
|
@@ -1276,7 +1276,7 @@ export default class binance extends binanceRest {
|
|
|
1276
1276
|
};
|
|
1277
1277
|
const trades = await this.watchMultiple(url, messageHashes, this.extend(request, query), messageHashes, subscribe);
|
|
1278
1278
|
if (this.newUpdates) {
|
|
1279
|
-
const first = this.
|
|
1279
|
+
const first = this.safeDict(trades, 0);
|
|
1280
1280
|
const tradeSymbol = this.safeString(first, 'symbol');
|
|
1281
1281
|
limit = trades.getLimit(tradeSymbol, limit);
|
|
1282
1282
|
}
|
|
@@ -1864,7 +1864,7 @@ export default class binance extends binanceRest {
|
|
|
1864
1864
|
'markPrice_kline': 'markPriceKline',
|
|
1865
1865
|
};
|
|
1866
1866
|
event = this.safeString(eventMap, event, event);
|
|
1867
|
-
const kline = this.
|
|
1867
|
+
const kline = this.safeDict(message, 'k');
|
|
1868
1868
|
let marketId = this.safeString2(kline, 's', 'ps');
|
|
1869
1869
|
if (event === 'indexPriceKline') {
|
|
1870
1870
|
// indexPriceKline doesn't have the _PERP suffix
|
|
@@ -1887,8 +1887,8 @@ export default class binance extends binanceRest {
|
|
|
1887
1887
|
const marketType = isSpot ? 'spot' : 'contract';
|
|
1888
1888
|
const symbol = this.safeSymbol(marketId, undefined, undefined, marketType);
|
|
1889
1889
|
const messageHash = 'ohlcv::' + symbol + '::' + unifiedTimeframe;
|
|
1890
|
-
this.ohlcvs[symbol] = this.
|
|
1891
|
-
let stored = this.safeValue(this.
|
|
1890
|
+
this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
|
|
1891
|
+
let stored = this.safeValue(this.safeDict(this.ohlcvs, symbol), unifiedTimeframe);
|
|
1892
1892
|
if (stored === undefined) {
|
|
1893
1893
|
const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
|
|
1894
1894
|
stored = new ArrayCacheByTimestamp(limit);
|
|
@@ -2623,7 +2623,7 @@ export default class binance extends binanceRest {
|
|
|
2623
2623
|
// }
|
|
2624
2624
|
//
|
|
2625
2625
|
const messageHash = this.safeString(message, 'id');
|
|
2626
|
-
const result = this.
|
|
2626
|
+
const result = this.safeDict(message, 'result', {});
|
|
2627
2627
|
const ticker = this.parseWsTicker(result, 'future');
|
|
2628
2628
|
client.resolve(ticker, messageHash);
|
|
2629
2629
|
}
|
|
@@ -2711,12 +2711,12 @@ export default class binance extends binanceRest {
|
|
|
2711
2711
|
continue;
|
|
2712
2712
|
}
|
|
2713
2713
|
const tickerMarketId = this.safeString(ticker, 's');
|
|
2714
|
-
const tickerMarketsByIdList = this.
|
|
2714
|
+
const tickerMarketsByIdList = this.safeList(this.markets_by_id, tickerMarketId);
|
|
2715
2715
|
const numTickerMarkets = (tickerMarketsByIdList === undefined) ? 0 : tickerMarketsByIdList.length;
|
|
2716
2716
|
// an ambiguous id, spot and swap share e.g. BTCUSDC, must not be resolved by
|
|
2717
2717
|
// blind first pick, the stream url decides; only a unique match, like an
|
|
2718
2718
|
// option id, may override it, see https://github.com/ccxt/ccxt/issues/29728
|
|
2719
|
-
const tickerMarketById = (numTickerMarkets === 1) ? this.
|
|
2719
|
+
const tickerMarketById = (numTickerMarkets === 1) ? this.safeDict(tickerMarketsByIdList, 0) : undefined;
|
|
2720
2720
|
const isSpot = this.isSpotUrl(client);
|
|
2721
2721
|
const tickerFallbackType = isSpot ? 'spot' : 'contract';
|
|
2722
2722
|
const tickerMarketType = (tickerMarketById !== undefined) ? tickerMarketById['type'] : tickerFallbackType;
|
|
@@ -2993,7 +2993,7 @@ export default class binance extends binanceRest {
|
|
|
2993
2993
|
}
|
|
2994
2994
|
params = this.omit(params, 'symbol');
|
|
2995
2995
|
const isStock = (type === 'stock');
|
|
2996
|
-
const options = this.
|
|
2996
|
+
const options = this.safeDict(this.options, type, {});
|
|
2997
2997
|
const lastAuthenticatedTime = this.safeInteger(options, 'lastAuthenticatedTime', 0);
|
|
2998
2998
|
const refreshRateKey = isStock ? 'stockListenKeyRefreshRate' : 'listenKeyRefreshRate';
|
|
2999
2999
|
const listenKeyRefreshRate = this.safeInteger(this.options, refreshRateKey, 1200000);
|
|
@@ -3102,7 +3102,7 @@ export default class binance extends binanceRest {
|
|
|
3102
3102
|
return;
|
|
3103
3103
|
}
|
|
3104
3104
|
const isStock = (type === 'stock');
|
|
3105
|
-
const options = this.
|
|
3105
|
+
const options = this.safeDict(this.options, type, {});
|
|
3106
3106
|
const listenKey = this.safeString(options, 'listenKey');
|
|
3107
3107
|
if (listenKey === undefined) {
|
|
3108
3108
|
// A network error happened: we can't renew a listen key that does not exist.
|
|
@@ -3199,7 +3199,7 @@ export default class binance extends binanceRest {
|
|
|
3199
3199
|
if ((type in client.subscriptions) && (type in this.balance)) {
|
|
3200
3200
|
return;
|
|
3201
3201
|
}
|
|
3202
|
-
const options = this.
|
|
3202
|
+
const options = this.safeDict(this.options, 'watchBalance');
|
|
3203
3203
|
const fetchBalanceSnapshot = this.safeBool(options, 'fetchBalanceSnapshot', false);
|
|
3204
3204
|
if (fetchBalanceSnapshot === true) {
|
|
3205
3205
|
const messageHash = type + ':fetchBalanceSnapshot';
|
|
@@ -3220,7 +3220,7 @@ export default class binance extends binanceRest {
|
|
|
3220
3220
|
params['portfolioMargin'] = true;
|
|
3221
3221
|
}
|
|
3222
3222
|
const response = await this.fetchBalance(params);
|
|
3223
|
-
this.balance[type] = this.extend(response, this.
|
|
3223
|
+
this.balance[type] = this.extend(response, this.safeDict(this.balance, type, {}));
|
|
3224
3224
|
// don't remove the future from the .futures cache
|
|
3225
3225
|
if (messageHash in client.futures) {
|
|
3226
3226
|
const future = client.futures[messageHash];
|
|
@@ -5424,12 +5424,12 @@ export default class binance extends binanceRest {
|
|
|
5424
5424
|
if (orderId !== undefined && tradeFee !== undefined && symbol !== undefined) {
|
|
5425
5425
|
const cachedOrders = this.orders;
|
|
5426
5426
|
if (cachedOrders !== undefined) {
|
|
5427
|
-
const orders = this.
|
|
5428
|
-
const order = this.
|
|
5427
|
+
const orders = this.safeDict(cachedOrders.hashmap, symbol, {});
|
|
5428
|
+
const order = this.safeDict(orders, orderId);
|
|
5429
5429
|
if (order !== undefined) {
|
|
5430
5430
|
// accumulate order fees
|
|
5431
5431
|
const fees = this.safeValue(order, 'fees');
|
|
5432
|
-
const fee = this.
|
|
5432
|
+
const fee = this.safeDict(order, 'fee');
|
|
5433
5433
|
if (!this.isEmpty(fees)) {
|
|
5434
5434
|
let insertNewFeeCurrency = true;
|
|
5435
5435
|
for (let i = 0; i < fees.length; i++) {
|
|
@@ -5506,8 +5506,8 @@ export default class binance extends binanceRest {
|
|
|
5506
5506
|
this.orders = new ArrayCacheBySymbolById(limit);
|
|
5507
5507
|
}
|
|
5508
5508
|
const cachedOrders = this.orders;
|
|
5509
|
-
const orders = this.
|
|
5510
|
-
const order = this.
|
|
5509
|
+
const orders = this.safeDict(cachedOrders.hashmap, symbol, {});
|
|
5510
|
+
const order = this.safeDict(orders, orderId);
|
|
5511
5511
|
if (order !== undefined) {
|
|
5512
5512
|
const fee = this.safeValue(order, 'fee');
|
|
5513
5513
|
if (fee !== undefined) {
|
|
@@ -5700,7 +5700,7 @@ export default class binance extends binanceRest {
|
|
|
5700
5700
|
}
|
|
5701
5701
|
// user subscription wraps message in subscriptionId and event
|
|
5702
5702
|
const id = this.safeString(message, 'id');
|
|
5703
|
-
const subscriptions = this.
|
|
5703
|
+
const subscriptions = this.safeDict(client.subscriptions, id);
|
|
5704
5704
|
let method = this.safeValue(subscriptions, 'method');
|
|
5705
5705
|
if (method !== undefined) {
|
|
5706
5706
|
method.call(this, client, message);
|
package/js/src/pro/bingx.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export default class bingx extends bingxRest {
|
|
|
15
15
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
16
16
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/?id=ticker-structure}
|
|
17
17
|
*/
|
|
18
|
-
watchTicker(symbol: string, params?:
|
|
18
|
+
watchTicker(symbol: string, params?: Dict): Promise<Ticker>;
|
|
19
19
|
/**
|
|
20
20
|
* @method
|
|
21
21
|
* @name bingx#unWatchTicker
|
|
@@ -28,8 +28,8 @@ export default class bingx extends bingxRest {
|
|
|
28
28
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/?id=ticker-structure}
|
|
29
29
|
*/
|
|
30
30
|
unWatchTicker(symbol: string, params?: {}): Promise<any>;
|
|
31
|
-
handleTicker(client: Client, message:
|
|
32
|
-
parseWsTicker(message:
|
|
31
|
+
handleTicker(client: Client, message: Dict): void;
|
|
32
|
+
parseWsTicker(message: Dict, market?: Market, isInverse?: Bool): Ticker;
|
|
33
33
|
getOrderBookLimitByMarketType(marketType: string, limit?: Int): number;
|
|
34
34
|
getMessageHash(unifiedChannel: string, symbol?: Str, extra?: Str): string;
|
|
35
35
|
/**
|
|
@@ -45,7 +45,7 @@ export default class bingx extends bingxRest {
|
|
|
45
45
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
46
46
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
|
|
47
47
|
*/
|
|
48
|
-
watchTrades(symbol: string, since?: Int, limit?: Int, params?:
|
|
48
|
+
watchTrades(symbol: string, since?: Int, limit?: Int, params?: Dict): Promise<Trade[]>;
|
|
49
49
|
/**
|
|
50
50
|
* @method
|
|
51
51
|
* @name bingx#unWatchTrades
|
|
@@ -59,7 +59,7 @@ export default class bingx extends bingxRest {
|
|
|
59
59
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=public-trades}
|
|
60
60
|
*/
|
|
61
61
|
unWatchTrades(symbol: string, params?: {}): Promise<any>;
|
|
62
|
-
handleTrades(client: Client, message:
|
|
62
|
+
handleTrades(client: Client, message: Dict): void;
|
|
63
63
|
/**
|
|
64
64
|
* @method
|
|
65
65
|
* @name bingx#watchOrderBook
|
|
@@ -72,7 +72,7 @@ export default class bingx extends bingxRest {
|
|
|
72
72
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
73
73
|
* @returns {object} an [order book structure]{@link https://docs.ccxt.com/?id=order-book-structure}
|
|
74
74
|
*/
|
|
75
|
-
watchOrderBook(symbol: string, limit?: Int, params?:
|
|
75
|
+
watchOrderBook(symbol: string, limit?: Int, params?: Dict): Promise<OrderBook>;
|
|
76
76
|
/**
|
|
77
77
|
* @method
|
|
78
78
|
* @name bingx#unWatchOrderBook
|
|
@@ -86,9 +86,9 @@ export default class bingx extends bingxRest {
|
|
|
86
86
|
*/
|
|
87
87
|
unWatchOrderBook(symbol: string, params?: {}): Promise<any>;
|
|
88
88
|
handleDelta(bookside: any, delta: any): void;
|
|
89
|
-
handleOrderBook(client: Client, message:
|
|
89
|
+
handleOrderBook(client: Client, message: Dict): void;
|
|
90
90
|
parseWsOHLCV(ohlcv: any, market?: Market): OHLCV;
|
|
91
|
-
handleOHLCV(client: Client, message:
|
|
91
|
+
handleOHLCV(client: Client, message: Dict): void;
|
|
92
92
|
/**
|
|
93
93
|
* @method
|
|
94
94
|
* @name bingx#watchOHLCV
|
|
@@ -103,7 +103,7 @@ export default class bingx extends bingxRest {
|
|
|
103
103
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
104
104
|
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
105
105
|
*/
|
|
106
|
-
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?:
|
|
106
|
+
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: Dict): Promise<OHLCV[]>;
|
|
107
107
|
/**
|
|
108
108
|
* @method
|
|
109
109
|
* @name bingx#unWatchOHLCV
|
|
@@ -130,7 +130,7 @@ export default class bingx extends bingxRest {
|
|
|
130
130
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
131
131
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
|
|
132
132
|
*/
|
|
133
|
-
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?:
|
|
133
|
+
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: Dict): Promise<Order[]>;
|
|
134
134
|
/**
|
|
135
135
|
* @method
|
|
136
136
|
* @name bingx#watchMyTrades
|
|
@@ -144,7 +144,7 @@ export default class bingx extends bingxRest {
|
|
|
144
144
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
145
145
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=trade-structure}
|
|
146
146
|
*/
|
|
147
|
-
watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?:
|
|
147
|
+
watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: Dict): Promise<Trade[]>;
|
|
148
148
|
/**
|
|
149
149
|
* @method
|
|
150
150
|
* @name bingx#watchBalance
|
|
@@ -155,9 +155,9 @@ export default class bingx extends bingxRest {
|
|
|
155
155
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
156
156
|
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/?id=balance-structure}
|
|
157
157
|
*/
|
|
158
|
-
watchBalance(params?:
|
|
159
|
-
setBalanceCache(client: Client, type: any, subType:
|
|
160
|
-
loadBalanceSnapshot(client: Client, messageHash:
|
|
158
|
+
watchBalance(params?: Dict): Promise<Balances>;
|
|
159
|
+
setBalanceCache(client: Client, type: any, subType: Str, subscriptionHash: string, params: Dict): void;
|
|
160
|
+
loadBalanceSnapshot(client: Client, messageHash: string, type: any, subType: Str): Promise<void>;
|
|
161
161
|
/**
|
|
162
162
|
* @method
|
|
163
163
|
* @name bingx#watchPositions
|
|
@@ -169,19 +169,19 @@ export default class bingx extends bingxRest {
|
|
|
169
169
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
170
170
|
* @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
|
|
171
171
|
*/
|
|
172
|
-
watchPositions(symbols?: Strings, since?: Int, limit?: Int, params?:
|
|
173
|
-
setPositionsCache(client: Client, type:
|
|
174
|
-
loadPositionsSnapshot(client: Client, messageHash:
|
|
175
|
-
parseWsPosition(position:
|
|
176
|
-
handlePositions(client: Client, message:
|
|
177
|
-
handleErrorMessage(client: Client, message:
|
|
178
|
-
keepAliveListenKey(params?:
|
|
179
|
-
authenticate(params?:
|
|
172
|
+
watchPositions(symbols?: Strings, since?: Int, limit?: Int, params?: Dict): Promise<Position[]>;
|
|
173
|
+
setPositionsCache(client: Client, type: Str, symbols?: Strings): void;
|
|
174
|
+
loadPositionsSnapshot(client: Client, messageHash: string, type: Str): Promise<void>;
|
|
175
|
+
parseWsPosition(position: Dict, market?: Market): Position;
|
|
176
|
+
handlePositions(client: Client, message: Dict): void;
|
|
177
|
+
handleErrorMessage(client: Client, message: Dict): boolean;
|
|
178
|
+
keepAliveListenKey(params?: Dict): Promise<void>;
|
|
179
|
+
authenticate(params?: Dict): Promise<void>;
|
|
180
180
|
pong(client: Client, message: any): Promise<void>;
|
|
181
|
-
handleOrder(client:
|
|
182
|
-
handleMyTrades(client: Client, message:
|
|
183
|
-
handleBalance(client: Client, message:
|
|
181
|
+
handleOrder(client: Client, message: Dict): void;
|
|
182
|
+
handleMyTrades(client: Client, message: Dict): void;
|
|
183
|
+
handleBalance(client: Client, message: Dict): void;
|
|
184
184
|
handleMessage(client: Client, message: any): void;
|
|
185
|
-
handleSubscriptionStatus(client: Client, message:
|
|
185
|
+
handleSubscriptionStatus(client: Client, message: Dict): Dict;
|
|
186
186
|
handleUnSubscription(client: Client, subscription: Dict): void;
|
|
187
187
|
}
|
package/js/src/pro/bingx.js
CHANGED
|
@@ -258,7 +258,7 @@ export default class bingx extends bingxRest {
|
|
|
258
258
|
// }
|
|
259
259
|
// }
|
|
260
260
|
//
|
|
261
|
-
const data = this.
|
|
261
|
+
const data = this.safeDict(message, 'data', {});
|
|
262
262
|
const marketId = this.safeString(data, 's');
|
|
263
263
|
// const marketId = messageHash.split('@')[0];
|
|
264
264
|
const isSwap = client.url.indexOf('swap') >= 0;
|
|
@@ -860,7 +860,7 @@ export default class bingx extends bingxRest {
|
|
|
860
860
|
candles = [this.safeDict(data, 'K', {})];
|
|
861
861
|
}
|
|
862
862
|
const symbol = market['symbol'];
|
|
863
|
-
this.ohlcvs[symbol] = this.
|
|
863
|
+
this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
|
|
864
864
|
const rawTimeframe = dataType.split('_')[1];
|
|
865
865
|
const marketOptions = this.safeDict(this.options, marketType);
|
|
866
866
|
const timeframes = this.safeDict(marketOptions, 'timeframes', {});
|
|
@@ -922,8 +922,8 @@ export default class bingx extends bingxRest {
|
|
|
922
922
|
if (url === undefined) {
|
|
923
923
|
throw new BadRequest(this.id + ' watchOHLCV is not supported for ' + marketType + ' markets.');
|
|
924
924
|
}
|
|
925
|
-
const options = this.
|
|
926
|
-
const timeframes = this.
|
|
925
|
+
const options = this.safeDict(this.options, marketType, {});
|
|
926
|
+
const timeframes = this.safeDict(options, 'timeframes', {});
|
|
927
927
|
const rawTimeframe = this.safeString(timeframes, timeframe, timeframe);
|
|
928
928
|
const messageHash = this.getMessageHash('ohlcv', market['symbol'], timeframe);
|
|
929
929
|
const subscriptionHash = market['id'] + '@kline_' + rawTimeframe;
|
|
@@ -965,8 +965,8 @@ export default class bingx extends bingxRest {
|
|
|
965
965
|
await this.loadMarkets();
|
|
966
966
|
}
|
|
967
967
|
const market = this.market(symbol);
|
|
968
|
-
const options = this.
|
|
969
|
-
const timeframes = this.
|
|
968
|
+
const options = this.safeDict(this.options, market['type'], {});
|
|
969
|
+
const timeframes = this.safeDict(options, 'timeframes', {});
|
|
970
970
|
const rawTimeframe = this.safeString(timeframes, timeframe, timeframe);
|
|
971
971
|
const subMessageHash = market['id'] + '@kline_' + rawTimeframe;
|
|
972
972
|
const messageHash = 'unsubscribe::' + subMessageHash;
|
|
@@ -1185,7 +1185,7 @@ export default class bingx extends bingxRest {
|
|
|
1185
1185
|
}
|
|
1186
1186
|
async loadBalanceSnapshot(client, messageHash, type, subType) {
|
|
1187
1187
|
const response = await this.fetchBalance({ 'type': type, 'subType': subType });
|
|
1188
|
-
this.balance[type] = this.extend(response, this.
|
|
1188
|
+
this.balance[type] = this.extend(response, this.safeDict(this.balance, type, {}));
|
|
1189
1189
|
// don't remove the future from the .futures cache
|
|
1190
1190
|
if (messageHash in client.futures) {
|
|
1191
1191
|
const future = client.futures[messageHash];
|
|
@@ -1615,7 +1615,7 @@ export default class bingx extends bingxRest {
|
|
|
1615
1615
|
// }
|
|
1616
1616
|
//
|
|
1617
1617
|
const isSpot = ('dataType' in message);
|
|
1618
|
-
const data = this.
|
|
1618
|
+
const data = this.safeDict2(message, 'data', 'o', {});
|
|
1619
1619
|
if (this.orders === undefined) {
|
|
1620
1620
|
const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
|
|
1621
1621
|
this.orders = new ArrayCacheBySymbolById(limit);
|
|
@@ -1820,7 +1820,7 @@ export default class bingx extends bingxRest {
|
|
|
1820
1820
|
return;
|
|
1821
1821
|
}
|
|
1822
1822
|
if (dataType.indexOf('executionReport') >= 0) {
|
|
1823
|
-
const data = this.
|
|
1823
|
+
const data = this.safeDict(message, 'data', {});
|
|
1824
1824
|
const type = this.safeString(data, 'x');
|
|
1825
1825
|
if (type === 'TRADE') {
|
|
1826
1826
|
this.handleMyTrades(client, message);
|
|
@@ -1835,14 +1835,14 @@ export default class bingx extends bingxRest {
|
|
|
1835
1835
|
}
|
|
1836
1836
|
if (e === 'ORDER_TRADE_UPDATE') {
|
|
1837
1837
|
this.handleOrder(client, message);
|
|
1838
|
-
const data = this.
|
|
1838
|
+
const data = this.safeDict(message, 'o', {});
|
|
1839
1839
|
const type = this.safeString(data, 'x');
|
|
1840
1840
|
const status = this.safeString(data, 'X');
|
|
1841
1841
|
if ((type === 'TRADE') && (status === 'FILLED')) {
|
|
1842
1842
|
this.handleMyTrades(client, message);
|
|
1843
1843
|
}
|
|
1844
1844
|
}
|
|
1845
|
-
const msgData = this.
|
|
1845
|
+
const msgData = this.safeDict(message, 'data');
|
|
1846
1846
|
const msgEvent = this.safeString(msgData, 'e');
|
|
1847
1847
|
if (msgEvent === '24hTicker') {
|
|
1848
1848
|
this.handleTicker(client, message);
|
package/js/src/pro/bitfinex.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import type { Int, Str, OrderBook, Order, Trade, Ticker, OHLCV, Balances, Dict,
|
|
|
3
3
|
import Client from '../base/ws/Client.js';
|
|
4
4
|
export default class bitfinex extends bitfinexRest {
|
|
5
5
|
describe(): any;
|
|
6
|
-
subscribe(channel: any, symbol: any, params?:
|
|
7
|
-
unSubscribe(channel: any, topic: any, symbol: any, params?:
|
|
6
|
+
subscribe(channel: any, symbol: any, params?: Dict): Promise<any>;
|
|
7
|
+
unSubscribe(channel: any, topic: any, symbol: any, params?: Dict): Promise<any>;
|
|
8
8
|
subscribePrivate(messageHash: any): Promise<any>;
|
|
9
9
|
/**
|
|
10
10
|
* @method
|
|
@@ -17,7 +17,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
17
17
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
18
18
|
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
19
19
|
*/
|
|
20
|
-
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?:
|
|
20
|
+
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: Dict): Promise<OHLCV[]>;
|
|
21
21
|
/**
|
|
22
22
|
* @method
|
|
23
23
|
* @name bitfinex#unWatchOHLCV
|
|
@@ -27,8 +27,8 @@ export default class bitfinex extends bitfinexRest {
|
|
|
27
27
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
28
28
|
* @returns {bool} true if successfully unsubscribed, false otherwise
|
|
29
29
|
*/
|
|
30
|
-
unWatchOHLCV(symbol: string, timeframe?: string, params?:
|
|
31
|
-
handleOHLCV(client: Client, message: any, subscription:
|
|
30
|
+
unWatchOHLCV(symbol: string, timeframe?: string, params?: Dict): Promise<any>;
|
|
31
|
+
handleOHLCV(client: Client, message: any[], subscription: Dict): void;
|
|
32
32
|
/**
|
|
33
33
|
* @method
|
|
34
34
|
* @name bitfinex#watchTrades
|
|
@@ -39,7 +39,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
39
39
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
40
40
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=public-trades}
|
|
41
41
|
*/
|
|
42
|
-
watchTrades(symbol: string, since?: Int, limit?: Int, params?:
|
|
42
|
+
watchTrades(symbol: string, since?: Int, limit?: Int, params?: Dict): Promise<Trade[]>;
|
|
43
43
|
/**
|
|
44
44
|
* @method
|
|
45
45
|
* @name bitfinex#unWatchTrades
|
|
@@ -59,7 +59,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
59
59
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
60
60
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=trade-structure}
|
|
61
61
|
*/
|
|
62
|
-
watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?:
|
|
62
|
+
watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: Dict): Promise<Trade[]>;
|
|
63
63
|
/**
|
|
64
64
|
* @method
|
|
65
65
|
* @name bitfinex#watchTicker
|
|
@@ -68,7 +68,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
68
68
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
69
69
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/?id=ticker-structure}
|
|
70
70
|
*/
|
|
71
|
-
watchTicker(symbol: string, params?:
|
|
71
|
+
watchTicker(symbol: string, params?: Dict): Promise<Ticker>;
|
|
72
72
|
/**
|
|
73
73
|
* @method
|
|
74
74
|
* @name bitfinex#unWatchTicker
|
|
@@ -78,10 +78,10 @@ export default class bitfinex extends bitfinexRest {
|
|
|
78
78
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/?id=ticker-structure}
|
|
79
79
|
*/
|
|
80
80
|
unWatchTicker(symbol: string, params?: {}): Promise<any>;
|
|
81
|
-
handleMyTrade(client: Client, message: any, subscription?:
|
|
82
|
-
handleTrades(client: Client, message: any, subscription:
|
|
81
|
+
handleMyTrade(client: Client, message: any[], subscription?: Dict): void;
|
|
82
|
+
handleTrades(client: Client, message: any[], subscription: Dict): void;
|
|
83
83
|
parseWsTrade(trade: any, market?: Market): Trade;
|
|
84
|
-
handleTicker(client: Client, message: any, subscription:
|
|
84
|
+
handleTicker(client: Client, message: any[], subscription: Dict): void;
|
|
85
85
|
parseWsTicker(ticker: Dict, market?: Market): Ticker;
|
|
86
86
|
/**
|
|
87
87
|
* @method
|
|
@@ -92,9 +92,9 @@ export default class bitfinex extends bitfinexRest {
|
|
|
92
92
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
93
93
|
* @returns {object} an [order book structure]{@link https://docs.ccxt.com/?id=order-book-structure}
|
|
94
94
|
*/
|
|
95
|
-
watchOrderBook(symbol: string, limit?: Int, params?:
|
|
96
|
-
handleOrderBook(client: Client, message: any, subscription:
|
|
97
|
-
handleChecksum(client: Client, message: any, subscription:
|
|
95
|
+
watchOrderBook(symbol: string, limit?: Int, params?: Dict): Promise<OrderBook>;
|
|
96
|
+
handleOrderBook(client: Client, message: any[], subscription: Dict): void;
|
|
97
|
+
handleChecksum(client: Client, message: any[], subscription: Dict): void;
|
|
98
98
|
/**
|
|
99
99
|
* @method
|
|
100
100
|
* @name bitfinex#watchBalance
|
|
@@ -103,14 +103,14 @@ export default class bitfinex extends bitfinexRest {
|
|
|
103
103
|
* @param {str} [params.type] spot or contract if not provided this.options['defaultType'] is used
|
|
104
104
|
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/?id=balance-structure}
|
|
105
105
|
*/
|
|
106
|
-
watchBalance(params?:
|
|
107
|
-
handleBalance(client: Client, message: any, subscription:
|
|
106
|
+
watchBalance(params?: Dict): Promise<Balances>;
|
|
107
|
+
handleBalance(client: Client, message: any[], subscription: Dict): void;
|
|
108
108
|
parseWsBalance(balance: any): import("../base/types.js").BalanceAccount;
|
|
109
|
-
handleSystemStatus(client: Client, message:
|
|
110
|
-
handleUnsubscriptionStatus(client: Client, message:
|
|
111
|
-
handleSubscriptionStatus(client: Client, message:
|
|
112
|
-
authenticate(params?:
|
|
113
|
-
handleAuthenticationMessage(client: Client, message:
|
|
109
|
+
handleSystemStatus(client: Client, message: Dict): Dict;
|
|
110
|
+
handleUnsubscriptionStatus(client: Client, message: Dict): boolean;
|
|
111
|
+
handleSubscriptionStatus(client: Client, message: Dict): Dict;
|
|
112
|
+
authenticate(params?: Dict): Promise<any>;
|
|
113
|
+
handleAuthenticationMessage(client: Client, message: Dict): void;
|
|
114
114
|
/**
|
|
115
115
|
* @method
|
|
116
116
|
* @name bitfinex#watchOrders
|
|
@@ -121,9 +121,9 @@ export default class bitfinex extends bitfinexRest {
|
|
|
121
121
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
122
122
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
|
|
123
123
|
*/
|
|
124
|
-
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?:
|
|
125
|
-
handleOrders(client: Client, message: any, subscription:
|
|
126
|
-
parseWsOrderStatus(status:
|
|
127
|
-
parseWsOrder(order:
|
|
124
|
+
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: Dict): Promise<Order[]>;
|
|
125
|
+
handleOrders(client: Client, message: any[], subscription: Dict): void;
|
|
126
|
+
parseWsOrderStatus(status: Str): Str;
|
|
127
|
+
parseWsOrder(order: Dict, market?: Market): Order;
|
|
128
128
|
handleMessage(client: Client, message: any): void;
|
|
129
129
|
}
|
package/js/src/pro/bitfinex.js
CHANGED
|
@@ -229,9 +229,9 @@ export default class bitfinex extends bitfinexRest {
|
|
|
229
229
|
// ]
|
|
230
230
|
// ]
|
|
231
231
|
//
|
|
232
|
-
const data = this.
|
|
232
|
+
const data = this.safeList(message, 1, []);
|
|
233
233
|
let ohlcvs = [];
|
|
234
|
-
const first = this.
|
|
234
|
+
const first = this.safeList(data, 0);
|
|
235
235
|
if (Array.isArray(first)) {
|
|
236
236
|
// snapshot
|
|
237
237
|
ohlcvs = data;
|
|
@@ -240,7 +240,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
240
240
|
// update
|
|
241
241
|
ohlcvs = [data];
|
|
242
242
|
}
|
|
243
|
-
const channel = this.
|
|
243
|
+
const channel = this.safeString(subscription, 'channel');
|
|
244
244
|
const key = this.safeString(subscription, 'key', '');
|
|
245
245
|
const keyParts = key.split(':');
|
|
246
246
|
const interval = this.safeString(keyParts, 1);
|
|
@@ -251,7 +251,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
251
251
|
const timeframe = this.findTimeframe(interval);
|
|
252
252
|
const symbol = market['symbol'];
|
|
253
253
|
const messageHash = channel + ':' + interval + ':' + marketId;
|
|
254
|
-
this.ohlcvs[symbol] = this.
|
|
254
|
+
this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
|
|
255
255
|
let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
|
|
256
256
|
if (stored === undefined) {
|
|
257
257
|
const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
|
|
@@ -412,7 +412,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
412
412
|
// ]
|
|
413
413
|
//
|
|
414
414
|
//
|
|
415
|
-
const channel = this.
|
|
415
|
+
const channel = this.safeString(subscription, 'channel');
|
|
416
416
|
const marketId = this.safeString(subscription, 'symbol');
|
|
417
417
|
const market = this.safeMarket(marketId);
|
|
418
418
|
const messageHash = channel + ':' + marketId;
|
|
@@ -443,7 +443,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
443
443
|
// since te and tu updates are duplicated on the public stream
|
|
444
444
|
return;
|
|
445
445
|
}
|
|
446
|
-
const trade = this.
|
|
446
|
+
const trade = this.safeList(message, 2, []);
|
|
447
447
|
const parsed = this.parseWsTrade(trade, market);
|
|
448
448
|
stored.append(parsed);
|
|
449
449
|
}
|
|
@@ -636,7 +636,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
636
636
|
throw new ExchangeError(this.id + ' watchOrderBook limit argument must be undefined, 25 or 100');
|
|
637
637
|
}
|
|
638
638
|
}
|
|
639
|
-
const options = this.
|
|
639
|
+
const options = this.safeDict(this.options, 'watchOrderBook', {});
|
|
640
640
|
const prec = this.safeString(options, 'prec', 'P0');
|
|
641
641
|
const freq = this.safeString(options, 'freq', 'F0');
|
|
642
642
|
const request = {
|
|
@@ -761,7 +761,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
761
761
|
const symbol = this.safeSymbol(marketId);
|
|
762
762
|
const channel = 'book';
|
|
763
763
|
const messageHash = channel + ':' + marketId;
|
|
764
|
-
const book = this.
|
|
764
|
+
const book = this.safeDict(this.orderbooks, symbol);
|
|
765
765
|
if (book === undefined) {
|
|
766
766
|
return;
|
|
767
767
|
}
|
|
@@ -774,8 +774,8 @@ export default class bitfinex extends bitfinexRest {
|
|
|
774
774
|
const idToCheck = isRaw ? 2 : 0;
|
|
775
775
|
// pepperoni pizza from bitfinex
|
|
776
776
|
for (let i = 0; i < depth; i++) {
|
|
777
|
-
const bid = this.
|
|
778
|
-
const ask = this.
|
|
777
|
+
const bid = this.safeList(bids, i);
|
|
778
|
+
const ask = this.safeList(asks, i);
|
|
779
779
|
if (bid !== undefined) {
|
|
780
780
|
stringArray.push(this.numberToString(bids[i][idToCheck]));
|
|
781
781
|
stringArray.push(this.numberToString(bids[i][1]));
|
|
@@ -1280,7 +1280,7 @@ export default class bitfinex extends bitfinexRest {
|
|
|
1280
1280
|
if (message[1] === 'hb') {
|
|
1281
1281
|
return; // skip heartbeats within subscription channels for now
|
|
1282
1282
|
}
|
|
1283
|
-
const subscription = this.
|
|
1283
|
+
const subscription = this.safeDict(client.subscriptions, channelId, {});
|
|
1284
1284
|
const channel = this.safeString(subscription, 'channel');
|
|
1285
1285
|
const name = this.safeString(message, 1);
|
|
1286
1286
|
const publicMethods = {
|