tardis-dev 14.2.3 → 15.0.0
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 +42 -54
- package/dist/apikeyaccessinfo.d.ts +1 -1
- package/dist/apikeyaccessinfo.d.ts.map +1 -1
- package/dist/apikeyaccessinfo.js +7 -12
- package/dist/apikeyaccessinfo.js.map +1 -1
- package/dist/binarysplit.d.ts +2 -1
- package/dist/binarysplit.d.ts.map +1 -1
- package/dist/binarysplit.js +2 -6
- package/dist/binarysplit.js.map +1 -1
- package/dist/clearcache.d.ts +1 -1
- package/dist/clearcache.d.ts.map +1 -1
- package/dist/clearcache.js +19 -22
- package/dist/clearcache.js.map +1 -1
- package/dist/combine.js +5 -8
- package/dist/combine.js.map +1 -1
- package/dist/computable/booksnapshot.d.ts +3 -3
- package/dist/computable/booksnapshot.d.ts.map +1 -1
- package/dist/computable/booksnapshot.js +5 -9
- package/dist/computable/booksnapshot.js.map +1 -1
- package/dist/computable/computable.d.ts +1 -1
- package/dist/computable/computable.d.ts.map +1 -1
- package/dist/computable/computable.js +1 -4
- package/dist/computable/computable.js.map +1 -1
- package/dist/computable/index.d.ts +3 -3
- package/dist/computable/index.d.ts.map +1 -1
- package/dist/computable/index.js +3 -19
- package/dist/computable/index.js.map +1 -1
- package/dist/computable/tradebar.d.ts +2 -2
- package/dist/computable/tradebar.d.ts.map +1 -1
- package/dist/computable/tradebar.js +1 -5
- package/dist/computable/tradebar.js.map +1 -1
- package/dist/consts.js +2 -5
- package/dist/consts.js.map +1 -1
- package/dist/debug.js +2 -8
- package/dist/debug.js.map +1 -1
- package/dist/downloaddatasets.d.ts +2 -2
- package/dist/downloaddatasets.d.ts.map +1 -1
- package/dist/downloaddatasets.js +21 -28
- package/dist/downloaddatasets.js.map +1 -1
- package/dist/exchangedetails.d.ts +1 -1
- package/dist/exchangedetails.d.ts.map +1 -1
- package/dist/exchangedetails.js +6 -9
- package/dist/exchangedetails.js.map +1 -1
- package/dist/filter.d.ts +1 -1
- package/dist/filter.d.ts.map +1 -1
- package/dist/filter.js +4 -8
- package/dist/filter.js.map +1 -1
- package/dist/handy.d.ts +22 -4
- package/dist/handy.d.ts.map +1 -1
- package/dist/handy.js +257 -130
- package/dist/handy.js.map +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -34
- package/dist/index.js.map +1 -1
- package/dist/instrumentinfo.d.ts +2 -2
- package/dist/instrumentinfo.d.ts.map +1 -1
- package/dist/instrumentinfo.js +7 -11
- package/dist/instrumentinfo.js.map +1 -1
- package/dist/mappers/ascendex.d.ts +2 -2
- package/dist/mappers/ascendex.d.ts.map +1 -1
- package/dist/mappers/ascendex.js +11 -18
- package/dist/mappers/ascendex.js.map +1 -1
- package/dist/mappers/binance.d.ts +3 -3
- package/dist/mappers/binance.d.ts.map +1 -1
- package/dist/mappers/binance.js +26 -35
- package/dist/mappers/binance.js.map +1 -1
- package/dist/mappers/binancedex.d.ts +2 -2
- package/dist/mappers/binancedex.d.ts.map +1 -1
- package/dist/mappers/binancedex.js +7 -10
- package/dist/mappers/binancedex.js.map +1 -1
- package/dist/mappers/binanceeuropeanoptions.d.ts +2 -2
- package/dist/mappers/binanceeuropeanoptions.d.ts.map +1 -1
- package/dist/mappers/binanceeuropeanoptions.js +40 -50
- package/dist/mappers/binanceeuropeanoptions.js.map +1 -1
- package/dist/mappers/bitfinex.d.ts +2 -2
- package/dist/mappers/bitfinex.d.ts.map +1 -1
- package/dist/mappers/bitfinex.js +12 -20
- package/dist/mappers/bitfinex.js.map +1 -1
- package/dist/mappers/bitflyer.d.ts +2 -2
- package/dist/mappers/bitflyer.d.ts.map +1 -1
- package/dist/mappers/bitflyer.js +9 -13
- package/dist/mappers/bitflyer.js.map +1 -1
- package/dist/mappers/bitget.d.ts +2 -2
- package/dist/mappers/bitget.d.ts.map +1 -1
- package/dist/mappers/bitget.js +10 -17
- package/dist/mappers/bitget.js.map +1 -1
- package/dist/mappers/bitmex.d.ts +2 -2
- package/dist/mappers/bitmex.d.ts.map +1 -1
- package/dist/mappers/bitmex.js +17 -22
- package/dist/mappers/bitmex.js.map +1 -1
- package/dist/mappers/bitnomial.d.ts +2 -2
- package/dist/mappers/bitnomial.d.ts.map +1 -1
- package/dist/mappers/bitnomial.js +7 -11
- package/dist/mappers/bitnomial.js.map +1 -1
- package/dist/mappers/bitstamp.d.ts +2 -2
- package/dist/mappers/bitstamp.d.ts.map +1 -1
- package/dist/mappers/bitstamp.js +5 -9
- package/dist/mappers/bitstamp.js.map +1 -1
- package/dist/mappers/blockchaincom.d.ts +2 -2
- package/dist/mappers/blockchaincom.d.ts.map +1 -1
- package/dist/mappers/blockchaincom.js +5 -10
- package/dist/mappers/blockchaincom.js.map +1 -1
- package/dist/mappers/bybit.d.ts +2 -2
- package/dist/mappers/bybit.d.ts.map +1 -1
- package/dist/mappers/bybit.js +41 -55
- package/dist/mappers/bybit.js.map +1 -1
- package/dist/mappers/bybitspot.d.ts +2 -2
- package/dist/mappers/bybitspot.d.ts.map +1 -1
- package/dist/mappers/bybitspot.js +7 -13
- package/dist/mappers/bybitspot.js.map +1 -1
- package/dist/mappers/coinbase.d.ts +2 -2
- package/dist/mappers/coinbase.d.ts.map +1 -1
- package/dist/mappers/coinbase.js +11 -15
- package/dist/mappers/coinbase.js.map +1 -1
- package/dist/mappers/coinbaseinternational.d.ts +2 -2
- package/dist/mappers/coinbaseinternational.d.ts.map +1 -1
- package/dist/mappers/coinbaseinternational.js +12 -17
- package/dist/mappers/coinbaseinternational.js.map +1 -1
- package/dist/mappers/coinflex.d.ts +2 -2
- package/dist/mappers/coinflex.d.ts.map +1 -1
- package/dist/mappers/coinflex.js +9 -13
- package/dist/mappers/coinflex.js.map +1 -1
- package/dist/mappers/cryptocom.d.ts +2 -2
- package/dist/mappers/cryptocom.d.ts.map +1 -1
- package/dist/mappers/cryptocom.js +11 -18
- package/dist/mappers/cryptocom.js.map +1 -1
- package/dist/mappers/cryptofacilities.d.ts +2 -2
- package/dist/mappers/cryptofacilities.d.ts.map +1 -1
- package/dist/mappers/cryptofacilities.js +13 -17
- package/dist/mappers/cryptofacilities.js.map +1 -1
- package/dist/mappers/delta.d.ts +2 -2
- package/dist/mappers/delta.d.ts.map +1 -1
- package/dist/mappers/delta.js +17 -24
- package/dist/mappers/delta.js.map +1 -1
- package/dist/mappers/deribit.d.ts +2 -2
- package/dist/mappers/deribit.d.ts.map +1 -1
- package/dist/mappers/deribit.js +20 -25
- package/dist/mappers/deribit.js.map +1 -1
- package/dist/mappers/dydx.d.ts +2 -2
- package/dist/mappers/dydx.d.ts.map +1 -1
- package/dist/mappers/dydx.js +9 -15
- package/dist/mappers/dydx.js.map +1 -1
- package/dist/mappers/dydxv4.d.ts +2 -2
- package/dist/mappers/dydxv4.d.ts.map +1 -1
- package/dist/mappers/dydxv4.js +11 -18
- package/dist/mappers/dydxv4.js.map +1 -1
- package/dist/mappers/ftx.d.ts +2 -2
- package/dist/mappers/ftx.d.ts.map +1 -1
- package/dist/mappers/ftx.js +22 -31
- package/dist/mappers/ftx.js.map +1 -1
- package/dist/mappers/gateio.d.ts +3 -3
- package/dist/mappers/gateio.d.ts.map +1 -1
- package/dist/mappers/gateio.js +17 -26
- package/dist/mappers/gateio.js.map +1 -1
- package/dist/mappers/gateiofutures.d.ts +7 -7
- package/dist/mappers/gateiofutures.d.ts.map +1 -1
- package/dist/mappers/gateiofutures.js +22 -25
- package/dist/mappers/gateiofutures.js.map +1 -1
- package/dist/mappers/gemini.d.ts +2 -2
- package/dist/mappers/gemini.d.ts.map +1 -1
- package/dist/mappers/gemini.js +5 -8
- package/dist/mappers/gemini.js.map +1 -1
- package/dist/mappers/hitbtc.d.ts +2 -2
- package/dist/mappers/hitbtc.d.ts.map +1 -1
- package/dist/mappers/hitbtc.js +5 -8
- package/dist/mappers/hitbtc.js.map +1 -1
- package/dist/mappers/huobi.d.ts +4 -4
- package/dist/mappers/huobi.d.ts.map +1 -1
- package/dist/mappers/huobi.js +32 -42
- package/dist/mappers/huobi.js.map +1 -1
- package/dist/mappers/hyperliquid.d.ts +2 -2
- package/dist/mappers/hyperliquid.d.ts.map +1 -1
- package/dist/mappers/hyperliquid.js +6 -13
- package/dist/mappers/hyperliquid.js.map +1 -1
- package/dist/mappers/index.d.ts +38 -38
- package/dist/mappers/index.d.ts.map +1 -1
- package/dist/mappers/index.js +273 -296
- package/dist/mappers/index.js.map +1 -1
- package/dist/mappers/kraken.d.ts +2 -2
- package/dist/mappers/kraken.d.ts.map +1 -1
- package/dist/mappers/kraken.js +11 -14
- package/dist/mappers/kraken.js.map +1 -1
- package/dist/mappers/kucoin.d.ts +3 -3
- package/dist/mappers/kucoin.d.ts.map +1 -1
- package/dist/mappers/kucoin.js +10 -16
- package/dist/mappers/kucoin.js.map +1 -1
- package/dist/mappers/kucoinfutures.d.ts +3 -3
- package/dist/mappers/kucoinfutures.d.ts.map +1 -1
- package/dist/mappers/kucoinfutures.js +15 -22
- package/dist/mappers/kucoinfutures.js.map +1 -1
- package/dist/mappers/mapper.d.ts +1 -1
- package/dist/mappers/mapper.d.ts.map +1 -1
- package/dist/mappers/mapper.js +1 -5
- package/dist/mappers/mapper.js.map +1 -1
- package/dist/mappers/okex.d.ts +2 -2
- package/dist/mappers/okex.d.ts.map +1 -1
- package/dist/mappers/okex.js +65 -80
- package/dist/mappers/okex.js.map +1 -1
- package/dist/mappers/okexspreads.d.ts +2 -2
- package/dist/mappers/okexspreads.d.ts.map +1 -1
- package/dist/mappers/okexspreads.js +7 -13
- package/dist/mappers/okexspreads.js.map +1 -1
- package/dist/mappers/phemex.d.ts +2 -2
- package/dist/mappers/phemex.d.ts.map +1 -1
- package/dist/mappers/phemex.js +5 -9
- package/dist/mappers/phemex.js.map +1 -1
- package/dist/mappers/poloniex.d.ts +2 -2
- package/dist/mappers/poloniex.d.ts.map +1 -1
- package/dist/mappers/poloniex.js +9 -16
- package/dist/mappers/poloniex.js.map +1 -1
- package/dist/mappers/serum.d.ts +2 -2
- package/dist/mappers/serum.d.ts.map +1 -1
- package/dist/mappers/serum.js +11 -17
- package/dist/mappers/serum.js.map +1 -1
- package/dist/mappers/upbit.d.ts +2 -2
- package/dist/mappers/upbit.d.ts.map +1 -1
- package/dist/mappers/upbit.js +7 -12
- package/dist/mappers/upbit.js.map +1 -1
- package/dist/mappers/woox.d.ts +2 -2
- package/dist/mappers/woox.d.ts.map +1 -1
- package/dist/mappers/woox.js +11 -17
- package/dist/mappers/woox.js.map +1 -1
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +9 -14
- package/dist/options.js.map +1 -1
- package/dist/orderbook.d.ts +1 -1
- package/dist/orderbook.d.ts.map +1 -1
- package/dist/orderbook.js +4 -8
- package/dist/orderbook.js.map +1 -1
- package/dist/realtimefeeds/ascendex.d.ts +2 -2
- package/dist/realtimefeeds/ascendex.d.ts.map +1 -1
- package/dist/realtimefeeds/ascendex.js +5 -9
- package/dist/realtimefeeds/ascendex.js.map +1 -1
- package/dist/realtimefeeds/binance.d.ts +13 -2
- package/dist/realtimefeeds/binance.d.ts.map +1 -1
- package/dist/realtimefeeds/binance.js +69 -33
- package/dist/realtimefeeds/binance.js.map +1 -1
- package/dist/realtimefeeds/binancedex.d.ts +2 -2
- package/dist/realtimefeeds/binancedex.d.ts.map +1 -1
- package/dist/realtimefeeds/binancedex.js +5 -9
- package/dist/realtimefeeds/binancedex.js.map +1 -1
- package/dist/realtimefeeds/binanceeuropeanoptions.d.ts +2 -2
- package/dist/realtimefeeds/binanceeuropeanoptions.d.ts.map +1 -1
- package/dist/realtimefeeds/binanceeuropeanoptions.js +5 -9
- package/dist/realtimefeeds/binanceeuropeanoptions.js.map +1 -1
- package/dist/realtimefeeds/bitfinex.d.ts +2 -2
- package/dist/realtimefeeds/bitfinex.d.ts.map +1 -1
- package/dist/realtimefeeds/bitfinex.js +2 -6
- package/dist/realtimefeeds/bitfinex.js.map +1 -1
- package/dist/realtimefeeds/bitflyer.d.ts +2 -2
- package/dist/realtimefeeds/bitflyer.d.ts.map +1 -1
- package/dist/realtimefeeds/bitflyer.js +2 -6
- package/dist/realtimefeeds/bitflyer.js.map +1 -1
- package/dist/realtimefeeds/bitget.d.ts +2 -2
- package/dist/realtimefeeds/bitget.d.ts.map +1 -1
- package/dist/realtimefeeds/bitget.js +6 -11
- package/dist/realtimefeeds/bitget.js.map +1 -1
- package/dist/realtimefeeds/bitmex.d.ts +2 -2
- package/dist/realtimefeeds/bitmex.d.ts.map +1 -1
- package/dist/realtimefeeds/bitmex.js +4 -8
- package/dist/realtimefeeds/bitmex.js.map +1 -1
- package/dist/realtimefeeds/bitnomial.d.ts +2 -2
- package/dist/realtimefeeds/bitnomial.d.ts.map +1 -1
- package/dist/realtimefeeds/bitnomial.js +2 -6
- package/dist/realtimefeeds/bitnomial.js.map +1 -1
- package/dist/realtimefeeds/bitstamp.d.ts +2 -2
- package/dist/realtimefeeds/bitstamp.d.ts.map +1 -1
- package/dist/realtimefeeds/bitstamp.js +5 -9
- package/dist/realtimefeeds/bitstamp.js.map +1 -1
- package/dist/realtimefeeds/blockchaincom.d.ts +2 -2
- package/dist/realtimefeeds/blockchaincom.d.ts.map +1 -1
- package/dist/realtimefeeds/blockchaincom.js +4 -8
- package/dist/realtimefeeds/blockchaincom.js.map +1 -1
- package/dist/realtimefeeds/bybit.d.ts +2 -2
- package/dist/realtimefeeds/bybit.d.ts.map +1 -1
- package/dist/realtimefeeds/bybit.js +8 -14
- package/dist/realtimefeeds/bybit.js.map +1 -1
- package/dist/realtimefeeds/coinbase.d.ts +2 -2
- package/dist/realtimefeeds/coinbase.d.ts.map +1 -1
- package/dist/realtimefeeds/coinbase.js +4 -11
- package/dist/realtimefeeds/coinbase.js.map +1 -1
- package/dist/realtimefeeds/coinbaseinternational.d.ts +2 -2
- package/dist/realtimefeeds/coinbaseinternational.d.ts.map +1 -1
- package/dist/realtimefeeds/coinbaseinternational.js +4 -11
- package/dist/realtimefeeds/coinbaseinternational.js.map +1 -1
- package/dist/realtimefeeds/coinflex.d.ts +2 -2
- package/dist/realtimefeeds/coinflex.d.ts.map +1 -1
- package/dist/realtimefeeds/coinflex.js +2 -6
- package/dist/realtimefeeds/coinflex.js.map +1 -1
- package/dist/realtimefeeds/cryptocom.d.ts +2 -2
- package/dist/realtimefeeds/cryptocom.d.ts.map +1 -1
- package/dist/realtimefeeds/cryptocom.js +2 -6
- package/dist/realtimefeeds/cryptocom.js.map +1 -1
- package/dist/realtimefeeds/cryptofacilities.d.ts +2 -2
- package/dist/realtimefeeds/cryptofacilities.d.ts.map +1 -1
- package/dist/realtimefeeds/cryptofacilities.js +2 -6
- package/dist/realtimefeeds/cryptofacilities.js.map +1 -1
- package/dist/realtimefeeds/delta.d.ts +2 -2
- package/dist/realtimefeeds/delta.d.ts.map +1 -1
- package/dist/realtimefeeds/delta.js +2 -6
- package/dist/realtimefeeds/delta.js.map +1 -1
- package/dist/realtimefeeds/deribit.d.ts +2 -2
- package/dist/realtimefeeds/deribit.d.ts.map +1 -1
- package/dist/realtimefeeds/deribit.js +4 -8
- package/dist/realtimefeeds/deribit.js.map +1 -1
- package/dist/realtimefeeds/dydx.d.ts +2 -2
- package/dist/realtimefeeds/dydx.d.ts.map +1 -1
- package/dist/realtimefeeds/dydx.js +2 -6
- package/dist/realtimefeeds/dydx.js.map +1 -1
- package/dist/realtimefeeds/dydx_v4.d.ts +2 -2
- package/dist/realtimefeeds/dydx_v4.d.ts.map +1 -1
- package/dist/realtimefeeds/dydx_v4.js +2 -6
- package/dist/realtimefeeds/dydx_v4.js.map +1 -1
- package/dist/realtimefeeds/ftx.d.ts +2 -2
- package/dist/realtimefeeds/ftx.d.ts.map +1 -1
- package/dist/realtimefeeds/ftx.js +13 -18
- package/dist/realtimefeeds/ftx.js.map +1 -1
- package/dist/realtimefeeds/gateio.d.ts +2 -2
- package/dist/realtimefeeds/gateio.d.ts.map +1 -1
- package/dist/realtimefeeds/gateio.js +2 -6
- package/dist/realtimefeeds/gateio.js.map +1 -1
- package/dist/realtimefeeds/gateiofutures.d.ts +5 -2
- package/dist/realtimefeeds/gateiofutures.d.ts.map +1 -1
- package/dist/realtimefeeds/gateiofutures.js +4 -7
- package/dist/realtimefeeds/gateiofutures.js.map +1 -1
- package/dist/realtimefeeds/gemini.d.ts +2 -2
- package/dist/realtimefeeds/gemini.d.ts.map +1 -1
- package/dist/realtimefeeds/gemini.js +2 -6
- package/dist/realtimefeeds/gemini.js.map +1 -1
- package/dist/realtimefeeds/hitbtc.d.ts +2 -2
- package/dist/realtimefeeds/hitbtc.d.ts.map +1 -1
- package/dist/realtimefeeds/hitbtc.js +2 -6
- package/dist/realtimefeeds/hitbtc.js.map +1 -1
- package/dist/realtimefeeds/huobi.d.ts +2 -2
- package/dist/realtimefeeds/huobi.d.ts.map +1 -1
- package/dist/realtimefeeds/huobi.js +36 -44
- package/dist/realtimefeeds/huobi.js.map +1 -1
- package/dist/realtimefeeds/hyperliquid.d.ts +2 -2
- package/dist/realtimefeeds/hyperliquid.d.ts.map +1 -1
- package/dist/realtimefeeds/hyperliquid.js +2 -6
- package/dist/realtimefeeds/hyperliquid.js.map +1 -1
- package/dist/realtimefeeds/index.d.ts +4 -4
- package/dist/realtimefeeds/index.d.ts.map +1 -1
- package/dist/realtimefeeds/index.js +101 -120
- package/dist/realtimefeeds/index.js.map +1 -1
- package/dist/realtimefeeds/kraken.d.ts +2 -2
- package/dist/realtimefeeds/kraken.d.ts.map +1 -1
- package/dist/realtimefeeds/kraken.js +2 -6
- package/dist/realtimefeeds/kraken.js.map +1 -1
- package/dist/realtimefeeds/kucoin.d.ts +2 -2
- package/dist/realtimefeeds/kucoin.d.ts.map +1 -1
- package/dist/realtimefeeds/kucoin.js +10 -14
- package/dist/realtimefeeds/kucoin.js.map +1 -1
- package/dist/realtimefeeds/kucoinfutures.d.ts +2 -2
- package/dist/realtimefeeds/kucoinfutures.d.ts.map +1 -1
- package/dist/realtimefeeds/kucoinfutures.js +12 -19
- package/dist/realtimefeeds/kucoinfutures.js.map +1 -1
- package/dist/realtimefeeds/mango.d.ts +1 -1
- package/dist/realtimefeeds/mango.d.ts.map +1 -1
- package/dist/realtimefeeds/mango.js +2 -6
- package/dist/realtimefeeds/mango.js.map +1 -1
- package/dist/realtimefeeds/okex.d.ts +2 -2
- package/dist/realtimefeeds/okex.d.ts.map +1 -1
- package/dist/realtimefeeds/okex.js +9 -18
- package/dist/realtimefeeds/okex.js.map +1 -1
- package/dist/realtimefeeds/okexspreads.d.ts +2 -2
- package/dist/realtimefeeds/okexspreads.d.ts.map +1 -1
- package/dist/realtimefeeds/okexspreads.js +6 -13
- package/dist/realtimefeeds/okexspreads.js.map +1 -1
- package/dist/realtimefeeds/phemex.d.ts +2 -2
- package/dist/realtimefeeds/phemex.d.ts.map +1 -1
- package/dist/realtimefeeds/phemex.js +2 -6
- package/dist/realtimefeeds/phemex.js.map +1 -1
- package/dist/realtimefeeds/poloniex.d.ts +2 -2
- package/dist/realtimefeeds/poloniex.d.ts.map +1 -1
- package/dist/realtimefeeds/poloniex.js +2 -6
- package/dist/realtimefeeds/poloniex.js.map +1 -1
- package/dist/realtimefeeds/realtimefeed.d.ts +2 -1
- package/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
- package/dist/realtimefeeds/realtimefeed.js +33 -38
- package/dist/realtimefeeds/realtimefeed.js.map +1 -1
- package/dist/realtimefeeds/serum.d.ts +2 -2
- package/dist/realtimefeeds/serum.d.ts.map +1 -1
- package/dist/realtimefeeds/serum.js +2 -6
- package/dist/realtimefeeds/serum.js.map +1 -1
- package/dist/realtimefeeds/staratlas.d.ts +1 -1
- package/dist/realtimefeeds/staratlas.d.ts.map +1 -1
- package/dist/realtimefeeds/staratlas.js +2 -6
- package/dist/realtimefeeds/staratlas.js.map +1 -1
- package/dist/realtimefeeds/upbit.d.ts +2 -2
- package/dist/realtimefeeds/upbit.d.ts.map +1 -1
- package/dist/realtimefeeds/upbit.js +2 -6
- package/dist/realtimefeeds/upbit.js.map +1 -1
- package/dist/realtimefeeds/woox.d.ts +2 -2
- package/dist/realtimefeeds/woox.d.ts.map +1 -1
- package/dist/realtimefeeds/woox.js +5 -9
- package/dist/realtimefeeds/woox.js.map +1 -1
- package/dist/replay.d.ts +6 -3
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +62 -71
- package/dist/replay.js.map +1 -1
- package/dist/stream.d.ts +6 -3
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +9 -13
- package/dist/stream.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/worker.d.ts +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +22 -27
- package/dist/worker.js.map +1 -1
- package/example.js +9 -9
- package/package.json +30 -15
- package/src/apikeyaccessinfo.ts +9 -11
- package/src/binarysplit.ts +2 -1
- package/src/clearcache.ts +8 -7
- package/src/computable/booksnapshot.ts +4 -4
- package/src/computable/computable.ts +1 -1
- package/src/computable/index.ts +3 -3
- package/src/computable/tradebar.ts +2 -2
- package/src/downloaddatasets.ts +7 -7
- package/src/exchangedetails.ts +5 -5
- package/src/filter.ts +2 -2
- package/src/handy.ts +286 -23
- package/src/index.ts +16 -16
- package/src/instrumentinfo.ts +9 -9
- package/src/mappers/ascendex.ts +3 -3
- package/src/mappers/binance.ts +4 -4
- package/src/mappers/binancedex.ts +3 -3
- package/src/mappers/binanceeuropeanoptions.ts +3 -3
- package/src/mappers/bitfinex.ts +3 -3
- package/src/mappers/bitflyer.ts +3 -3
- package/src/mappers/bitget.ts +3 -3
- package/src/mappers/bitmex.ts +3 -3
- package/src/mappers/bitnomial.ts +3 -3
- package/src/mappers/bitstamp.ts +3 -3
- package/src/mappers/blockchaincom.ts +3 -3
- package/src/mappers/bybit.ts +3 -3
- package/src/mappers/bybitspot.ts +3 -3
- package/src/mappers/coinbase.ts +3 -3
- package/src/mappers/coinbaseinternational.ts +3 -3
- package/src/mappers/coinflex.ts +3 -3
- package/src/mappers/cryptocom.ts +3 -3
- package/src/mappers/cryptofacilities.ts +3 -3
- package/src/mappers/delta.ts +3 -3
- package/src/mappers/deribit.ts +3 -3
- package/src/mappers/dydx.ts +3 -3
- package/src/mappers/dydxv4.ts +3 -3
- package/src/mappers/ftx.ts +3 -3
- package/src/mappers/gateio.ts +4 -4
- package/src/mappers/gateiofutures.ts +18 -14
- package/src/mappers/gemini.ts +3 -3
- package/src/mappers/hitbtc.ts +3 -3
- package/src/mappers/huobi.ts +3 -3
- package/src/mappers/hyperliquid.ts +2 -2
- package/src/mappers/index.ts +49 -44
- package/src/mappers/kraken.ts +3 -3
- package/src/mappers/kucoin.ts +4 -4
- package/src/mappers/kucoinfutures.ts +4 -4
- package/src/mappers/mapper.ts +1 -1
- package/src/mappers/okex.ts +3 -3
- package/src/mappers/okexspreads.ts +3 -3
- package/src/mappers/phemex.ts +2 -2
- package/src/mappers/poloniex.ts +3 -3
- package/src/mappers/serum.ts +3 -3
- package/src/mappers/upbit.ts +3 -3
- package/src/mappers/woox.ts +3 -3
- package/src/options.ts +5 -2
- package/src/orderbook.ts +3 -2
- package/src/realtimefeeds/ascendex.ts +3 -3
- package/src/realtimefeeds/binance.ts +111 -20
- package/src/realtimefeeds/binancedex.ts +5 -5
- package/src/realtimefeeds/binanceeuropeanoptions.ts +3 -3
- package/src/realtimefeeds/bitfinex.ts +2 -2
- package/src/realtimefeeds/bitflyer.ts +2 -2
- package/src/realtimefeeds/bitget.ts +3 -3
- package/src/realtimefeeds/bitmex.ts +3 -3
- package/src/realtimefeeds/bitnomial.ts +2 -2
- package/src/realtimefeeds/bitstamp.ts +5 -5
- package/src/realtimefeeds/blockchaincom.ts +3 -3
- package/src/realtimefeeds/bybit.ts +3 -3
- package/src/realtimefeeds/coinbase.ts +2 -2
- package/src/realtimefeeds/coinbaseinternational.ts +2 -2
- package/src/realtimefeeds/coinflex.ts +2 -2
- package/src/realtimefeeds/cryptocom.ts +2 -2
- package/src/realtimefeeds/cryptofacilities.ts +2 -2
- package/src/realtimefeeds/delta.ts +2 -2
- package/src/realtimefeeds/deribit.ts +3 -3
- package/src/realtimefeeds/dydx.ts +2 -2
- package/src/realtimefeeds/dydx_v4.ts +2 -2
- package/src/realtimefeeds/ftx.ts +8 -8
- package/src/realtimefeeds/gateio.ts +2 -3
- package/src/realtimefeeds/gateiofutures.ts +3 -2
- package/src/realtimefeeds/gemini.ts +2 -2
- package/src/realtimefeeds/hitbtc.ts +2 -2
- package/src/realtimefeeds/huobi.ts +18 -18
- package/src/realtimefeeds/hyperliquid.ts +2 -2
- package/src/realtimefeeds/index.ts +43 -43
- package/src/realtimefeeds/kraken.ts +2 -2
- package/src/realtimefeeds/kucoin.ts +9 -9
- package/src/realtimefeeds/kucoinfutures.ts +9 -11
- package/src/realtimefeeds/mango.ts +1 -1
- package/src/realtimefeeds/okex.ts +3 -3
- package/src/realtimefeeds/okexspreads.ts +3 -3
- package/src/realtimefeeds/phemex.ts +2 -2
- package/src/realtimefeeds/poloniex.ts +2 -2
- package/src/realtimefeeds/realtimefeed.ts +8 -3
- package/src/realtimefeeds/serum.ts +2 -2
- package/src/realtimefeeds/staratlas.ts +1 -1
- package/src/realtimefeeds/upbit.ts +2 -2
- package/src/realtimefeeds/woox.ts +3 -3
- package/src/replay.ts +31 -35
- package/src/stream.ts +12 -23
- package/src/types.ts +1 -1
- package/src/worker.ts +3 -4
package/dist/mappers/woox.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const handy_1 = require("../handy");
|
|
5
|
-
const mapper_1 = require("./mapper");
|
|
6
|
-
exports.wooxTradesMapper = {
|
|
1
|
+
import { upperCaseSymbols } from "../handy.js";
|
|
2
|
+
import { PendingTickerInfoHelper } from "./mapper.js";
|
|
3
|
+
export const wooxTradesMapper = {
|
|
7
4
|
canHandle(message) {
|
|
8
5
|
return message.topic !== undefined && message.topic.endsWith('@trade');
|
|
9
6
|
},
|
|
10
7
|
getFilters(symbols) {
|
|
11
|
-
symbols =
|
|
8
|
+
symbols = upperCaseSymbols(symbols);
|
|
12
9
|
return [
|
|
13
10
|
{
|
|
14
11
|
channel: 'trade',
|
|
@@ -35,7 +32,7 @@ exports.wooxTradesMapper = {
|
|
|
35
32
|
};
|
|
36
33
|
}
|
|
37
34
|
};
|
|
38
|
-
class WooxBookChangeMapper {
|
|
35
|
+
export class WooxBookChangeMapper {
|
|
39
36
|
_symbolToDepthInfoMapping = {};
|
|
40
37
|
canHandle(message) {
|
|
41
38
|
if ('id' in message) {
|
|
@@ -47,7 +44,7 @@ class WooxBookChangeMapper {
|
|
|
47
44
|
return false;
|
|
48
45
|
}
|
|
49
46
|
getFilters(symbols) {
|
|
50
|
-
symbols =
|
|
47
|
+
symbols = upperCaseSymbols(symbols);
|
|
51
48
|
return [
|
|
52
49
|
{
|
|
53
50
|
channel: 'orderbook',
|
|
@@ -126,9 +123,8 @@ class WooxBookChangeMapper {
|
|
|
126
123
|
return { price, amount };
|
|
127
124
|
}
|
|
128
125
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
pendingTickerInfoHelper = new mapper_1.PendingTickerInfoHelper();
|
|
126
|
+
export class WooxDerivativeTickerMapper {
|
|
127
|
+
pendingTickerInfoHelper = new PendingTickerInfoHelper();
|
|
132
128
|
_indexPrices = new Map();
|
|
133
129
|
canHandle(message) {
|
|
134
130
|
if (message.topic === undefined) {
|
|
@@ -143,7 +139,7 @@ class WooxDerivativeTickerMapper {
|
|
|
143
139
|
(message.topic.endsWith('@openinterest') && isPerp));
|
|
144
140
|
}
|
|
145
141
|
getFilters(symbols) {
|
|
146
|
-
symbols =
|
|
142
|
+
symbols = upperCaseSymbols(symbols);
|
|
147
143
|
const spotSymbols = symbols !== undefined ? symbols.map((s) => s.replace('PERP_', 'SPOT_')) : [];
|
|
148
144
|
return [
|
|
149
145
|
{
|
|
@@ -202,13 +198,12 @@ class WooxDerivativeTickerMapper {
|
|
|
202
198
|
}
|
|
203
199
|
}
|
|
204
200
|
}
|
|
205
|
-
|
|
206
|
-
class WooxBookTickerMapper {
|
|
201
|
+
export class WooxBookTickerMapper {
|
|
207
202
|
canHandle(message) {
|
|
208
203
|
return message.topic !== undefined && message.topic.endsWith('@bbo');
|
|
209
204
|
}
|
|
210
205
|
getFilters(symbols) {
|
|
211
|
-
symbols =
|
|
206
|
+
symbols = upperCaseSymbols(symbols);
|
|
212
207
|
return [
|
|
213
208
|
{
|
|
214
209
|
channel: 'bbo',
|
|
@@ -232,5 +227,4 @@ class WooxBookTickerMapper {
|
|
|
232
227
|
yield ticker;
|
|
233
228
|
}
|
|
234
229
|
}
|
|
235
|
-
exports.WooxBookTickerMapper = WooxBookTickerMapper;
|
|
236
230
|
//# sourceMappingURL=woox.js.map
|
package/dist/mappers/woox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woox.js","sourceRoot":"","sources":["../../src/mappers/woox.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"woox.js","sourceRoot":"","sources":["../../src/mappers/woox.ts"],"names":[],"mappings":"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"}
|
package/dist/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAiBA,wBAAgB,IAAI,CAAC,WAAW,GAAE,OAAO,CAAC,OAAO,CAAM,QAEtD;AAED,wBAAgB,UAAU,IACN,QAAQ,CAAC,OAAO,CAAC,CACpC;AAED,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA"}
|
package/dist/options.js
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.init = init;
|
|
7
|
-
exports.getOptions = getOptions;
|
|
8
|
-
const os_1 = __importDefault(require("os"));
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const pkg = require('../package.json');
|
|
1
|
+
import { createRequire } from 'module';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const packageJson = require('../package.json');
|
|
11
6
|
const defaultOptions = {
|
|
12
7
|
endpoint: 'https://api.tardis.dev/v1',
|
|
13
8
|
datasetsEndpoint: 'https://datasets.tardis.dev/v1',
|
|
14
|
-
cacheDir:
|
|
9
|
+
cacheDir: path.join(os.tmpdir(), '.tardis-cache'),
|
|
15
10
|
apiKey: '',
|
|
16
|
-
_userAgent: `tardis-dev/${
|
|
11
|
+
_userAgent: `tardis-dev/${packageJson.version} (+https://github.com/tardis-dev/tardis-node)`
|
|
17
12
|
};
|
|
18
13
|
let options = { ...defaultOptions };
|
|
19
|
-
function init(initOptions = {}) {
|
|
14
|
+
export function init(initOptions = {}) {
|
|
20
15
|
options = { ...defaultOptions, ...initOptions };
|
|
21
16
|
}
|
|
22
|
-
function getOptions() {
|
|
17
|
+
export function getOptions() {
|
|
23
18
|
return options;
|
|
24
19
|
}
|
|
25
20
|
//# sourceMappingURL=options.js.map
|
package/dist/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAA;AAErE,MAAM,cAAc,GAAY;IAC9B,QAAQ,EAAE,2BAA2B;IACrC,gBAAgB,EAAE,gCAAgC;IAClD,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;IACjD,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,cAAc,WAAW,CAAC,OAAO,+CAA+C;CAC7F,CAAA;AAED,IAAI,OAAO,GAAY,EAAE,GAAG,cAAc,EAAE,CAAA;AAE5C,MAAM,UAAU,IAAI,CAAC,cAAgC,EAAE;IACrD,OAAO,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,WAAW,EAAE,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,OAA4B,CAAA;AACrC,CAAC"}
|
package/dist/orderbook.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BookChange, BookPriceLevel } from './types';
|
|
1
|
+
import { BookChange, BookPriceLevel } from './types.ts';
|
|
2
2
|
export type OnLevelRemovedCB = (bookChange: BookChange, bestBidBeforeRemoval: BookPriceLevel | undefined, bestBidAfterRemoval: BookPriceLevel | undefined, bestAskBeforeRemoval: BookPriceLevel | undefined, bestAskAfterRemoval: BookPriceLevel | undefined) => void;
|
|
3
3
|
export declare class OrderBook {
|
|
4
4
|
private readonly _bids;
|
package/dist/orderbook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderbook.d.ts","sourceRoot":"","sources":["../src/orderbook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orderbook.d.ts","sourceRoot":"","sources":["../src/orderbook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAa,MAAM,YAAY,CAAA;AAElE,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,cAAc,GAAG,SAAS,EAChD,mBAAmB,EAAE,cAAc,GAAG,SAAS,EAC/C,oBAAoB,EAAE,cAAc,GAAG,SAAS,EAChD,mBAAmB,EAAE,cAAc,GAAG,SAAS,KAC5C,IAAI,CAAA;AAET,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0E;IAChG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0E;IAChG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA8B;IAErE,OAAO,CAAC,wBAAwB,CAAQ;gBAE5B,EACV,mBAAmB,EACnB,qBAAqB,EACtB,GAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAAC,qBAAqB,CAAC,EAAE,gBAAgB,CAAA;KAAO;IAK5E,MAAM,CAAC,UAAU,EAAE,UAAU;IAkB7B,OAAO;IASP,OAAO;IASd,OAAO,CAAC,4BAA4B;IAsCpC,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAad,IAAI,IAAI,gBAAgB,CAAC,cAAc,CAAC;IAUxC,IAAI,IAAI,gBAAgB,CAAC,cAAc,CAAC;CASjD"}
|
package/dist/orderbook.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class OrderBook {
|
|
6
|
-
_bids = new bintrees_1.RBTree((nodeA, nodeB) => nodeB.price - nodeA.price);
|
|
7
|
-
_asks = new bintrees_1.RBTree((nodeA, nodeB) => nodeA.price - nodeB.price);
|
|
1
|
+
import { RBTree } from 'bintrees';
|
|
2
|
+
export class OrderBook {
|
|
3
|
+
_bids = new RBTree((nodeA, nodeB) => nodeB.price - nodeA.price);
|
|
4
|
+
_asks = new RBTree((nodeA, nodeB) => nodeA.price - nodeB.price);
|
|
8
5
|
_removeCrossedLevels;
|
|
9
6
|
_onCrossedLevelRemoved;
|
|
10
7
|
_receivedInitialSnapshot = false;
|
|
@@ -114,7 +111,6 @@ class OrderBook {
|
|
|
114
111
|
}
|
|
115
112
|
}
|
|
116
113
|
}
|
|
117
|
-
exports.OrderBook = OrderBook;
|
|
118
114
|
function applyPriceLevelChanges(tree, priceLevelChanges) {
|
|
119
115
|
for (const priceLevel of priceLevelChanges) {
|
|
120
116
|
const node = tree.find(priceLevel);
|
package/dist/orderbook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderbook.js","sourceRoot":"","sources":["../src/orderbook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orderbook.js","sourceRoot":"","sources":["../src/orderbook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Filter } from '../types';
|
|
2
|
-
import { RealTimeFeedBase } from './realtimefeed';
|
|
1
|
+
import { Filter } from '../types.ts';
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed.ts';
|
|
3
3
|
export declare class AscendexRealTimeFeed extends RealTimeFeedBase {
|
|
4
4
|
protected readonly wssURL = "wss://ascendex.com/api/pro/v2/stream";
|
|
5
5
|
protected mapToSubscribeMessages(filters: Filter<string>[]): any[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ascendex.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/ascendex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ascendex.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/ascendex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,SAAS,CAAC,QAAQ,CAAC,MAAM,0CAAyC;IAElE,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IA6BlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAI/C,SAAS,CAAC,cAAc,aAEvB;IAED,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG;cAIrB,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO;CAwB9F"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const handy_1 = require("../handy");
|
|
5
|
-
const realtimefeed_1 = require("./realtimefeed");
|
|
6
|
-
class AscendexRealTimeFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
1
|
+
import { wait } from "../handy.js";
|
|
2
|
+
import { RealTimeFeedBase } from "./realtimefeed.js";
|
|
3
|
+
export class AscendexRealTimeFeed extends RealTimeFeedBase {
|
|
7
4
|
wssURL = 'wss://ascendex.com/api/pro/v2/stream';
|
|
8
5
|
mapToSubscribeMessages(filters) {
|
|
9
6
|
const subs = filters
|
|
@@ -44,7 +41,7 @@ class AscendexRealTimeFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
|
44
41
|
if (!depthSnapshotChannel) {
|
|
45
42
|
return;
|
|
46
43
|
}
|
|
47
|
-
await
|
|
44
|
+
await wait(100);
|
|
48
45
|
for (let symbol of depthSnapshotChannel.symbols) {
|
|
49
46
|
if (shouldCancel()) {
|
|
50
47
|
return;
|
|
@@ -54,10 +51,9 @@ class AscendexRealTimeFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
|
54
51
|
action: 'depth-snapshot-realtime',
|
|
55
52
|
args: { symbol }
|
|
56
53
|
});
|
|
57
|
-
await
|
|
54
|
+
await wait(10);
|
|
58
55
|
}
|
|
59
56
|
this.debug('sent depth-snapshot-realtime "req" for: %s', depthSnapshotChannel.symbols);
|
|
60
57
|
}
|
|
61
58
|
}
|
|
62
|
-
exports.AscendexRealTimeFeed = AscendexRealTimeFeed;
|
|
63
59
|
//# sourceMappingURL=ascendex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ascendex.js","sourceRoot":"","sources":["../../src/realtimefeeds/ascendex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ascendex.js","sourceRoot":"","sources":["../../src/realtimefeeds/ascendex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IACrC,MAAM,GAAG,sCAAsC,CAAA;IAExD,sBAAsB,CAAC,OAAyB;QACxD,MAAM,IAAI,GAAG,OAAO;aACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,yBAAyB,CAAC;aACtD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,IAAI,MAAM,CAAC,OAAO,KAAK,sBAAsB,EAAE,CAAC;gBAC9C,OAAO;oBACL;wBACE,EAAE,EAAE,KAAK;wBACT,EAAE,EAAE,sBAAsB;qBAC3B;iBACF,CAAA;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;YAC7G,CAAC;YAED,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,EAAE;iBAClC,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACb,CAAC;IAES,cAAc,CAAC,OAAY;QACnC,OAAO,OAAO,CAAC,CAAC,KAAK,OAAO,CAAA;IAC9B,CAAC;IAES,cAAc,GAAG,GAAG,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3B,CAAC,CAAA;IAES,kBAAkB,CAAC,GAAQ;QACnC,OAAO,GAAG,CAAC,CAAC,KAAK,MAAM,CAAA;IACzB,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,OAAyB,EAAE,YAA2B;QAC3F,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,yBAAyB,CAAC,CAAA;QACzF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,CAAA;QAEf,KAAK,IAAI,MAAM,IAAI,oBAAoB,CAAC,OAAQ,EAAE,CAAC;YACjD,IAAI,YAAY,EAAE,EAAE,CAAC;gBACnB,OAAM;YACR,CAAC;YAED,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,yBAAyB;gBACjC,IAAI,EAAE,EAAE,MAAM,EAAE;aACjB,CAAC,CAAA;YAEF,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,4CAA4C,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACxF,CAAC;CACF"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Writable } from 'stream';
|
|
2
|
-
import { Filter } from '../types';
|
|
3
|
-
import { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from './realtimefeed';
|
|
2
|
+
import { Filter } from '../types.ts';
|
|
3
|
+
import { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from './realtimefeed.ts';
|
|
4
|
+
declare const BINANCE_FUTURES_PUBLIC_STREAM_PATH = "/public/stream";
|
|
5
|
+
declare const BINANCE_FUTURES_MARKET_STREAM_PATH = "/market/stream";
|
|
6
|
+
type BinanceFuturesStreamPath = typeof BINANCE_FUTURES_PUBLIC_STREAM_PATH | typeof BINANCE_FUTURES_MARKET_STREAM_PATH;
|
|
4
7
|
declare abstract class BinanceRealTimeFeedBase extends MultiConnectionRealTimeFeedBase {
|
|
5
8
|
protected abstract wssURL: string;
|
|
6
9
|
protected abstract httpURL: string;
|
|
@@ -41,6 +44,13 @@ declare class BinanceSingleConnectionRealTimeFeed extends RealTimeFeedBase {
|
|
|
41
44
|
protected messageIsError(message: any): boolean;
|
|
42
45
|
protected provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean): Promise<void>;
|
|
43
46
|
}
|
|
47
|
+
declare class BinanceFuturesSingleConnectionRealTimeFeed extends BinanceSingleConnectionRealTimeFeed {
|
|
48
|
+
private readonly _streamPath;
|
|
49
|
+
constructor(exchange: string, filters: Filter<string>[], _streamPath: BinanceFuturesStreamPath, httpURL: string, suffixes: {
|
|
50
|
+
[key: string]: string;
|
|
51
|
+
}, depthRequestRequestWeight: number, timeoutIntervalMS: number | undefined, onError?: (error: Error) => void);
|
|
52
|
+
protected getWebSocketUrl(): Promise<string>;
|
|
53
|
+
}
|
|
44
54
|
export declare class BinanceRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
45
55
|
protected wssURL: string;
|
|
46
56
|
protected httpURL: string;
|
|
@@ -73,6 +83,7 @@ export declare class BinanceFuturesRealTimeFeed extends BinanceRealTimeFeedBase
|
|
|
73
83
|
markPrice: string;
|
|
74
84
|
};
|
|
75
85
|
protected depthRequestRequestWeight: number;
|
|
86
|
+
protected _getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void): Generator<BinanceFuturesOpenInterestClient | BinanceFuturesSingleConnectionRealTimeFeed, void, unknown>;
|
|
76
87
|
}
|
|
77
88
|
export declare class BinanceDeliveryRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
78
89
|
protected wssURL: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binance.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/binance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"binance.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/binance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.BinanceDeliveryRealTimeFeed = exports.BinanceFuturesRealTimeFeed = exports.BinanceUSRealTimeFeed = exports.BinanceJerseyRealTimeFeed = exports.BinanceRealTimeFeed = void 0;
|
|
4
|
-
const handy_1 = require("../handy");
|
|
5
|
-
const realtimefeed_1 = require("./realtimefeed");
|
|
1
|
+
import { batch, getJSON, wait } from "../handy.js";
|
|
2
|
+
import { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from "./realtimefeed.js";
|
|
6
3
|
const binanceHttpOptions = {
|
|
7
4
|
timeout: 10 * 1000,
|
|
8
5
|
retry: {
|
|
@@ -17,12 +14,15 @@ const OPEN_INTEREST_BATCH_SIZE = 10;
|
|
|
17
14
|
const OPEN_INTEREST_REQUEST_WEIGHT = 1;
|
|
18
15
|
const OPEN_INTEREST_POLLING_RECOVERY_MS = 1000;
|
|
19
16
|
const OPEN_INTEREST_MAX_POLLING_INTERVAL_MS = 60 * 1000;
|
|
17
|
+
const BINANCE_FUTURES_PUBLIC_CHANNELS = new Set(['bookTicker', 'depth', 'depthSnapshot', 'trade']);
|
|
18
|
+
const BINANCE_FUTURES_DEFAULT_WS_BASE_URL = 'wss://fstream.binance.com';
|
|
19
|
+
const BINANCE_FUTURES_PUBLIC_STREAM_PATH = '/public/stream';
|
|
20
|
+
const BINANCE_FUTURES_MARKET_STREAM_PATH = '/market/stream';
|
|
20
21
|
function parseBinanceWeightHeader(headerValue) {
|
|
21
22
|
if (headerValue === undefined) {
|
|
22
23
|
return undefined;
|
|
23
24
|
}
|
|
24
|
-
const
|
|
25
|
-
const parsed = Number.parseInt(header, 10);
|
|
25
|
+
const parsed = Number.parseInt(headerValue, 10);
|
|
26
26
|
return Number.isFinite(parsed) ? parsed : undefined;
|
|
27
27
|
}
|
|
28
28
|
function getExchangeScopedNumberEnv(exchange, suffix, fallback) {
|
|
@@ -34,6 +34,21 @@ function getExchangeScopedNumberEnv(exchange, suffix, fallback) {
|
|
|
34
34
|
const parsed = Number.parseInt(rawValue, 10);
|
|
35
35
|
return Number.isFinite(parsed) ? parsed : fallback;
|
|
36
36
|
}
|
|
37
|
+
function getExchangeScopedWssUrlEnv(exchange) {
|
|
38
|
+
const envName = `WSS_URL_${exchange.toUpperCase().replace(/-/g, '_')}`;
|
|
39
|
+
return process.env[envName];
|
|
40
|
+
}
|
|
41
|
+
function normalizeBinanceSplitWsBaseUrl(wssUrl) {
|
|
42
|
+
return wssUrl
|
|
43
|
+
.replace(/\/(public|market|private)\/stream$/u, '')
|
|
44
|
+
.replace(/\/stream$/u, '')
|
|
45
|
+
.replace(/\/(public|market|private)$/u, '');
|
|
46
|
+
}
|
|
47
|
+
function getBinanceFuturesWebSocketUrl(exchange, streamPath) {
|
|
48
|
+
const configuredWssUrl = getExchangeScopedWssUrlEnv(exchange) ?? BINANCE_FUTURES_DEFAULT_WS_BASE_URL;
|
|
49
|
+
const normalizedBaseUrl = normalizeBinanceSplitWsBaseUrl(configuredWssUrl);
|
|
50
|
+
return `${normalizedBaseUrl}${streamPath}`;
|
|
51
|
+
}
|
|
37
52
|
function getBinanceRequestWeightLimit(exchange, exchangeInfo) {
|
|
38
53
|
const configuredLimit = getExchangeScopedNumberEnv(exchange, 'REQUEST_WEIGHT_LIMIT', 0);
|
|
39
54
|
if (configuredLimit > 0) {
|
|
@@ -52,7 +67,7 @@ function getDelayToNextMinuteMS() {
|
|
|
52
67
|
const now = new Date();
|
|
53
68
|
return Math.max((61 - now.getUTCSeconds()) * 1000 - now.getUTCMilliseconds(), 1);
|
|
54
69
|
}
|
|
55
|
-
class BinanceRealTimeFeedBase extends
|
|
70
|
+
class BinanceRealTimeFeedBase extends MultiConnectionRealTimeFeedBase {
|
|
56
71
|
*_getRealTimeFeeds(exchange, filters, timeoutIntervalMS, onError) {
|
|
57
72
|
const wsFilters = filters.filter((f) => f.channel !== 'openInterest' && f.channel !== 'recentTrades' && f.channel !== 'fundingInfo' && f.channel !== 'insuranceBalance');
|
|
58
73
|
if (wsFilters.length > 0) {
|
|
@@ -65,7 +80,7 @@ class BinanceRealTimeFeedBase extends realtimefeed_1.MultiConnectionRealTimeFeed
|
|
|
65
80
|
}
|
|
66
81
|
}
|
|
67
82
|
}
|
|
68
|
-
class BinanceFuturesOpenInterestClient extends
|
|
83
|
+
class BinanceFuturesOpenInterestClient extends PoolingClientBase {
|
|
69
84
|
_exchange;
|
|
70
85
|
_httpURL;
|
|
71
86
|
_instruments;
|
|
@@ -107,11 +122,11 @@ class BinanceFuturesOpenInterestClient extends realtimefeed_1.PoolingClientBase
|
|
|
107
122
|
const instrumentsBatch = this._instruments.slice(index, index + batchSize);
|
|
108
123
|
index += instrumentsBatch.length;
|
|
109
124
|
const results = await Promise.allSettled(instrumentsBatch.map(async (instrument) => {
|
|
110
|
-
const openInterestResponse = await
|
|
125
|
+
const openInterestResponse = await getJSON(`${this._httpURL}/openInterest?symbol=${instrument.toUpperCase()}`, binanceHttpOptions);
|
|
111
126
|
return {
|
|
112
127
|
instrument,
|
|
113
128
|
usedWeight: parseBinanceWeightHeader(openInterestResponse.headers['x-mbx-used-weight-1m']),
|
|
114
|
-
data:
|
|
129
|
+
data: openInterestResponse.data
|
|
115
130
|
};
|
|
116
131
|
}));
|
|
117
132
|
let maxUsedWeight;
|
|
@@ -147,15 +162,15 @@ class BinanceFuturesOpenInterestClient extends realtimefeed_1.PoolingClientBase
|
|
|
147
162
|
}
|
|
148
163
|
const delayMS = getDelayToNextMinuteMS();
|
|
149
164
|
this.debug('open interest reached rate limit (limit: %s, used: %s, minimum available buffer: %s), waiting %s ms', this._requestWeightLimit, this._usedWeight, this._minAvailableWeightBuffer, delayMS);
|
|
150
|
-
await
|
|
165
|
+
await wait(delayMS);
|
|
151
166
|
// Binance request weight is tracked in a rolling 1-minute window. After waiting for the next minute
|
|
152
167
|
// we can resume and let the next REST response header refresh the exact current usage.
|
|
153
168
|
this._usedWeight = 0;
|
|
154
169
|
return true;
|
|
155
170
|
}
|
|
156
171
|
async _initializeRateLimitInfo() {
|
|
157
|
-
const exchangeInfoResponse = await
|
|
158
|
-
const exchangeInfo =
|
|
172
|
+
const exchangeInfoResponse = await getJSON(`${this._httpURL}/exchangeInfo`, binanceHttpOptions);
|
|
173
|
+
const exchangeInfo = exchangeInfoResponse.data;
|
|
159
174
|
this._requestWeightLimit = getBinanceRequestWeightLimit(this._exchange, exchangeInfo);
|
|
160
175
|
this._updateUsedWeight(parseBinanceWeightHeader(exchangeInfoResponse.headers['x-mbx-used-weight-1m']), OPEN_INTEREST_REQUEST_WEIGHT);
|
|
161
176
|
}
|
|
@@ -180,7 +195,7 @@ class BinanceFuturesOpenInterestClient extends realtimefeed_1.PoolingClientBase
|
|
|
180
195
|
}
|
|
181
196
|
}
|
|
182
197
|
}
|
|
183
|
-
class BinanceSingleConnectionRealTimeFeed extends
|
|
198
|
+
class BinanceSingleConnectionRealTimeFeed extends RealTimeFeedBase {
|
|
184
199
|
wssURL;
|
|
185
200
|
_httpURL;
|
|
186
201
|
_suffixes;
|
|
@@ -227,8 +242,8 @@ class BinanceSingleConnectionRealTimeFeed extends realtimefeed_1.RealTimeFeedBas
|
|
|
227
242
|
if (!depthSnapshotFilter) {
|
|
228
243
|
return;
|
|
229
244
|
}
|
|
230
|
-
const exchangeInfoResponse = await
|
|
231
|
-
const exchangeInfo =
|
|
245
|
+
const exchangeInfoResponse = await getJSON(`${this._httpURL}/exchangeInfo`, binanceHttpOptions);
|
|
246
|
+
const exchangeInfo = exchangeInfoResponse.data;
|
|
232
247
|
const DELAY_ENV = `${this._exchange.toUpperCase().replace(/-/g, '_')}_SNAPSHOTS_DELAY_MS`;
|
|
233
248
|
const currentWeightLimit = getBinanceRequestWeightLimit(this._exchange, exchangeInfo);
|
|
234
249
|
let usedWeight = Number.parseInt(exchangeInfoResponse.headers['x-mbx-used-weight-1m']);
|
|
@@ -240,7 +255,7 @@ class BinanceSingleConnectionRealTimeFeed extends realtimefeed_1.RealTimeFeedBas
|
|
|
240
255
|
}
|
|
241
256
|
this.debug('current snapshots requests concurrency limit: %s', concurrencyLimit);
|
|
242
257
|
const minWeightBuffer = getExchangeScopedNumberEnv(this._exchange, 'MIN_AVAILABLE_WEIGHT_BUFFER', 2 * concurrencyLimit * this._depthRequestRequestWeight);
|
|
243
|
-
for (const symbolsBatch of
|
|
258
|
+
for (const symbolsBatch of batch(depthSnapshotFilter.symbols, concurrencyLimit)) {
|
|
244
259
|
if (shouldCancel()) {
|
|
245
260
|
return;
|
|
246
261
|
}
|
|
@@ -253,18 +268,18 @@ class BinanceSingleConnectionRealTimeFeed extends realtimefeed_1.RealTimeFeedBas
|
|
|
253
268
|
if (isOverRateLimit) {
|
|
254
269
|
const delayMS = getDelayToNextMinuteMS();
|
|
255
270
|
this.debug('reached rate limit (x-mbx-used-weight-1m limit: %s, used weight: %s, minimum available weight buffer: %s), waiting: %s seconds', currentWeightLimit, usedWeight, minWeightBuffer, Math.ceil(delayMS / 1000));
|
|
256
|
-
await
|
|
271
|
+
await wait(delayMS);
|
|
257
272
|
}
|
|
258
|
-
const depthSnapshotResponse = await
|
|
273
|
+
const depthSnapshotResponse = await getJSON(`${this._httpURL}/depth?symbol=${symbol.toUpperCase()}&limit=1000`, binanceHttpOptions);
|
|
259
274
|
const snapshot = {
|
|
260
275
|
stream: `${symbol}@depthSnapshot`,
|
|
261
276
|
generated: true,
|
|
262
|
-
data:
|
|
277
|
+
data: depthSnapshotResponse.data
|
|
263
278
|
};
|
|
264
279
|
this.manualSnapshotsBuffer.push(snapshot);
|
|
265
280
|
if (process.env[DELAY_ENV] !== undefined) {
|
|
266
281
|
const msToWait = Number.parseInt(process.env[DELAY_ENV]);
|
|
267
|
-
await
|
|
282
|
+
await wait(msToWait);
|
|
268
283
|
}
|
|
269
284
|
return Number.parseInt(depthSnapshotResponse.headers['x-mbx-used-weight-1m']);
|
|
270
285
|
}));
|
|
@@ -274,7 +289,17 @@ class BinanceSingleConnectionRealTimeFeed extends realtimefeed_1.RealTimeFeedBas
|
|
|
274
289
|
this.debug('requested all manual snapshots successfully');
|
|
275
290
|
}
|
|
276
291
|
}
|
|
277
|
-
class
|
|
292
|
+
class BinanceFuturesSingleConnectionRealTimeFeed extends BinanceSingleConnectionRealTimeFeed {
|
|
293
|
+
_streamPath;
|
|
294
|
+
constructor(exchange, filters, _streamPath, httpURL, suffixes, depthRequestRequestWeight, timeoutIntervalMS, onError) {
|
|
295
|
+
super(exchange, filters, getBinanceFuturesWebSocketUrl(exchange, _streamPath), httpURL, suffixes, depthRequestRequestWeight, timeoutIntervalMS, onError);
|
|
296
|
+
this._streamPath = _streamPath;
|
|
297
|
+
}
|
|
298
|
+
async getWebSocketUrl() {
|
|
299
|
+
return getBinanceFuturesWebSocketUrl(this._exchange, this._streamPath);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
export class BinanceRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
278
303
|
wssURL = 'wss://stream.binance.com/stream?timeUnit=microsecond';
|
|
279
304
|
httpURL = 'https://api.binance.com/api/v1';
|
|
280
305
|
suffixes = {
|
|
@@ -282,8 +307,7 @@ class BinanceRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
|
282
307
|
};
|
|
283
308
|
depthRequestRequestWeight = 10;
|
|
284
309
|
}
|
|
285
|
-
|
|
286
|
-
class BinanceJerseyRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
310
|
+
export class BinanceJerseyRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
287
311
|
wssURL = 'wss://stream.binance.je:9443/stream';
|
|
288
312
|
httpURL = 'https://api.binance.je/api/v1';
|
|
289
313
|
suffixes = {
|
|
@@ -291,8 +315,7 @@ class BinanceJerseyRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
|
291
315
|
};
|
|
292
316
|
depthRequestRequestWeight = 10;
|
|
293
317
|
}
|
|
294
|
-
|
|
295
|
-
class BinanceUSRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
318
|
+
export class BinanceUSRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
296
319
|
wssURL = 'wss://stream.binance.us:9443/stream';
|
|
297
320
|
httpURL = 'https://api.binance.us/api/v1';
|
|
298
321
|
suffixes = {
|
|
@@ -300,18 +323,32 @@ class BinanceUSRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
|
300
323
|
};
|
|
301
324
|
depthRequestRequestWeight = 10;
|
|
302
325
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
wssURL = 'wss://fstream.binance.com/stream';
|
|
326
|
+
export class BinanceFuturesRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
327
|
+
wssURL = `${BINANCE_FUTURES_DEFAULT_WS_BASE_URL}${BINANCE_FUTURES_PUBLIC_STREAM_PATH}`;
|
|
306
328
|
httpURL = 'https://fapi.binance.com/fapi/v1';
|
|
307
329
|
suffixes = {
|
|
308
330
|
depth: '0ms',
|
|
309
331
|
markPrice: '1s'
|
|
310
332
|
};
|
|
311
333
|
depthRequestRequestWeight = 20;
|
|
334
|
+
*_getRealTimeFeeds(exchange, filters, timeoutIntervalMS, onError) {
|
|
335
|
+
const wsFilters = filters.filter((f) => f.channel !== 'openInterest' && f.channel !== 'recentTrades' && f.channel !== 'fundingInfo' && f.channel !== 'insuranceBalance');
|
|
336
|
+
const publicWsFilters = wsFilters.filter((f) => BINANCE_FUTURES_PUBLIC_CHANNELS.has(f.channel));
|
|
337
|
+
if (publicWsFilters.length > 0) {
|
|
338
|
+
yield new BinanceFuturesSingleConnectionRealTimeFeed(exchange, publicWsFilters, BINANCE_FUTURES_PUBLIC_STREAM_PATH, this.httpURL, this.suffixes, this.depthRequestRequestWeight, timeoutIntervalMS, onError);
|
|
339
|
+
}
|
|
340
|
+
const marketWsFilters = wsFilters.filter((f) => BINANCE_FUTURES_PUBLIC_CHANNELS.has(f.channel) === false);
|
|
341
|
+
if (marketWsFilters.length > 0) {
|
|
342
|
+
yield new BinanceFuturesSingleConnectionRealTimeFeed(exchange, marketWsFilters, BINANCE_FUTURES_MARKET_STREAM_PATH, this.httpURL, this.suffixes, this.depthRequestRequestWeight, timeoutIntervalMS, onError);
|
|
343
|
+
}
|
|
344
|
+
const openInterestFilters = filters.filter((f) => f.channel === 'openInterest');
|
|
345
|
+
if (openInterestFilters.length > 0) {
|
|
346
|
+
const instruments = openInterestFilters.flatMap((s) => s.symbols);
|
|
347
|
+
yield new BinanceFuturesOpenInterestClient(exchange, this.httpURL, instruments, onError);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
312
350
|
}
|
|
313
|
-
|
|
314
|
-
class BinanceDeliveryRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
351
|
+
export class BinanceDeliveryRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
315
352
|
wssURL = 'wss://dstream.binance.com/stream';
|
|
316
353
|
httpURL = 'https://dapi.binance.com/dapi/v1';
|
|
317
354
|
suffixes = {
|
|
@@ -321,5 +358,4 @@ class BinanceDeliveryRealTimeFeed extends BinanceRealTimeFeedBase {
|
|
|
321
358
|
};
|
|
322
359
|
depthRequestRequestWeight = 20;
|
|
323
360
|
}
|
|
324
|
-
exports.BinanceDeliveryRealTimeFeed = BinanceDeliveryRealTimeFeed;
|
|
325
361
|
//# sourceMappingURL=binance.js.map
|