tardis-dev 13.4.7 → 13.4.8

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.
@@ -62,7 +62,7 @@ export declare class BybitLiquidationsMapper implements Mapper<'bybit', Liquidat
62
62
  declare type BybitDataMessage = {
63
63
  topic: string;
64
64
  };
65
- declare type BybitTradeDataMessage = BybitDataMessage & {
65
+ declare type BybitTradeDataMessage = (BybitDataMessage & {
66
66
  data: {
67
67
  timestamp: string;
68
68
  trade_time_ms?: number | string;
@@ -72,6 +72,20 @@ declare type BybitTradeDataMessage = BybitDataMessage & {
72
72
  price: number | string;
73
73
  trade_id: string;
74
74
  }[];
75
+ }) | {
76
+ topic: 'trade.BTCPERP';
77
+ data: [
78
+ {
79
+ symbol: 'BTCPERP';
80
+ tickDirection: 'PlusTick';
81
+ price: '21213.00';
82
+ size: 0.007;
83
+ timestamp: '2022-06-21T09:36:58.000Z';
84
+ tradeTimeMs: '1655804218524';
85
+ side: 'Sell';
86
+ tradeId: '7aad7741-f763-5f78-bf43-c38b29a40f67';
87
+ }
88
+ ];
75
89
  };
76
90
  declare type BybitBookLevel = {
77
91
  price: string;
@@ -82,8 +96,11 @@ declare type BybitBookSnapshotDataMessage = BybitDataMessage & {
82
96
  type: 'snapshot';
83
97
  data: BybitBookLevel[] | {
84
98
  order_book: BybitBookLevel[];
99
+ } | {
100
+ orderBook: BybitBookLevel[];
85
101
  };
86
102
  timestamp_e6: number | string;
103
+ timestampE6: number | string;
87
104
  };
88
105
  declare type BybitBookSnapshotUpdateMessage = BybitDataMessage & {
89
106
  type: 'delta';
@@ -93,6 +110,7 @@ declare type BybitBookSnapshotUpdateMessage = BybitDataMessage & {
93
110
  insert: BybitBookLevel[];
94
111
  };
95
112
  timestamp_e6: number | string;
113
+ timestampE6: number | string;
96
114
  };
97
115
  declare type BybitInstrumentUpdate = {
98
116
  symbol: string;
@@ -108,9 +126,43 @@ declare type BybitInstrumentUpdate = {
108
126
  last_price_e4?: string;
109
127
  last_price?: string;
110
128
  updated_at: string;
129
+ lastPriceE4: '212130000';
130
+ lastPrice: '21213.00';
131
+ lastTickDirection: 'PlusTick';
132
+ prevPrice24hE4: '207180000';
133
+ prevPrice24h: '20718.00';
134
+ price24hPcntE6: '23892';
135
+ highPrice24hE4: '214085000';
136
+ highPrice24h: '21408.50';
137
+ lowPrice24hE4: '198005000';
138
+ lowPrice24h: '19800.50';
139
+ prevPrice1hE4: '213315000';
140
+ prevPrice1h: '21331.50';
141
+ price1hPcntE6: '-5555';
142
+ markPriceE4: '212094700';
143
+ markPrice: '21209.47';
144
+ indexPriceE4: '212247200';
145
+ indexPrice: '21224.72';
146
+ openInterestE8: '18317600000';
147
+ totalTurnoverE8: '94568739311650000';
148
+ turnover24hE8: '1375880657550000';
149
+ totalVolumeE8: '2734659400000';
150
+ volume24hE8: '66536799999';
151
+ fundingRateE6: '-900';
152
+ predictedFundingRateE6: '-614';
153
+ crossSeq: '385207672';
154
+ createdAt: '1970-01-01T00:00:00.000Z';
155
+ updatedAt: '2022-06-21T09:36:58.000Z';
156
+ nextFundingTime: '2022-06-21T16:00:00Z';
157
+ countDownHour: '7';
158
+ bid1PriceE4: '212130000';
159
+ bid1Price: '21213.00';
160
+ ask1PriceE4: '212135000';
161
+ ask1Price: '21213.50';
111
162
  };
112
163
  declare type BybitInstrumentDataMessage = BybitDataMessage & {
113
164
  timestamp_e6: string;
165
+ timestampE6: string;
114
166
  data: BybitInstrumentUpdate | {
115
167
  update: [BybitInstrumentUpdate];
116
168
  };
@@ -1 +1 @@
1
- {"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/mappers/bybit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/mappers/bybit.ts"],"names":[],"mappings":"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"}
@@ -25,12 +25,16 @@ class BybitTradesMapper {
25
25
  }
26
26
  *map(message, localTimestamp) {
27
27
  for (const trade of message.data) {
28
- const timestamp = trade.trade_time_ms !== undefined ? new Date(Number(trade.trade_time_ms)) : new Date(trade.timestamp);
28
+ const timestamp = 'trade_time_ms' in trade
29
+ ? new Date(Number(trade.trade_time_ms))
30
+ : 'tradeTimeMs' in trade
31
+ ? new Date(Number(trade.tradeTimeMs))
32
+ : new Date(trade.timestamp);
29
33
  yield {
30
34
  type: 'trade',
31
35
  symbol: trade.symbol,
32
36
  exchange: this._exchange,
33
- id: trade.trade_id,
37
+ id: 'trade_id' in trade ? trade.trade_id : trade.tradeId,
34
38
  price: Number(trade.price),
35
39
  amount: trade.size,
36
40
  side: trade.side == 'Buy' ? 'buy' : trade.side === 'Sell' ? 'sell' : 'unknown',
@@ -80,9 +84,13 @@ class BybitBookChangeMapper {
80
84
  const data = message.type === 'snapshot'
81
85
  ? 'order_book' in message.data
82
86
  ? message.data.order_book
83
- : message.data
87
+ : 'orderBook' in message.data
88
+ ? message.data.orderBook
89
+ : message.data
84
90
  : [...message.data.delete, ...message.data.update, ...message.data.insert];
85
- const timestampBybit = Number(message.timestamp_e6);
91
+ // TODO: test instrument info
92
+ // TODO: test liquidations?
93
+ const timestampBybit = message.timestamp_e6 !== undefined ? Number(message.timestamp_e6) : Number(message.timestampE6);
86
94
  const timestamp = new Date(timestampBybit / 1000);
87
95
  timestamp.μs = timestampBybit % 1000;
88
96
  yield {
@@ -123,41 +131,69 @@ class BybitDerivativeTickerMapper {
123
131
  *map(message, localTimestamp) {
124
132
  const instrumentInfo = 'symbol' in message.data ? message.data : message.data.update[0];
125
133
  const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(instrumentInfo.symbol, 'bybit');
126
- pendingTickerInfo.updateFundingRate(instrumentInfo.funding_rate_e6 !== undefined ? Number(instrumentInfo.funding_rate_e6) / 1000000 : undefined);
127
- pendingTickerInfo.updatePredictedFundingRate(instrumentInfo.predicted_funding_rate_e6 !== undefined ? instrumentInfo.predicted_funding_rate_e6 / 1000000 : undefined);
128
- pendingTickerInfo.updateFundingTimestamp(instrumentInfo.next_funding_time !== undefined && new Date(instrumentInfo.next_funding_time).valueOf() > 0
129
- ? new Date(instrumentInfo.next_funding_time)
130
- : undefined);
134
+ const fundingRate = 'funding_rate_e6' in instrumentInfo ? instrumentInfo.funding_rate_e6 : instrumentInfo.fundingRateE6;
135
+ pendingTickerInfo.updateFundingRate(fundingRate !== undefined ? Number(fundingRate) / 1000000 : undefined);
136
+ const predictedFundingRate = 'predicted_funding_rate_e6' in instrumentInfo ? instrumentInfo.predicted_funding_rate_e6 : instrumentInfo.predictedFundingRateE6;
137
+ pendingTickerInfo.updatePredictedFundingRate(predictedFundingRate !== undefined ? Number(predictedFundingRate) / 1000000 : undefined);
138
+ const nextFundingTime = 'next_funding_time' in instrumentInfo ? instrumentInfo.next_funding_time : instrumentInfo.nextFundingTime;
139
+ pendingTickerInfo.updateFundingTimestamp(nextFundingTime !== undefined && new Date(nextFundingTime).valueOf() > 0 ? new Date(nextFundingTime) : undefined);
131
140
  if (instrumentInfo.index_price !== undefined) {
132
141
  pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.index_price));
133
142
  }
143
+ else if (instrumentInfo.indexPrice !== undefined) {
144
+ pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.indexPrice));
145
+ }
134
146
  else if (instrumentInfo.index_price_e4 !== undefined) {
135
147
  pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.index_price_e4) / 10000);
136
148
  }
149
+ else if (instrumentInfo.indexPriceE4 !== undefined) {
150
+ pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.indexPriceE4) / 10000);
151
+ }
137
152
  if (instrumentInfo.mark_price !== undefined) {
138
153
  pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.mark_price));
139
154
  }
155
+ else if (instrumentInfo.markPrice !== undefined) {
156
+ pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.markPrice));
157
+ }
140
158
  else if (instrumentInfo.mark_price_e4 !== undefined) {
141
- pendingTickerInfo.updateMarkPrice(instrumentInfo.mark_price_e4 / 10000);
159
+ pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.mark_price_e4) / 10000);
160
+ }
161
+ else if (instrumentInfo.markPriceE4 !== undefined) {
162
+ pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.markPriceE4) / 10000);
142
163
  }
