tardis-machine 18.3.8 → 18.4.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.
Files changed (79) hide show
  1. package/dist/ws/subscriptionsmappers.d.ts.map +1 -1
  2. package/dist/ws/subscriptionsmappers.js +1 -0
  3. package/dist/ws/subscriptionsmappers.js.map +1 -1
  4. package/node_modules/tardis-dev/dist/consts.d.ts +6 -5
  5. package/node_modules/tardis-dev/dist/consts.d.ts.map +1 -1
  6. package/node_modules/tardis-dev/dist/consts.js +31 -5
  7. package/node_modules/tardis-dev/dist/consts.js.map +1 -1
  8. package/node_modules/tardis-dev/dist/mappers/ascendex.d.ts +4 -4
  9. package/node_modules/tardis-dev/dist/mappers/aster.d.ts +8 -8
  10. package/node_modules/tardis-dev/dist/mappers/binance.d.ts +18 -18
  11. package/node_modules/tardis-dev/dist/mappers/binanceeuropeanoptions.d.ts +1 -1
  12. package/node_modules/tardis-dev/dist/mappers/bitfinex.d.ts +8 -8
  13. package/node_modules/tardis-dev/dist/mappers/bitflyer.d.ts +1 -1
  14. package/node_modules/tardis-dev/dist/mappers/bitget.d.ts +1 -1
  15. package/node_modules/tardis-dev/dist/mappers/bithumb.d.ts +2 -2
  16. package/node_modules/tardis-dev/dist/mappers/bitmex.d.ts +2 -2
  17. package/node_modules/tardis-dev/dist/mappers/bitnomial.d.ts +1 -1
  18. package/node_modules/tardis-dev/dist/mappers/bitstamp.d.ts +3 -2
  19. package/node_modules/tardis-dev/dist/mappers/bitstamp.d.ts.map +1 -1
  20. package/node_modules/tardis-dev/dist/mappers/bitstamp.js +49 -2
  21. package/node_modules/tardis-dev/dist/mappers/bitstamp.js.map +1 -1
  22. package/node_modules/tardis-dev/dist/mappers/bitvavo.d.ts +3 -3
  23. package/node_modules/tardis-dev/dist/mappers/blockchaincom.d.ts +2 -2
  24. package/node_modules/tardis-dev/dist/mappers/bullish.d.ts +5 -5
  25. package/node_modules/tardis-dev/dist/mappers/bybit.d.ts +26 -7
  26. package/node_modules/tardis-dev/dist/mappers/bybit.d.ts.map +1 -1
  27. package/node_modules/tardis-dev/dist/mappers/bybit.js +4 -0
  28. package/node_modules/tardis-dev/dist/mappers/bybit.js.map +1 -1
  29. package/node_modules/tardis-dev/dist/mappers/bybitspot.d.ts +1 -1
  30. package/node_modules/tardis-dev/dist/mappers/coinbase.d.ts +1 -1
  31. package/node_modules/tardis-dev/dist/mappers/coinbaseinternational.d.ts +2 -2
  32. package/node_modules/tardis-dev/dist/mappers/coinflex.d.ts +1 -1
  33. package/node_modules/tardis-dev/dist/mappers/cryptocom.d.ts +5 -5
  34. package/node_modules/tardis-dev/dist/mappers/cryptofacilities.d.ts +2 -2
  35. package/node_modules/tardis-dev/dist/mappers/delta.d.ts +1 -1
  36. package/node_modules/tardis-dev/dist/mappers/deribit.d.ts +3 -3
  37. package/node_modules/tardis-dev/dist/mappers/dydx.d.ts +3 -3
  38. package/node_modules/tardis-dev/dist/mappers/dydxv4.d.ts +4 -4
  39. package/node_modules/tardis-dev/dist/mappers/ftx.d.ts +8 -8
  40. package/node_modules/tardis-dev/dist/mappers/ftx.js +1 -1
  41. package/node_modules/tardis-dev/dist/mappers/ftx.js.map +1 -1
  42. package/node_modules/tardis-dev/dist/mappers/gateio.d.ts +1 -1
  43. package/node_modules/tardis-dev/dist/mappers/gateiofutures.d.ts +4 -4
  44. package/node_modules/tardis-dev/dist/mappers/gemini.d.ts +1 -1
  45. package/node_modules/tardis-dev/dist/mappers/huobi.d.ts +26 -26
  46. package/node_modules/tardis-dev/dist/mappers/hyperliquid.d.ts +3 -3
  47. package/node_modules/tardis-dev/dist/mappers/index.d.ts +204 -183
  48. package/node_modules/tardis-dev/dist/mappers/index.d.ts.map +1 -1
  49. package/node_modules/tardis-dev/dist/mappers/kucoin.d.ts +3 -3
  50. package/node_modules/tardis-dev/dist/mappers/kucoinfutures.d.ts +4 -4
  51. package/node_modules/tardis-dev/dist/mappers/lighter.d.ts +10 -10
  52. package/node_modules/tardis-dev/dist/mappers/mexc.d.ts +3 -3
  53. package/node_modules/tardis-dev/dist/mappers/mexcfutures.d.ts +3 -3
  54. package/node_modules/tardis-dev/dist/mappers/okex.d.ts +15 -15
  55. package/node_modules/tardis-dev/dist/mappers/phemex.d.ts +1 -1
  56. package/node_modules/tardis-dev/dist/mappers/polymarket.d.ts +3 -3
  57. package/node_modules/tardis-dev/dist/mappers/serum.d.ts +9 -9
  58. package/node_modules/tardis-dev/dist/mappers/upbit.d.ts +2 -2
  59. package/node_modules/tardis-dev/dist/realtimefeeds/bitstamp.d.ts +12 -2
  60. package/node_modules/tardis-dev/dist/realtimefeeds/bitstamp.d.ts.map +1 -1
  61. package/node_modules/tardis-dev/dist/realtimefeeds/bitstamp.js +36 -3
  62. package/node_modules/tardis-dev/dist/realtimefeeds/bitstamp.js.map +1 -1
  63. package/node_modules/tardis-dev/dist/realtimefeeds/bybit.d.ts +3 -0
  64. package/node_modules/tardis-dev/dist/realtimefeeds/bybit.d.ts.map +1 -1
  65. package/node_modules/tardis-dev/dist/realtimefeeds/bybit.js +3 -0
  66. package/node_modules/tardis-dev/dist/realtimefeeds/bybit.js.map +1 -1
  67. package/node_modules/tardis-dev/dist/realtimefeeds/index.d.ts.map +1 -1
  68. package/node_modules/tardis-dev/dist/realtimefeeds/index.js +2 -1
  69. package/node_modules/tardis-dev/dist/realtimefeeds/index.js.map +1 -1
  70. package/node_modules/tardis-dev/package.json +1 -1
  71. package/node_modules/tardis-dev/src/consts.ts +32 -5
  72. package/node_modules/tardis-dev/src/mappers/bitstamp.ts +101 -27
  73. package/node_modules/tardis-dev/src/mappers/bybit.ts +6 -2
  74. package/node_modules/tardis-dev/src/mappers/ftx.ts +1 -1
  75. package/node_modules/tardis-dev/src/realtimefeeds/bitstamp.ts +50 -3
  76. package/node_modules/tardis-dev/src/realtimefeeds/bybit.ts +4 -0
  77. package/node_modules/tardis-dev/src/realtimefeeds/index.ts +2 -1
  78. package/package.json +2 -2
  79. package/src/ws/subscriptionsmappers.ts +1 -0
