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.
- package/dist/mappers/bybit.d.ts +53 -1
- package/dist/mappers/bybit.d.ts.map +1 -1
- package/dist/mappers/bybit.js +46 -10
- package/dist/mappers/bybit.js.map +1 -1
- package/dist/realtimefeeds/bybit.d.ts.map +1 -1
- package/dist/realtimefeeds/bybit.js +5 -1
- package/dist/realtimefeeds/bybit.js.map +1 -1
- package/package.json +1 -1
- package/src/mappers/bybit.ts +116 -33
- package/src/realtimefeeds/bybit.ts +16 -1
package/dist/mappers/bybit.d.ts
CHANGED
|
@@ -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":"AACA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrF,OAAO,EAAE,MAAM,EAA2B,MAAM,UAAU,CAAA;AAI1D,qBAAa,iBAAkB,YAAW,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,QAAQ;IAChD,SAAS,CAAC,OAAO,EAAE,gBAAgB;IAQnC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;;;;IAW5B,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/mappers/bybit.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers/bybit.js
CHANGED
|
@@ -25,12 +25,16 @@ class BybitTradesMapper {
|
|
|
25
25
|
}
|
|
26
26
|
*map(message, localTimestamp) {
|
|
27
27
|
for (const trade of message.data) {
|
|
28
|
-
const 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
|
-
|
|
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
|
-
|
|
127
|
-
pendingTickerInfo.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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,
|
|
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;
|
|
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/
|
|
1
|
+
{"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/realtimefeeds/bybit.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/mappers/bybit.ts
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
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
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
|
|
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 =
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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 =
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
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) {
|