143
164
  if (instrumentInfo.open_interest !== undefined) {
144
165
  pendingTickerInfo.updateOpenInterest(instrumentInfo.open_interest);
145
166
  }
167
+ else if (instrumentInfo.openInterestE8 !== undefined) {
168
+ pendingTickerInfo.updateOpenInterest(Number(instrumentInfo.openInterestE8) / 100000000);
169
+ }
146
170
  else if (instrumentInfo.open_interest_e8 !== undefined) {
147
171
  pendingTickerInfo.updateOpenInterest(instrumentInfo.open_interest_e8 / 100000000);
148
172
  }
149
173
  if (instrumentInfo.last_price !== undefined) {
150
174
  pendingTickerInfo.updateLastPrice(Number(instrumentInfo.last_price));
151
175
  }
176
+ else if (instrumentInfo.lastPrice !== undefined) {
177
+ pendingTickerInfo.updateLastPrice(Number(instrumentInfo.lastPrice));
178
+ }
152
179
  else if (instrumentInfo.last_price_e4 !== undefined) {
153
180
  pendingTickerInfo.updateLastPrice(Number(instrumentInfo.last_price_e4) / 10000);
154
181
  }
182
+ else if (instrumentInfo.lastPriceE4) {
183
+ pendingTickerInfo.updateLastPrice(Number(instrumentInfo.lastPriceE4) / 10000);
184
+ }
155
185
  if (message.timestamp_e6 !== undefined) {
156
186
  const timestampBybit = Number(message.timestamp_e6);
157
187
  const timestamp = new Date(timestampBybit / 1000);
158
188
  timestamp.μs = timestampBybit % 1000;
159
189
  pendingTickerInfo.updateTimestamp(timestamp);
160
190
  }