@@ -1,8 +1,8 @@
1
1
  import { BookChange, Trade } from '../types.ts';
2
2
  export declare const upbitMappers: {
3
3
  upbit: {
4
- trades: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bithumb" | "bitvavo" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "lighter-rh" | "bullish" | "mexc" | "polymarket", Trade>;
5
- bookChanges: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bithumb" | "bitvavo" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "lighter-rh" | "bullish" | "mexc" | "polymarket", BookChange>;
4
+ trades: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bithumb" | "bitvavo" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "bybit-spread" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "lighter-rh" | "bullish" | "mexc" | "polymarket", Trade>;
5
+ bookChanges: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bithumb" | "bitvavo" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "bybit-spread" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "lighter-rh" | "bullish" | "mexc" | "polymarket", BookChange>;
6
6
  };
7
7
  };
8
8
  //# sourceMappingURL=upbit.d.ts.map
@@ -1,10 +1,20 @@
1
+ import { Writable } from 'stream';
1
2
  import { Filter } from '../types.ts';
2
- import { RealTimeFeedBase } from './realtimefeed.ts';
3
- export declare class BitstampRealTimeFeed extends RealTimeFeedBase {
3
+ import { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from './realtimefeed.ts';
4
+ export declare class BitstampRealTimeFeed extends MultiConnectionRealTimeFeedBase {
5
+ protected _getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void): Generator<BitstampWebSocketRealTimeFeed | BitstampTickerClient, void, unknown>;
6
+ }
7
+ declare class BitstampTickerClient extends PoolingClientBase {
8
+ private readonly _symbols;
9
+ constructor(exchange: string, _symbols: string[], onError?: (error: Error) => void);
10
+ protected poolDataToStream(outputStream: Writable): Promise<void>;
11
+ }
12
+ declare class BitstampWebSocketRealTimeFeed extends RealTimeFeedBase {
4
13
  protected wssURL: string;
5
14
  protected httpURL: string;
6
15
  protected mapToSubscribeMessages(filters: Filter<string>[]): any[];
7
16
  protected messageIsError(message: any): boolean;
8
17
  protected provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean): Promise<void>;
9
18
  }
19
+ export {};
10
20
  //# sourceMappingURL=bitstamp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitstamp.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/bitstamp.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,MAAM,SAA0B;IAC1C,SAAS,CAAC,OAAO,SAAoC;IAErD,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAmBlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;cAY/B,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO;CA8B9F"}
1
+ {"version":3,"file":"bitstamp.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/bitstamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIxG,qBAAa,oBAAqB,SAAQ,+BAA+B;IACvE,SAAS,CAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;CAevI;AAGD,cAAM,oBAAqB,SAAQ,iBAAiB;IAGhD,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADzB,QAAQ,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAAE,EACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;cAKlB,gBAAgB,CAAC,YAAY,EAAE,QAAQ;CAcxD;AAED,cAAM,6BAA8B,SAAQ,gBAAgB;IAC1D,SAAS,CAAC,MAAM,SAA0B;IAC1C,SAAS,CAAC,OAAO,SAAoB;IAErC,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAmBlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;cAY/B,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO;CA8B9F"}
@@ -1,8 +1,41 @@
1
1
  import { getJSON } from "../handy.js";
