tardis-dev 17.0.0 → 17.1.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/dist/consts.d.ts CHANGED
@@ -18,7 +18,7 @@ export declare const EXCHANGE_CHANNELS_INFO: {
18
18
  bitfinex: readonly ["trades", "book", "raw_book", "ticker"];
19
19
  ftx: readonly ["orderbook", "trades", "instrument", "markets", "orderbookGrouped", "lendingRate", "borrowRate", "borrowSummary", "ticker", "leveragedTokenInfo", "busy"];
20
20
  'ftx-us': readonly ["orderbook", "trades", "markets", "orderbookGrouped", "ticker"];
21
- gemini: readonly ["trade", "l2_updates", "auction_open", "auction_indicative", "auction_result"];
21
+ gemini: readonly ["trade", "l2_updates", "auction_open", "auction_indicative", "auction_result", "depth", "bookTicker"];
22
22
  bitflyer: readonly ["lightning_executions", "lightning_board_snapshot", "lightning_board", "lightning_ticker"];
23
23
  'binance-futures': readonly ["trade", "aggTrade", "ticker", "depth", "markPrice", "premiumIndex", "indexConstituents", "depthSnapshot", "bookTicker", "forceOrder", "openInterest", "fundingInfo", "insuranceBalance", "recentTrades", "compositeIndex", "topLongShortAccountRatio", "topLongShortPositionRatio", "globalLongShortAccountRatio", "takerlongshortRatio", "!contractInfo", "assetIndex"];
24
24
  'binance-delivery': readonly ["trade", "aggTrade", "ticker", "depth", "markPrice", "indexPrice", "depthSnapshot", "bookTicker", "forceOrder", "openInterest", "fundingInfo", "recentTrades", "topLongShortAccountRatio", "topLongShortPositionRatio", "globalLongShortAccountRatio", "takerBuySellVol", "!contractInfo"];
package/dist/consts.js CHANGED
@@ -273,7 +273,7 @@ const FTX_CHANNELS = [
273
273
  'leveragedTokenInfo',
274
274
  'busy'
275
275
  ];
276
- const GEMINI_CHANNELS = ['trade', 'l2_updates', 'auction_open', 'auction_indicative', 'auction_result'];
276
+ const GEMINI_CHANNELS = ['trade', 'l2_updates', 'auction_open', 'auction_indicative', 'auction_result', 'depth', 'bookTicker'];
277
277
  const BITFLYER_CHANNELS = ['lightning_executions', 'lightning_board_snapshot', 'lightning_board', 'lightning_ticker'];
278
278
  const BINANCE_FUTURES_CHANNELS = [
279
279
  'trade',
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { BookChange, Trade } from '../types.ts';
1
+ import { BookChange, BookTicker, Trade } from '../types.ts';
2
2
  export declare const geminiMappers: {
3
3
  gemini: {
4
4
  trades: import("./registry.ts").MapperCreator<"gemini", Trade>;
5
5
  bookChanges: import("./registry.ts").MapperCreator<"gemini", BookChange>;
6
+ bookTickers: import("./registry.ts").MapperCreator<"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" | "bullish" | "mexc" | "polymarket", BookTicker>;
6
7
  };
7
8
  };
8
9
  //# sourceMappingURL=gemini.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/mappers/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAM/C,eAAO,MAAM,aAAa;;;;;CAKxB,CAAA"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/mappers/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAM3D,eAAO,MAAM,aAAa;;;;;;CASxB,CAAA"}
@@ -1,10 +1,14 @@
1
- import { upperCaseSymbols } from "../handy.js";
2
- import { exchangeMappers } from "./registry.js";
3
- // https://docs.gemini.com/websocket-api/#market-data-version-2
1
+ import { asNonZeroNumberOrUndefined, fromMicroSecondsToDate, upperCaseSymbols } from "../handy.js";
2
+ import { exchangeMappers, mapper } from "./registry.js";
3
+ const GEMINI_V3_API_SWITCH_DATE = new Date('2026-07-24T00:00:00.000Z');
4
4
  export const geminiMappers = exchangeMappers({
5
5
  gemini: {
6
- trades: () => geminiTradesMapper,
7
- bookChanges: () => geminiBookChangeMapper
6
+ trades: mapper([{ until: GEMINI_V3_API_SWITCH_DATE, use: () => geminiTradesMapper }, { use: () => new GeminiV3TradesMapper() }]),
7
+ bookChanges: mapper([
8
+ { until: GEMINI_V3_API_SWITCH_DATE, use: () => geminiBookChangeMapper },
9
+ { use: () => new GeminiV3BookChangeMapper() }
10
+ ]),
11
+ bookTickers: () => new GeminiV3BookTickerMapper()
8
12
  }
9
13
  });
10
14
  const geminiTradesMapper = {
@@ -65,4 +69,77 @@ const geminiBookChangeMapper = {
65
69
  };
66
70
  }
67
71
  };
72
+ class GeminiV3TradesMapper {
73
+ canHandle(message) {
74
+ return 't' in message;
75
+ }
76
+ getFilters(symbols) {
77
+ return [{ channel: 'trade', symbols: upperCaseSymbols(symbols) }];
78
+ }
79
+ *map(message, localTimestamp) {
80
+ yield {
81
+ type: 'trade',
82
+ symbol: message.s.toUpperCase(),
83
+ exchange: 'gemini',
84
+ id: message.t.toString(),
85
+ price: Number(message.p),
86
+ amount: Number(message.q),
87
+ side: message.m ? 'sell' : 'buy',
88
+ timestamp: fromMicroSecondsToDate(Math.floor(message.E / 1000)),
89
+ localTimestamp
90
+ };
91
+ }
92
+ }
93
+ class GeminiV3BookChangeMapper {
94
+ symbolsWithSnapshot = new Set();
95
+ canHandle(message) {
96
+ return message.e === 'depthUpdate';
97
+ }
98
+ getFilters(symbols) {
99
+ return [{ channel: 'depth', symbols: upperCaseSymbols(symbols) }];
100
+ }
101
+ *map(message, localTimestamp) {
102
+ yield {
103
+ type: 'book_change',
104
+ symbol: message.s.toUpperCase(),
105
+ exchange: 'gemini',
106
+ isSnapshot: this.isSnapshot(message.s),
107
+ bids: message.b.map(this.mapBookLevel),
108
+ asks: message.a.map(this.mapBookLevel),
109
+ timestamp: fromMicroSecondsToDate(Math.floor(message.E / 1000)),
110
+ localTimestamp
111
+ };
112
+ }
113
+ isSnapshot(symbol) {
114
+ // With snapshot=-1 Gemini sends a full book as the first depthUpdate per symbol on a new connection.
115
+ // A historical replay started mid-connection cannot distinguish that snapshot from a delta using the payload alone.
116
+ const isSnapshot = this.symbolsWithSnapshot.has(symbol) === false;
117
+ this.symbolsWithSnapshot.add(symbol);
118
+ return isSnapshot;
119
+ }
120
+ mapBookLevel([price, amount]) {
121
+ return { price: Number(price), amount: Number(amount) };
122
+ }
123
+ }
124
+ class GeminiV3BookTickerMapper {
125
+ canHandle(message) {
126
+ return 'B' in message;
127
+ }
128
+ getFilters(symbols) {
129
+ return [{ channel: 'bookTicker', symbols: upperCaseSymbols(symbols) }];
130
+ }
131
+ *map(message, localTimestamp) {
132
+ yield {
133
+ type: 'book_ticker',
134
+ symbol: message.s.toUpperCase(),
135
+ exchange: 'gemini',
136
+ askAmount: asNonZeroNumberOrUndefined(message.A),
137
+ askPrice: asNonZeroNumberOrUndefined(message.a),
138
+ bidAmount: asNonZeroNumberOrUndefined(message.B),
139
+ bidPrice: asNonZeroNumberOrUndefined(message.b),
140
+ timestamp: fromMicroSecondsToDate(Math.floor(message.E / 1000)),
141
+ localTimestamp
142
+ };
143
+ }
144
+ }
68
145
  //# sourceMappingURL=gemini.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/mappers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,+DAA+D;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;IAC3C,MAAM,EAAE;QACN,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB;QAChC,WAAW,EAAE,GAAG,EAAE,CAAC,sBAAsB;KAC1C;CACF,CAAC,CAAA;AAEF,MAAM,kBAAkB,GAA4B;IAClD,SAAS,CAAC,OAAsC;QAC9C,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO,CAAA;IACjC,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO;aACR;SACF,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,WAAwB,EAAE,cAAoB;QACjD,MAAM;YACJ,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,QAAQ;YAClB,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;YAChC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;YAChC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;YACpC,IAAI,EAAE,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC3F,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;YAC1C,cAAc,EAAE,cAAc;SAC/B,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAiC;IAC3D,SAAS,CAAC,OAAsC;QAC9C,OAAO,OAAO,CAAC,IAAI,KAAK,YAAY,CAAA;IACtC,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,YAAY;gBACrB,OAAO;aACR;SACF,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,eAAgC,EAAE,cAAoB;QACzD,MAAM;YACJ,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,eAAe,CAAC,cAAc,KAAK,SAAS;YACxD,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;YAC7E,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;YAE9E,SAAS,EAAE,cAAc;YACzB,cAAc;SACf,CAAA;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/mappers/gemini.ts"],"names":[],"mappings":"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"}
@@ -740,7 +740,7 @@ export declare const normalizeBookTickers: Normalizer<{
740
740
  } & {
741
741
  'gate-io-futures': import("./registry.ts").MapperCreator<"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" | "bullish" | "mexc" | "polymarket", BookTicker>;
742
742
  } & {
743
- gemini: never;
743
+ gemini: import("./registry.ts").MapperCreator<"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" | "bullish" | "mexc" | "polymarket", BookTicker>;
744
744
  } & {
745
745
  hitbtc: never;
746
746
  } & {
@@ -2,6 +2,7 @@ import { Filter } from '../types.ts';
2
2
  import { RealTimeFeedBase } from './realtimefeed.ts';
3
3
  export declare class GeminiRealTimeFeed extends RealTimeFeedBase {
4
4
  protected wssURL: string;
5
+ private readonly channels;
5
6
  protected mapToSubscribeMessages(filters: Filter<string>[]): any[];
6
7
  protected messageIsError(message: any): boolean;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,SAAS,CAAC,MAAM,SAAuC;IAEvD,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IA2BlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;CAGhD"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,SAAS,CAAC,MAAM,SAAoC;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IAErE,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IA2BlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;CAGhD"}
@@ -1,32 +1,32 @@
1
1
  import { RealTimeFeedBase } from "./realtimefeed.js";
2
2
  export class GeminiRealTimeFeed extends RealTimeFeedBase {
3
- wssURL = 'wss://api.gemini.com/v2/marketdata';
3
+ wssURL = 'wss://ws.gemini.com?snapshot=-1';
4
+ channels = new Set(['trade', 'depth', 'bookTicker']);
4
5
  mapToSubscribeMessages(filters) {
5
- const symbols = filters
6
- .map((filter) => {
7
- if (!filter.symbols || filter.symbols.length === 0) {
6
+ const params = filters
7
+ .flatMap((filter) => {
8
+ if (!this.channels.has(filter.channel)) {
9
+ throw new Error(`GeminiRealTimeFeed unsupported channel ${filter.channel}`);
10
+ }
11
+ if (!Array.isArray(filter.symbols) || filter.symbols.length === 0) {
8
12
  throw new Error('GeminiRealTimeFeed requires explicitly specified symbols when subscribing to live feed');
9
13
  }
10
- return filter.symbols;
14
+ const channel = filter.channel === 'depth' ? 'depth@100ms' : filter.channel;
15
+ return filter.symbols.map((symbol) => `${symbol.toLowerCase()}@${channel}`);
11
16
  })
12
- .flatMap((s) => s)
13
17
  .filter((value, index, self) => {
14
18
  return self.indexOf(value) === index;
15
19
  });
16
20
  return [
17
21
  {
18
- type: 'subscribe',
19
- subscriptions: [
20
- {
21
- name: 'l2',
22
- symbols
23
- }
24
- ]
22
+ method: 'SUBSCRIBE',
23
+ params,
24
+ id: 1
25
25
  }
26
26
  ];
27
27
  }
28
28
  messageIsError(message) {
29
- return message.result === 'error';
29
+ return message.result === 'error' || message.error !== undefined || message.status >= 400;
30
30
  }
31
31
  }
32
32
  //# sourceMappingURL=gemini.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/realtimefeeds/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IAC5C,MAAM,GAAG,oCAAoC,CAAA;IAE7C,sBAAsB,CAAC,OAAyB;QACxD,MAAM,OAAO,GAAG,OAAO;aACpB,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,wFAAwF,CAAC,CAAA;YAC3G,CAAC;YAED,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACjB,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;QACtC,CAAC,CAAC,CAAA;QAEJ,OAAO;YACL;gBACE,IAAI,EAAE,WAAW;gBACjB,aAAa,EAAE;oBACb;wBACE,IAAI,EAAE,IAAI;wBACV,OAAO;qBACR;iBACF;aACF;SACF,CAAA;IACH,CAAC;IAES,cAAc,CAAC,OAAY;QACnC,OAAO,OAAO,CAAC,MAAM,KAAK,OAAO,CAAA;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/realtimefeeds/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IAC5C,MAAM,GAAG,iCAAiC,CAAA;IACnC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAE3D,sBAAsB,CAAC,OAAyB;QACxD,MAAM,MAAM,GAAG,OAAO;aACnB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;YAC7E,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;YAC3G,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;YAC3E,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC,CAAA;QAC7E,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;QACtC,CAAC,CAAC,CAAA;QAEJ,OAAO;YACL;gBACE,MAAM,EAAE,WAAW;gBACnB,MAAM;gBACN,EAAE,EAAE,CAAC;aACN;SACF,CAAA;IACH,CAAC;IAES,cAAc,CAAC,OAAY;QACnC,OAAO,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,CAAA;IAC3F,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tardis-dev",
3
- "version": "17.0.0",
3
+ "version": "17.1.0",
4
4
  "engines": {
5
5
  "node": ">=25"
6
6
  },
@@ -69,32 +69,29 @@
69
69
  "license": "MPL-2.0",
70
70
  "dependencies": {
71
71
  "bintrees": "^1.0.2",
72
- "debug": "^4.3.3",
73
- "follow-redirects": "^1.15.9",
72
+ "debug": "^4.4.3",
73
+ "follow-redirects": "^1.16.0",
74
74
  "https-proxy-agent": "^8.0.0",
75
- "p-map": "^7.0.4",
76
- "protobufjs": "^8.6.2",
75
+ "p-map": "^7.0.5",
76
+ "protobufjs": "^8.7.1",
77
77
  "socks-proxy-agent": "^9.0.0",
78
- "ws": "^8.18.3"
78
+ "ws": "^8.21.1"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@types/bintrees": "^1.0.6",
82
- "@types/debug": "^4.1.7",
82
+ "@types/debug": "^4.1.13",
83
83
  "@types/follow-redirects": "^1.14.4",
84
- "@types/jest": "^29.0.0",
85
- "@types/node": "^25.5.2",
84
+ "@types/jest": "^29.5.14",
85
+ "@types/node": "^26.1.1",
86
86
  "@types/ws": "^8.18.1",
87
- "jest": "^29.0.0",
88
- "lint-staged": "^12.1.3",
89
- "prettier": "^3.8.3",
90
- "ts-jest": "^29.4.0",
91
- "typescript": "^5.9.3"
87
+ "jest": "^29.7.0",
88
+ "lint-staged": "^16.4.0",
89
+ "prettier": "3.8.3",
90
+ "ts-jest": "^29.4.11",
91
+ "typescript": "^6.0.3"
92
92
  },
93
93
  "lint-staged": {
94
- "*.{ts}": [
95
- "prettier --write",
96
- "git add"
97
- ]
94
+ "*.ts": "prettier --write"
98
95
  },
99
96
  "jest": {
100
97
  "extensionsToTreatAsEsm": [
package/src/consts.ts CHANGED
@@ -292,7 +292,7 @@ const FTX_CHANNELS = [
292
292
  'busy'
293
293
  ] as const
294
294
 
295
- const GEMINI_CHANNELS = ['trade', 'l2_updates', 'auction_open', 'auction_indicative', 'auction_result'] as const
295
+ const GEMINI_CHANNELS = ['trade', 'l2_updates', 'auction_open', 'auction_indicative', 'auction_result', 'depth', 'bookTicker'] as const
296
296
 
297
297
  const BITFLYER_CHANNELS = ['lightning_executions', 'lightning_board_snapshot', 'lightning_board', 'lightning_ticker'] as const
298
298
 
@@ -1,14 +1,18 @@
1
- import { upperCaseSymbols } from '../handy.ts'
2
- import { BookChange, Trade } from '../types.ts'
1
+ import { asNonZeroNumberOrUndefined, fromMicroSecondsToDate, upperCaseSymbols } from '../handy.ts'
2
+ import { BookChange, BookTicker, Trade } from '../types.ts'
3
3
  import { Mapper } from './mapper.ts'
4
- import { exchangeMappers } from './registry.ts'
4
+ import { exchangeMappers, mapper } from './registry.ts'
5
5
 
6
- // https://docs.gemini.com/websocket-api/#market-data-version-2
6
+ const GEMINI_V3_API_SWITCH_DATE = new Date('2026-07-24T00:00:00.000Z')
7
7
 
8
8
  export const geminiMappers = exchangeMappers({
9
9
  gemini: {
10
- trades: () => geminiTradesMapper,
11
- bookChanges: () => geminiBookChangeMapper
10
+ trades: mapper([{ until: GEMINI_V3_API_SWITCH_DATE, use: () => geminiTradesMapper }, { use: () => new GeminiV3TradesMapper() }]),
11
+ bookChanges: mapper([
12
+ { until: GEMINI_V3_API_SWITCH_DATE, use: () => geminiBookChangeMapper },
13
+ { use: () => new GeminiV3BookChangeMapper() }
14
+ ]),
15
+ bookTickers: () => new GeminiV3BookTickerMapper()
12
16
  }
13
17
  })
14
18
 
@@ -87,7 +91,7 @@ type GeminiL2Updates = {
87
91
  type: 'l2_updates'
88
92
  symbol: string
89
93
  changes: GeminiBookLevel[]
90
- auction_events: any[]
94
+ auction_events?: any[]
91
95
  }
92
96
 
93
97
  type GeminiTrade = {
@@ -97,5 +101,125 @@ type GeminiTrade = {
97
101
  timestamp: number
98
102
  price: string
99
103
  quantity: string
100
- side: 'sell' | 'buy'
104
+ side: 'sell' | 'buy' | 'block'
105
+ }
106
+
107
+ class GeminiV3TradesMapper implements Mapper<'gemini', Trade> {
108
+ canHandle(message: GeminiV3Trade | GeminiV3BookTicker | GeminiV3DepthUpdate) {
109
+ return 't' in message
110
+ }
111
+
112
+ getFilters(symbols?: string[]) {
113
+ return [{ channel: 'trade', symbols: upperCaseSymbols(symbols) } as const]
114
+ }
115
+
116
+ *map(message: GeminiV3Trade, localTimestamp: Date): IterableIterator<Trade> {
117
+ yield {
118
+ type: 'trade',
119
+ symbol: message.s.toUpperCase(),
120
+ exchange: 'gemini',
121
+ id: message.t.toString(),
122
+ price: Number(message.p),
123
+ amount: Number(message.q),
124
+ side: message.m ? 'sell' : 'buy',
125
+ timestamp: fromMicroSecondsToDate(Math.floor(message.E / 1000)),
126
+ localTimestamp
127
+ }
128
+ }
129
+ }
130
+
131
+ class GeminiV3BookChangeMapper implements Mapper<'gemini', BookChange> {
132
+ private readonly symbolsWithSnapshot = new Set<string>()
133
+
134
+ canHandle(message: GeminiV3DepthUpdate) {
135
+ return message.e === 'depthUpdate'
136
+ }
137
+
138
+ getFilters(symbols?: string[]) {
139
+ return [{ channel: 'depth', symbols: upperCaseSymbols(symbols) } as const]
140
+ }
141
+
142
+ *map(message: GeminiV3DepthUpdate, localTimestamp: Date): IterableIterator<BookChange> {
143
+ yield {
144
+ type: 'book_change',
145
+ symbol: message.s.toUpperCase(),
146
+ exchange: 'gemini',
147
+ isSnapshot: this.isSnapshot(message.s),
148
+ bids: message.b.map(this.mapBookLevel),
149
+ asks: message.a.map(this.mapBookLevel),
150
+ timestamp: fromMicroSecondsToDate(Math.floor(message.E / 1000)),
151
+ localTimestamp
152
+ }
153
+ }
154
+
155
+ private isSnapshot(symbol: string) {
156
+ // With snapshot=-1 Gemini sends a full book as the first depthUpdate per symbol on a new connection.
157
+ // A historical replay started mid-connection cannot distinguish that snapshot from a delta using the payload alone.
158
+ const isSnapshot = this.symbolsWithSnapshot.has(symbol) === false
159
+ this.symbolsWithSnapshot.add(symbol)
160
+ return isSnapshot
161
+ }
162
+
163
+ private mapBookLevel([price, amount]: GeminiV3BookLevel) {
164
+ return { price: Number(price), amount: Number(amount) }
165
+ }
166
+ }
167
+
168
+ class GeminiV3BookTickerMapper implements Mapper<'gemini', BookTicker> {
169
+ canHandle(message: GeminiV3Trade | GeminiV3BookTicker | GeminiV3DepthUpdate) {
170
+ return 'B' in message
171
+ }
172
+
173
+ getFilters(symbols?: string[]) {
174
+ return [{ channel: 'bookTicker', symbols: upperCaseSymbols(symbols) } as const]
175
+ }
176
+
177
+ *map(message: GeminiV3BookTicker, localTimestamp: Date): IterableIterator<BookTicker> {
178
+ yield {
179
+ type: 'book_ticker',
180
+ symbol: message.s.toUpperCase(),
181
+ exchange: 'gemini',
182
+ askAmount: asNonZeroNumberOrUndefined(message.A),
183
+ askPrice: asNonZeroNumberOrUndefined(message.a),
184
+ bidAmount: asNonZeroNumberOrUndefined(message.B),
185
+ bidPrice: asNonZeroNumberOrUndefined(message.b),
186
+ timestamp: fromMicroSecondsToDate(Math.floor(message.E / 1000)),
187
+ localTimestamp
188
+ }
189
+ }
190
+ }
191
+
192
+ /** @see https://developer.gemini.com/websocket/streams#trade-stream */
193
+ type GeminiV3Trade = {
194
+ E: number
195
+ s: string
196
+ t: number
197
+ p: string
198
+ q: string
199
+ m: boolean
200
+ }
201
+
202
+ /** @see https://developer.gemini.com/websocket/streams#l2-differential-depth-streams */
203
+ type GeminiV3DepthUpdate = {
204
+ e: 'depthUpdate'
205
+ E: number
206
+ s: string
207
+ U: number
208
+ u: number
209
+ b: GeminiV3BookLevel[]
210
+ a: GeminiV3BookLevel[]
211
+ }
212
+ type GeminiV3BookLevel = [string, string]
213
+
214
+ /** @see https://developer.gemini.com/websocket/streams#book-ticker */
215
+ type GeminiV3BookTicker = {
216
+ u: number
217
+ E: number
218
+ s: string
219
+ b: string
220
+ B: string
221
+ a: string
222
+ A: string
223
+ c?: string
224
+ C?: string
101
225
  }
@@ -2,36 +2,37 @@ import { Filter } from '../types.ts'
2
2
  import { RealTimeFeedBase } from './realtimefeed.ts'
3
3
 
4
4
  export class GeminiRealTimeFeed extends RealTimeFeedBase {
5
- protected wssURL = 'wss://api.gemini.com/v2/marketdata'
5
+ protected wssURL = 'wss://ws.gemini.com?snapshot=-1'
6
+ private readonly channels = new Set(['trade', 'depth', 'bookTicker'])
6
7
 
7
8
  protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {
8
- const symbols = filters
9
- .map((filter) => {
10
- if (!filter.symbols || filter.symbols.length === 0) {
9
+ const params = filters
10
+ .flatMap((filter) => {
11
+ if (!this.channels.has(filter.channel)) {
12
+ throw new Error(`GeminiRealTimeFeed unsupported channel ${filter.channel}`)
13
+ }
14
+
15
+ if (!Array.isArray(filter.symbols) || filter.symbols.length === 0) {
11
16
  throw new Error('GeminiRealTimeFeed requires explicitly specified symbols when subscribing to live feed')
12
17
  }
13
18
 
14
- return filter.symbols
19
+ const channel = filter.channel === 'depth' ? 'depth@100ms' : filter.channel
20
+ return filter.symbols.map((symbol) => `${symbol.toLowerCase()}@${channel}`)
15
21
  })
16
- .flatMap((s) => s)
17
22
  .filter((value, index, self) => {
18
23
  return self.indexOf(value) === index
19
24
  })
20
25
 
21
26
  return [
22
27
  {
23
- type: 'subscribe',
24
- subscriptions: [
25
- {
26
- name: 'l2',
27
- symbols
28
- }
29
- ]
28
+ method: 'SUBSCRIBE',
29
+ params,
30
+ id: 1
30
31
  }
31
32
  ]
32
33
  }
33
34
 
34
35
  protected messageIsError(message: any): boolean {
35
- return message.result === 'error'
36
+ return message.result === 'error' || message.error !== undefined || message.status >= 400
36
37
  }
37
38
  }