191
+ else if (message.timestampE6 !== undefined) {
192
+ const timestampBybit = Number(message.timestampE6);
193
+ const timestamp = new Date(timestampBybit / 1000);
194
+ timestamp.μs = timestampBybit % 1000;
195
+ pendingTickerInfo.updateTimestamp(timestamp);
196
+ }
161
197
  else {
162
198
  pendingTickerInfo.updateTimestamp(new Date(instrumentInfo.updated_at));
163
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/mappers/bybit.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAE3C,qCAA0D;AAE1D,wFAAwF;AAExF,MAAa,iBAAiB;IAC5B,YAA6B,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAAG,CAAC;IACpD,SAAS,CAAC,OAAyB;QACjC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;YAC/B,OAAO,KAAK,CAAA;SACb;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAA8B,EAAE,cAAoB;QACvD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE;YAChC,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAEvH,MAAM;gBACJ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,EAAE,EAAE,KAAK,CAAC,QAAQ;gBAClB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC1B,MAAM,EAAE,KAAK,CAAC,IAAI;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC9E,SAAS;gBACT,cAAc;aACf,CAAA;SACF;IACH,CAAC;CACF;AAtCD,8CAsCC;AAED,MAAa,qBAAqB;IAChC,YAA+B,SAAmB,EAAmB,qBAA8B;QAApE,cAAS,GAAT,SAAS,CAAU;QAAmB,0BAAqB,GAArB,qBAAqB,CAAS;IAAG,CAAC;IAEvG,SAAS,CAAC,OAAyB;QACjC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;YAC/B,OAAO,KAAK,CAAA;SACb;QAED,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;SAClD;aAAM;YACL,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;SACnD;IACH,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;QAEnC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,OAAO;gBACL;oBACE,OAAO,EAAE,eAAe;oBACxB,OAAO;iBACC;aACX,CAAA;SACF;QAED,OAAO;YACL;gBACE,OAAO,EAAE,gBAAgB;gBACzB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAAsE,EAAE,cAAoB;QAC/F,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAChD,MAAM,IAAI,GACR,OAAO,CAAC,IAAI,KAAK,UAAU;YACzB,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI;gBAC5B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;gBACzB,CAAC,CAAC,OAAO,CAAC,IAAI;YAChB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9E,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;QACjD,SAAS,CAAC,EAAE,GAAG,cAAc,GAAG,IAAI,CAAA;QAEpC,MAAM;YACJ,IAAI,EAAE,aAAa;YACnB,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,UAAU,EAAE,OAAO,CAAC,IAAI,KAAK,UAAU;YACvC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;YAClE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;YACnE,SAAS;YACT,cAAc;SACN,CAAA;IACZ,CAAC;IAEO,aAAa,CAAC,KAAqB;QACzC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1F,CAAC;CACF;AAhED,sDAgEC;AAED,MAAa,2BAA2B;IAAxC;QACmB,4BAAuB,GAAG,IAAI,gCAAuB,EAAE,CAAA;IA2E1E,CAAC;IAzEC,SAAS,CAAC,OAAyB;QACjC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;YAC/B,OAAO,KAAK,CAAA;SACb;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IACrD,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAAmC,EAAE,cAAoB;QAC5D,MAAM,cAAc,GAAG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAEvF,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAE3G,iBAAiB,CAAC,iBAAiB,CACjC,cAAc,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAC5G,CAAA;QACD,iBAAiB,CAAC,0BAA0B,CAC1C,cAAc,CAAC,yBAAyB,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,yBAAyB,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CACxH,CAAA;QACD,iBAAiB,CAAC,sBAAsB,CACtC,cAAc,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;YACxG,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC;YAC5C,CAAC,CAAC,SAAS,CACd,CAAA;QAED,IAAI,cAAc,CAAC,WAAW,KAAK,SAAS,EAAE;YAC5C,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAA;SACvE;aAAM,IAAI,cAAc,CAAC,cAAc,KAAK,SAAS,EAAE;YACtD,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAA;SAClF;QAED,IAAI,cAAc,CAAC,UAAU,KAAK,SAAS,EAAE;YAC3C,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;SACrE;aAAM,IAAI,cAAc,CAAC,aAAa,KAAK,SAAS,EAAE;YACrD,iBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC,aAAa,GAAG,KAAK,CAAC,CAAA;SACxE;QAED,IAAI,cAAc,CAAC,aAAa,KAAK,SAAS,EAAE;YAC9C,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;SACnE;aAAM,IAAI,cAAc,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACxD,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAA;SAClF;QAED,IAAI,cAAc,CAAC,UAAU,KAAK,SAAS,EAAE;YAC3C,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;SACrE;aAAM,IAAI,cAAc,CAAC,aAAa,KAAK,SAAS,EAAE;YACrD,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAA;SAChF;QAED,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;YACtC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YACnD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;YACjD,SAAS,CAAC,EAAE,GAAG,cAAc,GAAG,IAAI,CAAA;YACpC,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;SAC7C;aAAM;YACL,iBAAiB,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;SACvE;QAED,IAAI,iBAAiB,CAAC,UAAU,EAAE,EAAE;YAClC,MAAM,iBAAiB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;SACpD;IACH,CAAC;CACF;AA5ED,kEA4EC;AAED,MAAa,uBAAuB;IAClC,YAA6B,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAAG,CAAC;IACpD,SAAS,CAAC,OAAyB;QACjC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;YAC/B,OAAO,KAAK,CAAA;SACb;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IACjD,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,aAAa;gBACtB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAAgE,EAAE,cAAoB;QACzF,6FAA6F;QAC7F,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,KAAK,MAAM,gBAAgB,IAAI,OAAO,CAAC,IAAI,EAAE;gBAC3C,MAAM,WAAW,GAAgB;oBAC/B,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,gBAAgB,CAAC,MAAM;oBAC/B,QAAQ,EAAE,IAAI,CAAC,SAAS;oBACxB,EAAE,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC/B,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;oBACrC,MAAM,EAAE,gBAAgB,CAAC,GAAG;oBAC5B,IAAI,EAAE,gBAAgB,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;oBACrD,SAAS,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBAC1C,cAAc;iBACf,CAAA;gBAED,MAAM,WAAW,CAAA;aAClB;SACF;aAAM;YACL,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAA;YACrC,MAAM,WAAW,GAAgB;gBAC/B,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,gBAAgB,CAAC,MAAM;gBAC/B,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBACrC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC;gBACpC,IAAI,EAAE,gBAAgB,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;gBACrD,SAAS,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBAC1C,cAAc;aACf,CAAA;YAED,MAAM,WAAW,CAAA;SAClB;IACH,CAAC;CACF;AAxDD,0DAwDC"}
1
+ {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/mappers/bybit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAA;AAElF,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,cAAM,qCAAsC,SAAQ,gBAAgB;IAClE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAG/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACzB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAMlC,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAkBlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;CAGhD"}
1
+ {"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAA;AAElF,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;IAmCtI,OAAO,CAAC,KAAK;CAgBd;AAED,cAAM,qCAAsC,SAAQ,gBAAgB;IAClE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAG/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACzB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAMlC,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAkBlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;CAGhD"}
@@ -5,13 +5,17 @@ const realtimefeed_1 = require("./realtimefeed");
5
5
  class BybitRealTimeDataFeed extends realtimefeed_1.MultiConnectionRealTimeFeedBase {
6
6
  *_getRealTimeFeeds(exchange, filters, timeoutIntervalMS, onError) {
7
7
  const linearContractsFilters = filters.reduce(this._only((s) => s.endsWith('USDT')), []);
8
- const inverseContractsFilters = filters.reduce(this._only((s) => s.endsWith('USDT') === false), []);
8
+ const inverseContractsFilters = filters.reduce(this._only((s) => s.endsWith('USDT') === false && s.endsWith('PERP') === false), []);
9
+ const usdcContracts = filters.reduce(this._only((s) => s.endsWith('PERP')), []);
9
10
  if (linearContractsFilters.length > 0) {
10
11
  yield new BybitSingleConnectionRealTimeDataFeed('realtime_public', exchange, linearContractsFilters, timeoutIntervalMS, onError);
11
12
  }
12
13
  if (inverseContractsFilters.length > 0) {
13
14
  yield new BybitSingleConnectionRealTimeDataFeed('realtime', exchange, inverseContractsFilters, timeoutIntervalMS, onError);
14
15
  }
16
+ if (usdcContracts.length > 0) {
17
+ yield new BybitSingleConnectionRealTimeDataFeed('perpetual/ws/v1/realtime_public', exchange, usdcContracts, timeoutIntervalMS, onError);
18
+ }
15
19
  }
16
20
  _only(filter) {
17
21
  return (prev, current) => {
@@ -1 +1 @@
1
- {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":";;;AACA,iDAAkF;AAElF,MAAa,qBAAsB,SAAQ,8CAA+B;IAC9D,CAAC,iBAAiB,CAAC,QAAgB,EAAE,OAAyB,EAAE,iBAA0B,EAAE,OAAgC;QACpI,MAAM,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAC3C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACrC,EAAsB,CACvB,CAAA;QAED,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,EAC/C,EAAsB,CACvB,CAAA;QAED,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,MAAM,IAAI,qCAAqC,CAAC,iBAAiB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;SACjI;QAED,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,MAAM,IAAI,qCAAqC,CAAC,UAAU,EAAE,QAAQ,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;SAC3H;IACH,CAAC;IAEO,KAAK,CAAC,MAAmC;QAC/C,OAAO,CAAC,IAAsB,EAAE,OAAuB,EAAE,EAAE;YACzD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACpD,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAA;aAC7G;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC;oBACR,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO;iBACR,CAAC,CAAA;aACH;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;IACH,CAAC;CACF;AArCD,sDAqCC;AAED,MAAM,qCAAsC,SAAQ,+BAAgB;IAGlE,YACE,WAAmB,EACnB,QAAgB,EAChB,OAAyB,EACzB,iBAA0B,EAC1B,OAAgC;QAEhC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,MAAM,GAAG,0BAA0B,WAAW,EAAE,CAAA;IACvD,CAAC;IAES,sBAAsB,CAAC,OAAyB;QACxD,MAAM,IAAI,GAAG,OAAO;aACjB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,OAAO,MAAM,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,KAAK,iBAAiB,IAAI,MAAM,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;gBACzG,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;YAC/C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEpB,OAAO;YACL;gBACE,EAAE,EAAE,WAAW;gBACf,IAAI;aACL;SACF,CAAA;IACH,CAAC;IAES,cAAc,CAAC,OAAY;QACnC,OAAO,OAAO,CAAC,OAAO,KAAK,KAAK,CAAA;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tardis-dev",
3
- "version": "13.4.7",
3
+ "version": "13.4.8",
4
4
  "engines": {
5
5
  "node": ">=12"
6
6
  },
@@ -27,13 +27,18 @@ export class BybitTradesMapper implements Mapper<'bybit', Trade> {
27
27
 
28
28
  *map(message: BybitTradeDataMessage, localTimestamp: Date): IterableIterator<Trade> {
29
29
  for (const trade of message.data) {
30
- const timestamp = trade.trade_time_ms !== undefined ? new Date(Number(trade.trade_time_ms)) : new Date(trade.timestamp)
30
+ const timestamp =
31
+ 'trade_time_ms' in trade
32
+ ? new Date(Number(trade.trade_time_ms))
33
+ : 'tradeTimeMs' in trade
34
+ ? new Date(Number(trade.tradeTimeMs))
35
+ : new Date(trade.timestamp)
31
36
 
32
37
  yield {
33
38
  type: 'trade',
34
39
  symbol: trade.symbol,
35
40
  exchange: this._exchange,
36
- id: trade.trade_id,
41
+ id: 'trade_id' in trade ? trade.trade_id : trade.tradeId,
37
42
  price: Number(trade.price),
38
43
  amount: trade.size,
39
44
  side: trade.side == 'Buy' ? 'buy' : trade.side === 'Sell' ? 'sell' : 'unknown',
@@ -86,10 +91,15 @@ export class BybitBookChangeMapper implements Mapper<'bybit', BookChange> {
86
91
  message.type === 'snapshot'
87
92
  ? 'order_book' in message.data
88
93
  ? message.data.order_book
94
+ : 'orderBook' in message.data
95
+ ? message.data.orderBook
89
96
  : message.data
90
97
  : [...message.data.delete, ...message.data.update, ...message.data.insert]
91
98
 
92
- const timestampBybit = Number(message.timestamp_e6)
99
+ // TODO: test instrument info
100
+ // TODO: test liquidations?
101
+
102
+ const timestampBybit = message.timestamp_e6 !== undefined ? Number(message.timestamp_e6) : Number(message.timestampE6)
93
103
  const timestamp = new Date(timestampBybit / 1000)
94
104
  timestamp.μs = timestampBybit % 1000
95
105
 
@@ -136,41 +146,56 @@ export class BybitDerivativeTickerMapper implements Mapper<'bybit', DerivativeTi
136
146
  const instrumentInfo = 'symbol' in message.data ? message.data : message.data.update[0]
137
147
 
138
148
  const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo(instrumentInfo.symbol, 'bybit')
149
+ const fundingRate = 'funding_rate_e6' in instrumentInfo ? instrumentInfo.funding_rate_e6 : instrumentInfo.fundingRateE6
139
150
 
140
- pendingTickerInfo.updateFundingRate(
141
- instrumentInfo.funding_rate_e6 !== undefined ? Number(instrumentInfo.funding_rate_e6) / 1000000 : undefined
142
- )
143
- pendingTickerInfo.updatePredictedFundingRate(
144
- instrumentInfo.predicted_funding_rate_e6 !== undefined ? instrumentInfo.predicted_funding_rate_e6 / 1000000 : undefined
145
- )
151
+ pendingTickerInfo.updateFundingRate(fundingRate !== undefined ? Number(fundingRate) / 1000000 : undefined)
152
+
153
+ const predictedFundingRate =
154
+ 'predicted_funding_rate_e6' in instrumentInfo ? instrumentInfo.predicted_funding_rate_e6 : instrumentInfo.predictedFundingRateE6
155
+
156
+ pendingTickerInfo.updatePredictedFundingRate(predictedFundingRate !== undefined ? Number(predictedFundingRate) / 1000000 : undefined)
157
+
158
+ const nextFundingTime = 'next_funding_time' in instrumentInfo ? instrumentInfo.next_funding_time : instrumentInfo.nextFundingTime
146
159
  pendingTickerInfo.updateFundingTimestamp(
147
- instrumentInfo.next_funding_time !== undefined && new Date(instrumentInfo.next_funding_time).valueOf() > 0
148
- ? new Date(instrumentInfo.next_funding_time)
149
- : undefined
160
+ nextFundingTime !== undefined && new Date(nextFundingTime).valueOf() > 0 ? new Date(nextFundingTime) : undefined
150
161
  )
151
162
 
152
163
  if (instrumentInfo.index_price !== undefined) {
153
164
  pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.index_price))
165
+ } else if (instrumentInfo.indexPrice !== undefined) {
166
+ pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.indexPrice))
154
167
  } else if (instrumentInfo.index_price_e4 !== undefined) {
155
168
  pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.index_price_e4) / 10000)
169
+ } else if (instrumentInfo.indexPriceE4 !== undefined) {
170
+ pendingTickerInfo.updateIndexPrice(Number(instrumentInfo.indexPriceE4) / 10000)
156
171
  }
157
172
 
158
173
  if (instrumentInfo.mark_price !== undefined) {
159
174
  pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.mark_price))
175
+ } else if (instrumentInfo.markPrice !== undefined) {
176
+ pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.markPrice))
160
177
  } else if (instrumentInfo.mark_price_e4 !== undefined) {
161
- pendingTickerInfo.updateMarkPrice(instrumentInfo.mark_price_e4 / 10000)
178
+ pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.mark_price_e4) / 10000)
179
+ } else if (instrumentInfo.markPriceE4 !== undefined) {
180
+ pendingTickerInfo.updateMarkPrice(Number(instrumentInfo.markPriceE4) / 10000)
162
181
  }