2
- import { RealTimeFeedBase } from "./realtimefeed.js";
3
- export class BitstampRealTimeFeed extends RealTimeFeedBase {
2
+ import { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from "./realtimefeed.js";
3
+ const BITSTAMP_HTTP_URL = 'https://www.bitstamp.net/api/v2';
4
+ export class BitstampRealTimeFeed extends MultiConnectionRealTimeFeedBase {
5
+ *_getRealTimeFeeds(exchange, filters, timeoutIntervalMS, onError) {
6
+ const wsFilters = filters.filter((f) => f.channel !== 'ticker');
7
+ if (wsFilters.length > 0) {
8
+ yield new BitstampWebSocketRealTimeFeed(exchange, wsFilters, timeoutIntervalMS, onError);
9
+ }
10
+ const tickerFilters = filters.filter((f) => f.channel === 'ticker');
11
+ if (tickerFilters.length > 0) {
12
+ yield new BitstampTickerClient(exchange, tickerFilters.flatMap((f) => f.symbols ?? []), onError);
13
+ }
14
+ }
15
+ }
16
+ // Bitstamp WebSocket has no ticker channel; the recorder polls the REST ticker and stores it in this generated message shape.
17
+ class BitstampTickerClient extends PoolingClientBase {
18
+ _symbols;
19
+ constructor(exchange, _symbols, onError) {
20
+ super(exchange, 6, onError);
21
+ this._symbols = _symbols;
22
+ }
23
+ async poolDataToStream(outputStream) {
24
+ const { data: tickers } = await getJSON(`${BITSTAMP_HTTP_URL}/ticker/`, { timeout: 10000 });
25
+ for (const ticker of tickers) {
26
+ const symbol = ticker.market.replace('/', '').toLowerCase();
27
+ if (this._symbols.length > 0 && this._symbols.includes(symbol) === false) {
28
+ continue;
29
+ }
30
+ if (outputStream.writable) {
31
+ outputStream.write({ data: ticker, channel: `ticker_${symbol}`, event: 'ticker', generated: true });
32
+ }
33
+ }
34
+ }
35
+ }
36
+ class BitstampWebSocketRealTimeFeed extends RealTimeFeedBase {
4
37
  wssURL = 'wss://ws.bitstamp.net';
5
- httpURL = 'https://www.bitstamp.net/api/v2';
38
+ httpURL = BITSTAMP_HTTP_URL;
6
39
  mapToSubscribeMessages(filters) {
7
40
  return filters
8
41
  .map((filter) => {
@@ -1 +1 @@
1
- {"version":3,"file":"bitstamp.js","sourceRoot":"","sources":["../../src/realtimefeeds/bitstamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IAC9C,MAAM,GAAG,uBAAuB,CAAA;IAChC,OAAO,GAAG,iCAAiC,CAAA;IAE3C,sBAAsB,CAAC,OAAyB;QACxD,OAAO,OAAO;aACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,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,KAAK,EAAE,eAAe;oBACtB,IAAI,EAAE;wBACJ,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,EAAE;qBACvC;iBACF,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC;IAES,cAAc,CAAC,OAAY;QACnC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,uBAAuB,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,OAAyB,EAAE,YAA2B;QAC3F,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAA;QAC5E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,eAAe,CAAC,OAAQ,CAAC,CAAA;QAE3E,KAAK,IAAI,MAAM,IAAI,eAAe,CAAC,OAAQ,EAAE,CAAC;YAC5C,IAAI,YAAY,EAAE,EAAE,CAAC;gBACnB,OAAM;YACR,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,MAAM,UAAU,CAAC,CAAA;YAC9E,IAAI,YAAY,EAAE,EAAE,CAAC;gBACnB,OAAM;YACR,CAAC;YAED,MAAM,QAAQ,GAAG;gBACf,IAAI;gBACJ,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,mBAAmB,MAAM,EAAE;gBACpC,SAAS,EAAE,IAAI;aAChB,CAAA;YAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,kDAAkD,EAAE,eAAe,CAAC,OAAQ,CAAC,CAAA;IAC1F,CAAC;CACF"}
1
+ {"version":3,"file":"bitstamp.js","sourceRoot":"","sources":["../../src/realtimefeeds/bitstamp.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,9 @@ declare class BybitInverseRealTimeDataFeed extends BybitSingleConnectionRealTime
20
20
  export declare class BybitSpotRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {
21
21
  protected wssURL: string;
22
22
  }
23
+ export declare class BybitSpreadRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {
24
+ protected wssURL: string;
25
+ }
23
26
  export declare class BybitOptionsRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {
24
27
  protected wssURL: string;
25
28
  protected mapToSubscribeMessages(filters: Filter<string>[]): any[];
@@ -1 +1 @@
1
- {"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAA;AAErF,qBAAa,qBAAsB,SAAQ,+BAA+B;IACxE,SAAS,CAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAoBtI,OAAO,CAAC,KAAK;CAgBd;AAED,uBAAe,qCAAsC,SAAQ,gBAAgB;IAC3E,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAE1C,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAqBlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAI/C,SAAS,CAAC,cAAc,aAEvB;IAED,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG;CAGtC;AAED,cAAM,2BAA4B,SAAQ,qCAAqC;IAC7E,SAAS,CAAC,MAAM,EAAE,MAAM,CAA4C;CACrE;AAED,cAAM,4BAA6B,SAAQ,qCAAqC;IAC9E,SAAS,CAAC,MAAM,EAAE,MAAM,CAA6C;CACtE;AAED,qBAAa,yBAA0B,SAAQ,qCAAqC;IAClF,SAAS,CAAC,MAAM,EAAE,MAAM,CAA0C;CACnE;AAED,qBAAa,4BAA6B,SAAQ,qCAAqC;IACrF,SAAS,CAAC,MAAM,EAAE,MAAM,CAA4C;IAEpE,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;CA2BnE"}
1
+ {"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAA;AAErF,qBAAa,qBAAsB,SAAQ,+BAA+B;IACxE,SAAS,CAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAoBtI,OAAO,CAAC,KAAK;CAgBd;AAED,uBAAe,qCAAsC,SAAQ,gBAAgB;IAC3E,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAE1C,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAqBlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAI/C,SAAS,CAAC,cAAc,aAEvB;IAED,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG;CAGtC;AAED,cAAM,2BAA4B,SAAQ,qCAAqC;IAC7E,SAAS,CAAC,MAAM,EAAE,MAAM,CAA4C;CACrE;AAED,cAAM,4BAA6B,SAAQ,qCAAqC;IAC9E,SAAS,CAAC,MAAM,EAAE,MAAM,CAA6C;CACtE;AAED,qBAAa,yBAA0B,SAAQ,qCAAqC;IAClF,SAAS,CAAC,MAAM,EAAE,MAAM,CAA0C;CACnE;AAED,qBAAa,2BAA4B,SAAQ,qCAAqC;IACpF,SAAS,CAAC,MAAM,EAAE,MAAM,CAA4C;CACrE;AAED,qBAAa,4BAA6B,SAAQ,qCAAqC;IACrF,SAAS,CAAC,MAAM,EAAE,MAAM,CAA4C;IAEpE,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;CA2BnE"}
@@ -65,6 +65,9 @@ class BybitInverseRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed
65
65
  export class BybitSpotRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {
66
66
  wssURL = 'wss://stream.bybit.com/v5/public/spot';
67
67
  }
68
+ export class BybitSpreadRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {
69
+ wssURL = 'wss://stream.bybit.com/v5/public/spread';
70
+ }
68
71
  export class BybitOptionsRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {
69
72
  wssURL = 'wss://stream.bybit.com/v5/public/option';
70
73
  mapToSubscribeMessages(filters) {
@@ -1 +1 @@
1
- {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA+B9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AA6BhD,cAAc,mBAAmB,CAAA;AAuEjC,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAMvE;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACzB,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,oDAKjC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA+B9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AA6BhD,cAAc,mBAAmB,CAAA;AAwEjC,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAMvE;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACzB,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,oDAKjC"}
@@ -6,7 +6,7 @@ import { BitflyerRealTimeFeed } from "./bitflyer.js";
6
6
  import { BithumbRealTimeFeed } from "./bithumb.js";
7
7
  import { BitstampRealTimeFeed } from "./bitstamp.js";
8
8
  import { BitvavoRealTimeFeed } from "./bitvavo.js";
9
- import { BybitOptionsRealTimeDataFeed, BybitRealTimeDataFeed, BybitSpotRealTimeDataFeed } from "./bybit.js";
9
+ import { BybitOptionsRealTimeDataFeed, BybitRealTimeDataFeed, BybitSpotRealTimeDataFeed, BybitSpreadRealTimeDataFeed } from "./bybit.js";
10
10
  import { CoinbaseRealTimeFeed } from "./coinbase.js";
11
11
  import { CryptofacilitiesRealTimeFeed } from "./cryptofacilities.js";
12
12
  import { DeribitRealTimeDataFeed } from "./deribit.js";
@@ -92,6 +92,7 @@ const realTimeFeedsMap = {
92
92
  mango: MangoRealTimeFeed,
93
93
  'bybit-spot': BybitSpotRealTimeDataFeed,
94
94
  'bybit-options': BybitOptionsRealTimeDataFeed,
95
+ 'bybit-spread': BybitSpreadRealTimeDataFeed,
95
96
  'crypto-com': CryptoComRealTimeFeed,
96
97
  kucoin: KucoinRealTimeFeed,
97
98
  bitnomial: BitnomialRealTimeFeed,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/realtimefeeds/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/realtimefeeds/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tardis-dev",
3
- "version": "18.3.8",
3
+ "version": "18.4.0",
4
4
  "engines": {
5
5
  "node": ">=24.19"
6
6
  },
@@ -31,6 +31,7 @@ export const EXCHANGES = [
31
31
  'bybit',
32
32
  'bybit-spot',
33
33
  'bybit-options',
34
+ 'bybit-spread',
34
35
  'phemex',
35
36
  'delta',
36
37
  'ftx-us',
@@ -68,7 +69,18 @@ export const EXCHANGES = [
68
69
  'polymarket'
69
70
  ] as const
70
71
 
71
- const BINANCE_CHANNELS = ['trade', 'aggTrade', 'ticker', 'depth', 'depthSnapshot', 'bookTicker', 'recentTrades', 'borrowInterest'] as const
72
+ const BINANCE_CHANNELS = [
73
+ 'trade',
74
+ 'aggTrade',
75
+ 'ticker',
76
+ 'depth',
77
+ 'depthSnapshot',
78
+ 'bookTicker',
79
+ 'recentTrades',
80
+ 'borrowInterest',
81
+ 'tokenNav'
82
+ ] as const
83
+ const BINANCE_US_CHANNELS = ['trade', 'aggTrade', 'ticker', 'depth', 'depthSnapshot', 'bookTicker', 'recentTrades'] as const
72
84
 
73
85
  const ASTER_CHANNELS = ['trade', 'aggTrade', 'ticker', 'depth', 'depthSnapshot', 'bookTicker'] as const
74
86
  const ASTER_FUTURES_CHANNELS = [
@@ -111,7 +123,7 @@ const BITMEX_CHANNELS = [
111
123
  'tradeBin1d'
112
124
  ] as const
113
125
 
114
- const BITSTAMP_CHANNELS = ['live_trades', 'live_orders', 'diff_order_book'] as const
126
+ const BITSTAMP_CHANNELS = ['live_trades', 'live_orders', 'diff_order_book', 'funding_rate', 'ticker'] as const
115
127
  const BITVAVO_CHANNELS = ['book', 'getBook', 'trade', 'ticker'] as const
116
128
 
117
129
  const BITHUMB_CHANNELS = ['trade', 'orderbook', 'ticker'] as const
@@ -504,7 +516,21 @@ const MANGO_CHANNELS = [
504
516
 
505
517
  const HUOBI_DM_OPTIONS_CHANNELS = ['trade', 'detail', 'depth', 'bbo', 'open_interest', 'option_market_index', 'option_index'] as const
506
518
 
507
- const BYBIT_SPOT_CHANNELS = ['trade', 'bookTicker', 'depth', 'orderbook.1', 'orderbook.50', 'publicTrade', 'tickers', 'lt', 'orderbook.200']
519
+ const BYBIT_SPREAD_CHANNELS = ['orderbook.25', 'publicTrade', 'tickers']
520
+
521
+ const BYBIT_SPOT_CHANNELS = [
522
+ 'trade',
523
+ 'bookTicker',
524
+ 'depth',
525
+ 'orderbook.1',
526
+ 'orderbook.50',
527
+ 'orderbook.200',
528
+ 'orderbook.full',
529
+ 'orderbook.rpi',
530
+ 'publicTrade',
531
+ 'tickers',
532
+ 'lt'
533
+ ]
508
534
 
509
535
  const CRYPTO_COM_CHANNELS = ['trade', 'book', 'ticker', 'settlement', 'index', 'mark', 'funding', 'estimatedfunding']
510
536
 
@@ -599,9 +625,9 @@ export const EXCHANGE_CHANNELS_INFO = {
599
625
  'okex-futures': OKEX_FUTURES_CHANNELS,
600
626
  'okex-options': OKEX_OPTIONS_CHANNELS,
601
627
  binance: BINANCE_CHANNELS,
602
- 'binance-jersey': BINANCE_CHANNELS,
628
+ 'binance-jersey': BINANCE_US_CHANNELS,
603
629
  'binance-dex': BINANCE_DEX_CHANNELS,
604
- 'binance-us': BINANCE_CHANNELS,
630
+ 'binance-us': BINANCE_US_CHANNELS,
605
631
  bitfinex: BITFINEX_CHANNELS,
606
632
  ftx: FTX_CHANNELS,
607
633
  'ftx-us': FTX_US_CHANNELS,
@@ -615,6 +641,7 @@ export const EXCHANGE_CHANNELS_INFO = {
615
641
  'huobi-dm-swap': HUOBI_DM_SWAP_CHANNELS,
616
642
  'huobi-dm-linear-swap': HUOBI_DM_LINEAR_SWAP_CHANNELS,
617
643
  bybit: BYBIT_CHANNELS,
644
+ 'bybit-spread': BYBIT_SPREAD_CHANNELS,
618
645
  'bybit-spot': BYBIT_SPOT_CHANNELS,
619
646
  'bybit-options': BYBIT_OPTIONS_CHANNELS,
620
647
  okcoin: OKCOIN_CHANNELS,
@@ -1,6 +1,6 @@
1
1
  import { lowerCaseSymbols } from '../handy.ts'
2
- import { BookChange, Trade } from '../types.ts'
3
- import { Mapper } from './mapper.ts'
2
+ import { BookChange, DerivativeTicker, Trade } from '../types.ts'
3
+ import { Mapper, PendingTickerInfoHelper } from './mapper.ts'
4
4
  import { exchangeMappers } from './registry.ts'
5
5
 
6
6
  // https://www.bitstamp.net/websocket/v2/
@@ -8,12 +8,13 @@ import { exchangeMappers } from './registry.ts'
8
8
  export const bitstampMappers = exchangeMappers({
9
9
  bitstamp: {
10
10
  trades: () => bitstampTradesMapper,
11
- bookChanges: () => new BitstampBookChangeMapper()
11
+ bookChanges: () => new BitstampBookChangeMapper(),
12
+ derivativeTickers: () => new BitstampDerivativeTickerMapper()
12
13
  }
13
14
  })
14
15
 
15
16
  const bitstampTradesMapper: Mapper<'bitstamp', Trade> = {
16
- canHandle(message: BitstampTrade | BitstampDiffOrderBook | BitstampDiffOrderBookSnapshot) {
17
+ canHandle(message: BitstampMessage) {
17
18
  if (message.data === undefined) {
18
19
  return false
19
20
  }
@@ -43,7 +44,7 @@ const bitstampTradesMapper: Mapper<'bitstamp', Trade> = {
43
44
  type: 'trade',
44
45
  symbol: symbol.toUpperCase(),
45
46
  exchange: 'bitstamp',
46
- id: String(bitstampTrade.id),
47
+ id: bitstampTrade.id_str ?? String(bitstampTrade.id),
47
48
  price: Number(bitstampTrade.price),
48
49
  amount: Number(bitstampTrade.amount),
49
50
  side: bitstampTrade.type === 0 ? 'buy' : 'sell',
@@ -53,10 +54,60 @@ const bitstampTradesMapper: Mapper<'bitstamp', Trade> = {
53
54
  }
54
55
  }
55
56
 
57
+ class BitstampDerivativeTickerMapper implements Mapper<'bitstamp', DerivativeTicker> {
58
+ private readonly _pendingTickerInfoHelper = new PendingTickerInfoHelper()
59
+
60
+ canHandle(message: BitstampMessage) {
61
+ if (message.data === undefined) {
62
+ return false
63
+ }
64
+ if (message.event === 'funding_rate_saved') {
65
+ return message.channel.startsWith('funding_rate_')
66
+ }
67
+ if (message.event === 'ticker') {
68
+ return message.channel.startsWith('ticker_') && message.channel.endsWith('-perp')
69
+ }
70
+ return message.event === 'trade' && message.channel.startsWith('live_trades_') && message.channel.endsWith('-perp')
71
+ }
72
+
73
+ getFilters(symbols?: string[]) {
74
+ symbols = lowerCaseSymbols(symbols)
75
+ return [
76
+ { channel: 'funding_rate', symbols } as const,
77
+ { channel: 'live_trades', symbols } as const,
78
+ { channel: 'ticker', symbols } as const
79
+ ]
80
+ }
81
+
82
+ *map(message: BitstampTrade | BitstampFundingRate | BitstampTicker, localTimestamp: Date): IterableIterator<DerivativeTicker> {
83
+ const symbol = message.channel.slice(message.channel.lastIndexOf('_') + 1).toUpperCase()
84
+ const ticker = this._pendingTickerInfoHelper.getPendingTickerInfo(symbol, 'bitstamp')
85
+ if (message.event === 'trade') {
86
+ // Funding messages own emission and timestamps; trades only update lastPrice.
87
+ ticker.updateLastPrice(Number(message.data.price))
88
+ return
89
+ }
90
+ if (message.event === 'ticker') {
91
+ // Recorder-generated REST ticker, polled every 6 seconds; it only adds open interest to the funding-driven ticker.
92
+ ticker.updateOpenInterest(Number(message.data.open_interest))
93
+ return
94
+ }
95
+
96
+ ticker.updateFundingRate(Number(message.data.funding_rate))
97
+ ticker.updateFundingTimestamp(new Date(Number(message.data.next_funding_time) * 1000))
98
+ ticker.updateMarkPrice(Number(message.data.mark_price))
99
+ ticker.updateIndexPrice(Number(message.data.index_price))
100
+ ticker.updateTimestamp(new Date(Number(message.data.timestamp) * 1000))
101
+ if (ticker.hasChanged()) {
102
+ yield ticker.getSnapshot(localTimestamp)
103
+ }
104
+ }
105
+ }
106
+
56
107
  class BitstampBookChangeMapper implements Mapper<'bitstamp', BookChange> {
57
108
  private readonly _symbolToDepthInfoMapping: { [key: string]: LocalDepthInfo } = {}
58
109
 
59
- canHandle(message: BitstampTrade | BitstampDiffOrderBook | BitstampDiffOrderBookSnapshot) {
110
+ canHandle(message: BitstampMessage) {
60
111
  if (message.data === undefined) {
61
112
  return false
62
113
  }
@@ -176,44 +227,67 @@ class BitstampBookChangeMapper implements Mapper<'bitstamp', BookChange> {
176
227
  }
177
228
  }
178
229
 
179
- type BitstampTrade = {
180
- event: 'trade'
230
+ type BitstampMessage<Event extends string = string, Data = unknown> = {
231
+ event: Event
181
232
  channel: string
182
- data: {
233
+ data: Data
234
+ }
235
+
236
+ type BitstampTrade = BitstampMessage<
237
+ 'trade',
238
+ {
183
239
  microtimestamp: string
184
240
  amount: number
185
241
  price: number
186
242
  type: number
187
243
  id: number
244
+ id_str?: string
245
+ }
246
+ >
247
+ type BitstampTicker = BitstampMessage<
248
+ 'ticker',
249
+ {
250
+ market: string
251
+ open_interest: string
252
+ }
253
+ >
254
+ type BitstampFundingRate = BitstampMessage<
255
+ 'funding_rate_saved',
256
+ {
257
+ market: string
258
+ funding_rate: string
259
+ mark_price: string
260
+ index_price: string
261
+ timestamp: string
262
+ next_funding_time: string
188
263
  }
264
+ >
265
+
266
+ type LocalDepthInfo = {
267
+ bufferedUpdates: BitstampDiffOrderBook[]
268
+ snapshotProcessed?: boolean
269
+ lastUpdateTimestamp?: number
270
+ lastUpdateMicroTimestamp?: number
189
271
  }
190
- type BitstampBookLevel = [string, string]
191
272
 
192
- type BitstampDiffOrderBook = {
193
- data: {
194
- microtimestamp: string
273
+ type BitstampDiffOrderBook = BitstampMessage<
274
+ 'data',
275
+ {
195
276
  timestamp: string
277
+ microtimestamp: string
196
278
  bids: BitstampBookLevel[]
197
279
  asks: BitstampBookLevel[]
198
280
  }
199
- event: 'data'
200
- channel: string
201
- }
281
+ >
202
282
 
203
- type BitstampDiffOrderBookSnapshot = {
204
- event: 'snapshot'
205
- channel: string
206
- data: {
283
+ type BitstampDiffOrderBookSnapshot = BitstampMessage<
284
+ 'snapshot',
285
+ {
207
286
  timestamp: string
208
287
  microtimestamp?: string
209
288
  bids: BitstampBookLevel[]
210
289
  asks: BitstampBookLevel[]
211
290
  }
212
- }
291
+ >
213
292
 
214
- type LocalDepthInfo = {
215
- bufferedUpdates: BitstampDiffOrderBook[]
216
- snapshotProcessed?: boolean
217
- lastUpdateTimestamp?: number
218
- lastUpdateMicroTimestamp?: number
219
- }
293
+ type BitstampBookLevel = [string, string]
@@ -46,12 +46,16 @@ export const bybitMappers = exchangeMappers({
46
46
  trades: () => new BybitV5TradesMapper('bybit-options'),
47
47
  bookChanges: () => new BybitV5BookChangeMapper('bybit-options', { depth: 25 }),
48
48
  optionsSummary: () => new BybitV5OptionSummaryMapper()
49
+ },
50
+ 'bybit-spread': {
51
+ trades: () => new BybitV5TradesMapper('bybit-spread'),
52
+ bookChanges: () => new BybitV5BookChangeMapper('bybit-spread', { depth: 25 })
49
53
  }
50
54
  })
51
55
 
52
56
  // v5 https://bybit-exchange.github.io/docs/v5/ws/connect
53
57
 
54
- class BybitV5TradesMapper implements Mapper<'bybit' | 'bybit-spot' | 'bybit-options', Trade> {
58
+ class BybitV5TradesMapper implements Mapper<'bybit' | 'bybit-spot' | 'bybit-options' | 'bybit-spread', Trade> {
55
59
  constructor(private readonly _exchange: Exchange) {}
56
60
 
57
61
  canHandle(message: BybitV5Trade) {
@@ -90,7 +94,7 @@ class BybitV5TradesMapper implements Mapper<'bybit' | 'bybit-spot' | 'bybit-opti
90
94
  }
91
95
  }
92
96
 
93
- class BybitV5BookChangeMapper implements Mapper<'bybit' | 'bybit-spot' | 'bybit-options', BookChange> {
97
+ class BybitV5BookChangeMapper implements Mapper<'bybit' | 'bybit-spot' | 'bybit-options' | 'bybit-spread', BookChange> {
94
98
  private readonly _depth: number
95
99
 
96
100
  constructor(
@@ -132,7 +132,7 @@ class FTXDerivativeTickerMapper implements Mapper<'ftx', DerivativeTicker> {
132
132
  return [
133
133
  {
134
134
  channel: 'instrument',
135
- symbols: symbols !== undefined ? symbols.filter((s) => s.includes('/') === false) : undefined
135
+ symbols
136
136
  } as const
137
137
  ]
138
138
  }
@@ -1,10 +1,57 @@
1
+ import { Writable } from 'stream'
1
2
  import { getJSON } from '../handy.ts'
2
3
  import { Filter } from '../types.ts'
3
- import { RealTimeFeedBase } from './realtimefeed.ts'
4
+ import { MultiConnectionRealTimeFeedBase, PoolingClientBase, RealTimeFeedBase } from './realtimefeed.ts'
4
5
 
5
- export class BitstampRealTimeFeed extends RealTimeFeedBase {
6
+ const BITSTAMP_HTTP_URL = 'https://www.bitstamp.net/api/v2'
7
+
8
+ export class BitstampRealTimeFeed extends MultiConnectionRealTimeFeedBase {
9
+ protected *_getRealTimeFeeds(exchange: string, filters: Filter<string>[], timeoutIntervalMS?: number, onError?: (error: Error) => void) {
10
+ const wsFilters = filters.filter((f) => f.channel !== 'ticker')
11
+ if (wsFilters.length > 0) {
12
+ yield new BitstampWebSocketRealTimeFeed(exchange, wsFilters, timeoutIntervalMS, onError)
13
+ }
14
+
15
+ const tickerFilters = filters.filter((f) => f.channel === 'ticker')
16
+ if (tickerFilters.length > 0) {
17
+ yield new BitstampTickerClient(
18
+ exchange,
19
+ tickerFilters.flatMap((f) => f.symbols ?? []),
20
+ onError
21
+ )
22
+ }
23
+ }
24
+ }
25
+
26
+ // Bitstamp WebSocket has no ticker channel; the recorder polls the REST ticker and stores it in this generated message shape.
27
+ class BitstampTickerClient extends PoolingClientBase {
28
+ constructor(
29
+ exchange: string,
30
+ private readonly _symbols: string[],
31
+ onError?: (error: Error) => void
32
+ ) {
33
+ super(exchange, 6, onError)
34
+ }
35
+
36
+ protected async poolDataToStream(outputStream: Writable) {
37
+ const { data: tickers } = await getJSON<{ market: string }[]>(`${BITSTAMP_HTTP_URL}/ticker/`, { timeout: 10000 })
38
+
39
+ for (const ticker of tickers) {
40
+ const symbol = ticker.market.replace('/', '').toLowerCase()
41
+ if (this._symbols.length > 0 && this._symbols.includes(symbol) === false) {
42
+ continue
43
+ }
44
+
45
+ if (outputStream.writable) {
46
+ outputStream.write({ data: ticker, channel: `ticker_${symbol}`, event: 'ticker', generated: true })
47
+ }
48
+ }
49
+ }
50
+ }
51
+
52
+ class BitstampWebSocketRealTimeFeed extends RealTimeFeedBase {
6
53
  protected wssURL = 'wss://ws.bitstamp.net'
7
- protected httpURL = 'https://www.bitstamp.net/api/v2'
54
+ protected httpURL = BITSTAMP_HTTP_URL
8
55
 
9
56
  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {
10
57
  return filters
@@ -90,6 +90,10 @@ export class BybitSpotRealTimeDataFeed extends BybitSingleConnectionRealTimeData
90
90
  protected wssURL: string = 'wss://stream.bybit.com/v5/public/spot'
91
91
  }
92
92
 
93
+ export class BybitSpreadRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {
94
+ protected wssURL: string = 'wss://stream.bybit.com/v5/public/spread'
95
+ }
96
+
93
97
  export class BybitOptionsRealTimeDataFeed extends BybitSingleConnectionRealTimeDataFeed {
94
98
  protected wssURL: string = 'wss://stream.bybit.com/v5/public/option'
95
99
 
@@ -13,7 +13,7 @@ import { BitflyerRealTimeFeed } from './bitflyer.ts'
13
13
  import { BithumbRealTimeFeed } from './bithumb.ts'
14
14
  import { BitstampRealTimeFeed } from './bitstamp.ts'
15
15
  import { BitvavoRealTimeFeed } from './bitvavo.ts'
16
- import { BybitOptionsRealTimeDataFeed, BybitRealTimeDataFeed, BybitSpotRealTimeDataFeed } from './bybit.ts'
16
+ import { BybitOptionsRealTimeDataFeed, BybitRealTimeDataFeed, BybitSpotRealTimeDataFeed, BybitSpreadRealTimeDataFeed } from './bybit.ts'
17
17
  import { CoinbaseRealTimeFeed } from './coinbase.ts'
18
18
  import { CryptofacilitiesRealTimeFeed } from './cryptofacilities.ts'
19
19
  import { DeribitRealTimeDataFeed } from './deribit.ts'
@@ -110,6 +110,7 @@ const realTimeFeedsMap: {
110
110
  mango: MangoRealTimeFeed,
111
111
  'bybit-spot': BybitSpotRealTimeDataFeed,
112
112
  'bybit-options': BybitOptionsRealTimeDataFeed,
113
+ 'bybit-spread': BybitSpreadRealTimeDataFeed,
113
114
  'crypto-com': CryptoComRealTimeFeed,
114
115
  kucoin: KucoinRealTimeFeed,
115
116
  bitnomial: BitnomialRealTimeFeed,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tardis-machine",
3
- "version": "18.3.8",
3
+ "version": "18.4.0",
4
4
  "engines": {
5
5
  "node": ">=24.19"
6
6
  },
@@ -76,7 +76,7 @@
76
76
  "license": "MPL-2.0",
77
77
  "dependencies": {
78
78
  "debug": "^4.4.3",
79
- "tardis-dev": "^18.3.8",
79
+ "tardis-dev": "^18.4.0",
80
80
  "ws": "^8.21.3"
81
81
  },
82
82
  "bundleDependencies": true,
@@ -863,6 +863,7 @@ export const subscriptionsMappers: Record<Exchange, SubscriptionMapper> = {
863
863
  'woo-x': wooxMapper,
864
864
  'blockchain-com': blockchainComMapper,
865
865
  'bybit-options': bybitMapper,
866
+ 'bybit-spread': bybitMapper,
866
867
  'binance-european-options': binanceMapper,
867
868
  'okex-spreads': okexMapper,
868
869
  'kucoin-futures': kucoinMapper,