163
182
 
164
183
  if (instrumentInfo.open_interest !== undefined) {
165
184
  pendingTickerInfo.updateOpenInterest(instrumentInfo.open_interest)
185
+ } else if (instrumentInfo.openInterestE8 !== undefined) {
186
+ pendingTickerInfo.updateOpenInterest(Number(instrumentInfo.openInterestE8) / 100000000)
166
187
  } else if (instrumentInfo.open_interest_e8 !== undefined) {
167
188
  pendingTickerInfo.updateOpenInterest(instrumentInfo.open_interest_e8 / 100000000)
168
189
  }
169
190
 
170
191
  if (instrumentInfo.last_price !== undefined) {
171
192
  pendingTickerInfo.updateLastPrice(Number(instrumentInfo.last_price))
193
+ } else if (instrumentInfo.lastPrice !== undefined) {
194
+ pendingTickerInfo.updateLastPrice(Number(instrumentInfo.lastPrice))
172
195
  } else if (instrumentInfo.last_price_e4 !== undefined) {
173
196
  pendingTickerInfo.updateLastPrice(Number(instrumentInfo.last_price_e4) / 10000)
197
+ } else if (instrumentInfo.lastPriceE4) {
198
+ pendingTickerInfo.updateLastPrice(Number(instrumentInfo.lastPriceE4) / 10000)
174
199
  }
175
200
 
176
201
  if (message.timestamp_e6 !== undefined) {
@@ -178,6 +203,11 @@ export class BybitDerivativeTickerMapper implements Mapper<'bybit', DerivativeTi
178
203
  const timestamp = new Date(timestampBybit / 1000)
179
204
  timestamp.μs = timestampBybit % 1000
180
205
  pendingTickerInfo.updateTimestamp(timestamp)
206
+ } else if (message.timestampE6 !== undefined) {
207
+ const timestampBybit = Number(message.timestampE6)
208
+ const timestamp = new Date(timestampBybit / 1000)
209
+ timestamp.μs = timestampBybit % 1000
210
+ pendingTickerInfo.updateTimestamp(timestamp)
181
211
  } else {
182
212
  pendingTickerInfo.updateTimestamp(new Date(instrumentInfo.updated_at))
183
213
  }
@@ -250,17 +280,33 @@ type BybitDataMessage = {
250
280
  topic: string
251
281
  }
252
282
 
253
- type BybitTradeDataMessage = BybitDataMessage & {
254
- data: {
255
- timestamp: string
256
- trade_time_ms?: number | string
257
- symbol: string
258
- side: 'Buy' | 'Sell'
259
- size: number
260
- price: number | string
261
- trade_id: string
262
- }[]
263
- }
283
+ type BybitTradeDataMessage =
284
+ | (BybitDataMessage & {
285
+ data: {
286
+ timestamp: string
287
+ trade_time_ms?: number | string
288
+ symbol: string
289
+ side: 'Buy' | 'Sell'
290
+ size: number
291
+ price: number | string
292
+ trade_id: string
293
+ }[]
294
+ })
295
+ | {
296
+ topic: 'trade.BTCPERP'
297
+ data: [
298
+ {
299
+ symbol: 'BTCPERP'
300
+ tickDirection: 'PlusTick'
301
+ price: '21213.00'
302
+ size: 0.007
303
+ timestamp: '2022-06-21T09:36:58.000Z'
304
+ tradeTimeMs: '1655804218524'
305
+ side: 'Sell'
306
+ tradeId: '7aad7741-f763-5f78-bf43-c38b29a40f67'
307
+ }
308
+ ]
309
+ }
264
310
 
265
311
  type BybitBookLevel = {
266
312
  price: string
@@ -270,8 +316,9 @@ type BybitBookLevel = {
270
316
 
271
317
  type BybitBookSnapshotDataMessage = BybitDataMessage & {
272
318
  type: 'snapshot'
273
- data: BybitBookLevel[] | { order_book: BybitBookLevel[] }
319
+ data: BybitBookLevel[] | { order_book: BybitBookLevel[] } | { orderBook: BybitBookLevel[] }
274
320
  timestamp_e6: number | string
321
+ timestampE6: number | string
275
322
  }
276
323
 
277
324
  type BybitBookSnapshotUpdateMessage = BybitDataMessage & {
@@ -282,6 +329,7 @@ type BybitBookSnapshotUpdateMessage = BybitDataMessage & {
282
329
  insert: BybitBookLevel[]
283
330
  }
284
331
  timestamp_e6: number | string
332
+ timestampE6: number | string
285
333
  }
286
334
 
287
335
  type BybitInstrumentUpdate = {
@@ -298,16 +346,51 @@ type BybitInstrumentUpdate = {
298
346
  last_price_e4?: string
299
347
  last_price?: string
300
348
  updated_at: string
349
+ lastPriceE4: '212130000'
350
+ lastPrice: '21213.00'
351
+ lastTickDirection: 'PlusTick'
352
+ prevPrice24hE4: '207180000'
353
+ prevPrice24h: '20718.00'
354
+ price24hPcntE6: '23892'
355
+ highPrice24hE4: '214085000'
356
+ highPrice24h: '21408.50'
357
+ lowPrice24hE4: '198005000'
358
+ lowPrice24h: '19800.50'
359
+ prevPrice1hE4: '213315000'
360
+ prevPrice1h: '21331.50'
361
+ price1hPcntE6: '-5555'
362
+ markPriceE4: '212094700'
363
+ markPrice: '21209.47'
364
+ indexPriceE4: '212247200'
365
+ indexPrice: '21224.72'
366
+ openInterestE8: '18317600000'
367
+ totalTurnoverE8: '94568739311650000'
368
+ turnover24hE8: '1375880657550000'
369
+ totalVolumeE8: '2734659400000'
370
+ volume24hE8: '66536799999'
371
+ fundingRateE6: '-900'
372
+ predictedFundingRateE6: '-614'
373
+ crossSeq: '385207672'
374
+ createdAt: '1970-01-01T00:00:00.000Z'
375
+ updatedAt: '2022-06-21T09:36:58.000Z'
376
+ nextFundingTime: '2022-06-21T16:00:00Z'
377
+ countDownHour: '7'
378
+ bid1PriceE4: '212130000'
379
+ bid1Price: '21213.00'
380
+ ask1PriceE4: '212135000'
381
+ ask1Price: '21213.50'
301
382
  }
302
383
 
303
- type BybitInstrumentDataMessage = BybitDataMessage & {
304
- timestamp_e6: string
305
- data:
306
- | BybitInstrumentUpdate
307
- | {
308
- update: [BybitInstrumentUpdate]
309
- }
310
- }
384
+ type BybitInstrumentDataMessage =
385
+ | BybitDataMessage & {
386
+ timestamp_e6: string
387
+ timestampE6: string
388
+ data:
389
+ | BybitInstrumentUpdate
390
+ | {
391
+ update: [BybitInstrumentUpdate]
392
+ }
393
+ }
311
394
 
312
395
  type BybitLiquidationMessage = BybitDataMessage & {
313
396
  generated: true
@@ -9,7 +9,12 @@ export class BybitRealTimeDataFeed extends MultiConnectionRealTimeFeedBase {
9
9
  )
10
10
 
11
11
  const inverseContractsFilters = filters.reduce(
12
- this._only((s) => s.endsWith('USDT') === false),
12
+ this._only((s) => s.endsWith('USDT') === false && s.endsWith('PERP') === false),
13
+ [] as Filter<string>[]
14
+ )
15
+
16
+ const usdcContracts = filters.reduce(
17
+ this._only((s) => s.endsWith('PERP')),
13
18
  [] as Filter<string>[]
14
19
  )
15
20
 
@@ -20,6 +25,16 @@ export class BybitRealTimeDataFeed extends MultiConnectionRealTimeFeedBase {
20
25
  if (inverseContractsFilters.length > 0) {
21
26
  yield new BybitSingleConnectionRealTimeDataFeed('realtime', exchange, inverseContractsFilters, timeoutIntervalMS, onError)
22
27
  }
28
+
29
+ if (usdcContracts.length > 0) {
30
+ yield new BybitSingleConnectionRealTimeDataFeed(
31
+ 'perpetual/ws/v1/realtime_public',
32
+ exchange,
33
+ usdcContracts,
34
+ timeoutIntervalMS,
35
+ onError
36
+ )
37
+ }
23
38
  }
24
39
 
25
40
  private _only(filter: (symbol: string) => boolean) {