@lifi/perps-sdk-provider-hyperliquid 1.0.1 → 1.2.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/cjs/services/getAccount.js +1 -1
  2. package/dist/cjs/services/getAccount.js.map +1 -1
  3. package/dist/cjs/types/asset.d.ts +0 -1
  4. package/dist/cjs/types/asset.d.ts.map +1 -1
  5. package/dist/cjs/types/ws.d.ts +50 -4
  6. package/dist/cjs/types/ws.d.ts.map +1 -1
  7. package/dist/cjs/utils/decodeFastAssetCtxs.d.ts +4 -0
  8. package/dist/cjs/utils/decodeFastAssetCtxs.d.ts.map +1 -0
  9. package/dist/cjs/utils/decodeFastAssetCtxs.js +16 -0
  10. package/dist/cjs/utils/decodeFastAssetCtxs.js.map +1 -0
  11. package/dist/cjs/utils/index.d.ts +2 -1
  12. package/dist/cjs/utils/index.d.ts.map +1 -1
  13. package/dist/cjs/utils/index.js +6 -3
  14. package/dist/cjs/utils/index.js.map +1 -1
  15. package/dist/cjs/utils/mapMarketContext.d.ts +4 -0
  16. package/dist/cjs/utils/mapMarketContext.d.ts.map +1 -0
  17. package/dist/cjs/utils/mapMarketContext.js +23 -0
  18. package/dist/cjs/utils/mapMarketContext.js.map +1 -0
  19. package/dist/cjs/websocket/HyperliquidWsProvider.d.ts +21 -5
  20. package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  21. package/dist/cjs/websocket/HyperliquidWsProvider.js +291 -60
  22. package/dist/cjs/websocket/HyperliquidWsProvider.js.map +1 -1
  23. package/dist/esm/services/getAccount.js +2 -2
  24. package/dist/esm/services/getAccount.js.map +1 -1
  25. package/dist/esm/types/asset.d.ts +0 -2
  26. package/dist/esm/types/asset.d.ts.map +1 -1
  27. package/dist/esm/types/ws.d.ts +71 -5
  28. package/dist/esm/types/ws.d.ts.map +1 -1
  29. package/dist/esm/utils/decodeFastAssetCtxs.d.ts +12 -0
  30. package/dist/esm/utils/decodeFastAssetCtxs.d.ts.map +1 -0
  31. package/dist/esm/utils/decodeFastAssetCtxs.js +20 -0
  32. package/dist/esm/utils/decodeFastAssetCtxs.js.map +1 -0
  33. package/dist/esm/utils/index.d.ts +2 -1
  34. package/dist/esm/utils/index.d.ts.map +1 -1
  35. package/dist/esm/utils/index.js +2 -1
  36. package/dist/esm/utils/index.js.map +1 -1
  37. package/dist/esm/utils/mapMarket.d.ts +2 -2
  38. package/dist/esm/utils/mapMarket.js +2 -2
  39. package/dist/esm/utils/mapMarketContext.d.ts +10 -0
  40. package/dist/esm/utils/mapMarketContext.d.ts.map +1 -0
  41. package/dist/esm/utils/mapMarketContext.js +25 -0
  42. package/dist/esm/utils/mapMarketContext.js.map +1 -0
  43. package/dist/esm/websocket/HyperliquidWsProvider.d.ts +45 -13
  44. package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  45. package/dist/esm/websocket/HyperliquidWsProvider.js +331 -76
  46. package/dist/esm/websocket/HyperliquidWsProvider.js.map +1 -1
  47. package/dist/types/types/asset.d.ts +0 -2
  48. package/dist/types/types/asset.d.ts.map +1 -1
  49. package/dist/types/types/ws.d.ts +71 -5
  50. package/dist/types/types/ws.d.ts.map +1 -1
  51. package/dist/types/utils/decodeFastAssetCtxs.d.ts +12 -0
  52. package/dist/types/utils/decodeFastAssetCtxs.d.ts.map +1 -0
  53. package/dist/types/utils/index.d.ts +2 -1
  54. package/dist/types/utils/index.d.ts.map +1 -1
  55. package/dist/types/utils/mapMarket.d.ts +2 -2
  56. package/dist/types/utils/mapMarketContext.d.ts +10 -0
  57. package/dist/types/utils/mapMarketContext.d.ts.map +1 -0
  58. package/dist/types/websocket/HyperliquidWsProvider.d.ts +45 -13
  59. package/dist/types/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  60. package/package.json +5 -5
  61. package/src/services/getAccount.ts +2 -2
  62. package/src/types/asset.ts +0 -3
  63. package/src/types/ws.ts +71 -5
  64. package/src/utils/decodeFastAssetCtxs.ts +24 -0
  65. package/src/utils/index.ts +5 -1
  66. package/src/utils/mapMarket.ts +2 -2
  67. package/src/utils/mapMarketContext.ts +33 -0
  68. package/src/websocket/HyperliquidWsProvider.ts +406 -86
  69. package/dist/cjs/utils/mapMarketPrice.d.ts +0 -4
  70. package/dist/cjs/utils/mapMarketPrice.d.ts.map +0 -1
  71. package/dist/cjs/utils/mapMarketPrice.js +0 -22
  72. package/dist/cjs/utils/mapMarketPrice.js.map +0 -1
  73. package/dist/esm/utils/mapMarketPrice.d.ts +0 -10
  74. package/dist/esm/utils/mapMarketPrice.d.ts.map +0 -1
  75. package/dist/esm/utils/mapMarketPrice.js +0 -24
  76. package/dist/esm/utils/mapMarketPrice.js.map +0 -1
  77. package/dist/types/utils/mapMarketPrice.d.ts +0 -10
  78. package/dist/types/utils/mapMarketPrice.d.ts.map +0 -1
  79. package/src/utils/mapMarketPrice.ts +0 -33
@@ -1,27 +1,23 @@
1
1
  import { getMarketRegistry, isActiveOrderStatus, ReconnectingWebSocket, resolveSubscribeQuote, WsProviderBase, wsLog, } from '@lifi/perps-sdk';
2
2
  import { OrderSide, OrderType, } from '@lifi/perps-types';
3
3
  import { HYPERLIQUID_FEE_TIER_FALLBACK } from '../constants.js';
4
- import { isOpenAssetPosition, isTriggerOrder, mapFill, mapOrderStatus, mapOrderType, mapPosition, priceStepToAggregation, spotAssetFromToken, spotBalance, spotPriceById, } from '../utils/index.js';
5
- /** HL's `l2Book` returns at most this many levels per side (slow/default mode). */
4
+ import { decodeCompressedJson, decodeFastAssetCtxs, isOpenAssetPosition, isTriggerOrder, mapFill, mapMarketContext, mapOrderStatus, mapOrderType, mapPosition, priceStepToAggregation, spotAssetFromToken, spotBalance, spotPriceById, } from '../utils/index.js';
5
+ /** HL's compact `l2` snapshot carries 20 levels per side. */
6
6
  const HL_L2_BOOK_MAX_LEVELS_PER_SIDE = 20;
7
7
  /**
8
8
  * `WsProviderFactory` constructor for Hyperliquid — pass to
9
9
  * `new PerpsWsClient(client, { wsProviders: { hyperliquid: hyperliquidWsProvider() } })`.
10
10
  *
11
- * Derives the active sub-DEX set from the `markets` list `PerpsWsClient`
12
- * passes in (the provider's own key and `'spot'` are excluded — they
13
- * aren't sub-DEX subscriptions on the HL wire). Higher-order shape mirrors
14
- * `lighterWsProvider(options)` so the two factories register identically.
11
+ * Higher-order shape mirrors `lighterWsProvider(options)` so the two factories
12
+ * register identically.
15
13
  *
16
14
  * @public
17
15
  */
18
- export const hyperliquidWsProvider = () => ({ provider, wsUrl, markets, client }) => {
19
- const subDexes = markets.filter((m) => m !== provider && m !== 'spot');
20
- return new HyperliquidWsProvider(wsUrl, provider, subDexes, client);
21
- };
16
+ export const hyperliquidWsProvider = () => ({ provider, wsUrl, client }) => new HyperliquidWsProvider(wsUrl, provider, client);
22
17
  /**
23
- * Hyperliquid realtime {@link WsProvider}: multiplexes prices, positions,
24
- * orders, fills and spot balances over a single {@link ReconnectingWebSocket}.
18
+ * Hyperliquid realtime {@link WsProvider}: multiplexes markets context,
19
+ * positions, orders, fills and spot balances over a single
20
+ * {@link ReconnectingWebSocket}.
25
21
  * Construct via {@link hyperliquidWsProvider}.
26
22
  *
27
23
  * `orderUpdates` supports a single address per provider instance: HL delivers
@@ -34,13 +30,22 @@ export const hyperliquidWsProvider = () => ({ provider, wsUrl, markets, client }
34
30
  */
35
31
  export class HyperliquidWsProvider extends WsProviderBase {
36
32
  orderUpdatesKey;
37
- subDexes;
38
33
  client;
39
34
  registry;
40
- midsBySubDex = new Map();
41
- constructor(wsUrl, providerKey, subDexes, client) {
35
+ perpCtxBySubDex = new Map();
36
+ orderbookKeysByMarketId = new Map();
37
+ latestOrderbookByMarketId = new Map();
38
+ // Latest mid/mark per `Market.id` from the high-frequency `fastAssetCtxs`
39
+ // feed (all dexes, incl. builder/sub-dex coins). Merged incrementally —
40
+ // frames carry only changed coins — and overlaid onto the slower
41
+ // `allDexsAssetCtxs` context (which supplies oracle/funding/OI/metadata).
42
+ fastCtxByMarketId = {};
43
+ // `fastAssetCtxs` payloads are base64 + raw-DEFLATE; decode is async, so
44
+ // chain decodes to apply incremental frames in arrival order.
45
+ fastDecodeChain = Promise.resolve();
46
+ orderbookDecodeChain = Promise.resolve();
47
+ constructor(wsUrl, providerKey, client) {
42
48
  super(new ReconnectingWebSocket(wsUrl, { pingPayload: '{"method":"ping"}' }), providerKey);
43
- this.subDexes = subDexes;
44
49
  this.client = client;
45
50
  this.registry = client && getMarketRegistry(client, providerKey);
46
51
  }
@@ -59,9 +64,11 @@ export class HyperliquidWsProvider extends WsProviderBase {
59
64
  this.claimOrderUpdatesKey(this.toKey(sub));
60
65
  }
61
66
  await this.registry?.sync();
62
- // Prices require multi-sub-dex allMids subscriptions under one logical key.
63
- if (sub.channel === 'prices') {
64
- const entries = this.getPriceSubEntries();
67
+ // Markets context aggregates the all-dexs perp asset-context feed
68
+ // (oracle, funding, OI, metadata) with the high-frequency `fastAssetCtxs`
69
+ // feed, which supplies fast mid + mark for every market across all dexes.
70
+ if (sub.channel === 'marketsContext') {
71
+ const entries = this.getMarketsContextSubEntries();
65
72
  for (const { subKey, payload } of entries) {
66
73
  await this.registerSub(subKey, payload);
67
74
  }
@@ -71,20 +78,33 @@ export class HyperliquidWsProvider extends WsProviderBase {
71
78
  this.unregisterSub(subKey);
72
79
  this.rws.send(JSON.stringify({ method: 'unsubscribe', subscription: payload }));
73
80
  }
74
- this.midsBySubDex.clear();
81
+ this.perpCtxBySubDex.clear();
82
+ this.fastCtxByMarketId = {};
75
83
  };
76
84
  }
77
85
  // All other channels: single WS subscription per key
78
86
  const key = this.toKey(sub);
87
+ if (sub.channel === 'orderbook') {
88
+ this.claimOrderbookKey(sub.marketId, key);
89
+ }
79
90
  const payload = this.toHlPayload(sub);
80
91
  await this.registerSub(key, payload);
92
+ if (sub.channel === 'orderbook') {
93
+ this.registerOrderbook(sub.marketId, key);
94
+ }
81
95
  await this.rws.ready();
82
96
  return () => {
83
97
  this.unregisterSub(key);
84
98
  if (this.orderUpdatesKey === key) {
85
99
  this.orderUpdatesKey = undefined;
86
100
  }
87
- this.rws.send(JSON.stringify({ method: 'unsubscribe', subscription: payload }));
101
+ this.rws.send(JSON.stringify({
102
+ method: 'unsubscribe',
103
+ subscription: payload,
104
+ }));
105
+ if (sub.channel === 'orderbook') {
106
+ this.releaseOrderbook(sub.marketId, key);
107
+ }
88
108
  };
89
109
  }
90
110
  /**
@@ -105,21 +125,56 @@ export class HyperliquidWsProvider extends WsProviderBase {
105
125
  }
106
126
  this.orderUpdatesKey = key;
107
127
  }
108
- /** Build sub-key + payload pairs for each sub-dex allMids subscription. */
109
- getPriceSubEntries() {
128
+ claimOrderbookKey(marketId, key) {
129
+ const activeKeys = this.orderbookKeysByMarketId.get(marketId);
130
+ if (activeKeys === undefined) {
131
+ return;
132
+ }
133
+ for (const activeKey of [...activeKeys]) {
134
+ if (activeKey === key) {
135
+ continue;
136
+ }
137
+ if (!this.closeChannelIfIdle(activeKey)) {
138
+ throw new Error(`Hyperliquid supports one orderbook aggregation per market per ` +
139
+ `provider instance. Unsubscribe ${activeKey} before subscribing ${key}.`);
140
+ }
141
+ }
142
+ }
143
+ /**
144
+ * Sub-key + payload pairs for the markets-context aggregation: the all-dexs
145
+ * perp asset-context feed (oracle/funding/OI/metadata) plus the compressed
146
+ * `fastAssetCtxs` feed (high-frequency mid + mark across every dex).
147
+ */
148
+ getMarketsContextSubEntries() {
110
149
  return [
111
- {
112
- subKey: 'allMids:default',
113
- payload: { type: 'allMids' },
114
- },
115
- ...this.subDexes.map((dex) => ({
116
- subKey: `allMids:${dex}`,
117
- payload: { type: 'allMids', dex },
118
- })),
150
+ { subKey: 'allDexsAssetCtxs', payload: { type: 'allDexsAssetCtxs' } },
151
+ { subKey: 'fastAssetCtxs', payload: { type: 'fastAssetCtxs' } },
119
152
  ];
120
153
  }
154
+ registerOrderbook(marketId, orderbookKey) {
155
+ let activeKeys = this.orderbookKeysByMarketId.get(marketId);
156
+ if (activeKeys === undefined) {
157
+ activeKeys = new Set();
158
+ this.orderbookKeysByMarketId.set(marketId, activeKeys);
159
+ }
160
+ activeKeys.add(orderbookKey);
161
+ }
162
+ releaseOrderbook(marketId, orderbookKey) {
163
+ const activeKeys = this.orderbookKeysByMarketId.get(marketId);
164
+ if (activeKeys === undefined) {
165
+ return;
166
+ }
167
+ activeKeys.delete(orderbookKey);
168
+ if (activeKeys.size > 0) {
169
+ return;
170
+ }
171
+ this.orderbookKeysByMarketId.delete(marketId);
172
+ }
121
173
  onClose() {
122
- this.midsBySubDex.clear();
174
+ this.perpCtxBySubDex.clear();
175
+ this.fastCtxByMarketId = {};
176
+ this.orderbookKeysByMarketId.clear();
177
+ this.latestOrderbookByMarketId.clear();
123
178
  this.orderUpdatesKey = undefined;
124
179
  }
125
180
  sendSubscribe(payload) {
@@ -127,12 +182,14 @@ export class HyperliquidWsProvider extends WsProviderBase {
127
182
  }
128
183
  toKey(sub) {
129
184
  switch (sub.channel) {
130
- case 'prices':
131
- return 'allMids';
185
+ case 'marketsContext':
186
+ return 'marketsContext';
132
187
  case 'orderbook':
133
- return `l2Book:${sub.marketId}`;
188
+ return `l2:${sub.marketId}:${this.orderbookAggregationKey(sub.marketId, sub.priceStep)}`;
134
189
  case 'candle':
135
190
  return `candle:${sub.marketId}:${sub.interval}`;
191
+ case 'trades':
192
+ return `trades:${sub.marketId}`;
136
193
  case 'orderUpdates':
137
194
  return `orderUpdates:${sub.address.toLowerCase()}`;
138
195
  case 'fills':
@@ -143,29 +200,47 @@ export class HyperliquidWsProvider extends WsProviderBase {
143
200
  return `spotState:${sub.address.toLowerCase()}`;
144
201
  }
145
202
  }
203
+ orderbookAggregation(marketId, priceStep) {
204
+ if (priceStep === undefined) {
205
+ return {};
206
+ }
207
+ return priceStepToAggregation(priceStep, this.orderbookReferencePrice(marketId));
208
+ }
209
+ orderbookAggregationKey(marketId, priceStep) {
210
+ const aggregation = this.orderbookAggregation(marketId, priceStep);
211
+ const nSigFigs = aggregation.nSigFigs ?? null;
212
+ const mantissa = aggregation.mantissa ?? null;
213
+ if (nSigFigs === null && mantissa === null) {
214
+ return 'full';
215
+ }
216
+ return `s:${nSigFigs}:m:${mantissa}`;
217
+ }
146
218
  toHlPayload(sub) {
147
219
  switch (sub.channel) {
148
- case 'prices':
149
- // Prices are handled via getPriceSubEntries in subscribe()
150
- // and never reach toHlPayload, but TS requires exhaustive cases.
151
- return { type: 'allMids' };
152
- case 'orderbook':
220
+ case 'marketsContext':
221
+ // Handled via getMarketsContextSubEntries in openChannel; never reaches
222
+ // toHlPayload, but TS requires an exhaustive switch.
223
+ return { type: 'allDexsAssetCtxs' };
224
+ case 'orderbook': {
225
+ const aggregation = this.orderbookAggregation(sub.marketId, sub.priceStep);
153
226
  return {
154
- type: 'l2Book',
155
- coin: sub.marketId,
156
- // HL's l2Book ignores any level-count field; it returns up to 20
157
- // levels/side and controls granularity via nSigFigs (+ mantissa,
158
- // valid only when nSigFigs === 5).
159
- ...(sub.priceStep !== undefined
160
- ? priceStepToAggregation(sub.priceStep, this.mergedMids().get(sub.marketId) ?? Number.NaN)
161
- : {}),
227
+ type: 'l2',
228
+ c: sub.marketId,
229
+ s: aggregation.nSigFigs ?? null,
230
+ m: aggregation.mantissa ?? null,
162
231
  };
232
+ }
163
233
  case 'candle':
164
234
  return {
165
235
  type: 'candle',
166
236
  coin: sub.marketId,
167
237
  interval: sub.interval,
168
238
  };
239
+ case 'trades':
240
+ return {
241
+ type: 'trades',
242
+ coin: sub.marketId,
243
+ };
169
244
  case 'orderUpdates':
170
245
  return { type: 'orderUpdates', user: sub.address };
171
246
  case 'fills':
@@ -200,8 +275,14 @@ export class HyperliquidWsProvider extends WsProviderBase {
200
275
  }
201
276
  try {
202
277
  switch (msg.channel) {
203
- case 'allMids':
204
- this.handleAllMids(msg.data);
278
+ case 'allDexsAssetCtxs':
279
+ this.handleAllDexsAssetCtxs(msg.data);
280
+ break;
281
+ case 'fastAssetCtxs':
282
+ this.handleFastAssetCtxs(msg.data);
283
+ break;
284
+ case 'l2':
285
+ this.handleL2(msg.data);
205
286
  break;
206
287
  case 'l2Book':
207
288
  this.handleL2Book(msg.data);
@@ -209,6 +290,9 @@ export class HyperliquidWsProvider extends WsProviderBase {
209
290
  case 'candle':
210
291
  this.handleCandle(msg.data);
211
292
  break;
293
+ case 'trades':
294
+ this.handleTrades(msg.data);
295
+ break;
212
296
  case 'orderUpdates':
213
297
  this.handleOrderUpdates(msg.data);
214
298
  break;
@@ -227,40 +311,156 @@ export class HyperliquidWsProvider extends WsProviderBase {
227
311
  wsLog.handlerFailure(this.providerKey, error);
228
312
  }
229
313
  }
230
- handleAllMids(data) {
231
- const subDexKey = data.dex || 'default';
232
- this.midsBySubDex.set(subDexKey, data.mids);
233
- const merged = {};
234
- for (const mids of this.midsBySubDex.values()) {
235
- Object.assign(merged, mids);
314
+ handleAllDexsAssetCtxs(data) {
315
+ for (const [dex, ctxs] of data.assetCtxs) {
316
+ const byMarketId = {};
317
+ for (const ctx of ctxs) {
318
+ byMarketId[ctx.coin] = ctx;
319
+ }
320
+ this.perpCtxBySubDex.set(dex || 'default', byMarketId);
236
321
  }
237
- this.emit('allMids', { channel: 'prices', data: merged });
322
+ this.emitMarketsContext();
323
+ }
324
+ /**
325
+ * Decode a `fastAssetCtxs` frame (base64 + raw-DEFLATE) and merge its changed
326
+ * coins into the per-market fast-context store. Frames are incremental, so a
327
+ * field absent from this frame keeps its prior value. Decodes are chained to
328
+ * preserve arrival order across the async boundary.
329
+ */
330
+ handleFastAssetCtxs(base64) {
331
+ this.fastDecodeChain = this.fastDecodeChain
332
+ .then(async () => {
333
+ const ctxs = await decodeFastAssetCtxs(base64);
334
+ for (const [marketId, ctx] of Object.entries(ctxs)) {
335
+ const prev = this.fastCtxByMarketId[marketId];
336
+ this.fastCtxByMarketId[marketId] = {
337
+ markPx: 'markPx' in ctx ? ctx.markPx : prev?.markPx,
338
+ midPx: 'midPx' in ctx ? ctx.midPx : prev?.midPx,
339
+ };
340
+ }
341
+ this.emitMarketsContext();
342
+ })
343
+ .catch((error) => wsLog.handlerFailure(this.providerKey, error));
238
344
  }
239
- /** Latest mid per `Market.id`, merged across sub-dex allMids frames. */
345
+ /**
346
+ * Build the all-markets context map: every perp asset context across sub-dexs
347
+ * (oracle/funding/OI/metadata), with mid + mark overlaid from the
348
+ * high-frequency `fastAssetCtxs` feed. A market present in `fastAssetCtxs` but
349
+ * without an asset-context frame yet (the aggregate feed is slow/idle) still
350
+ * gets a mid+mark entry, so price ticks without waiting on the aggregate.
351
+ */
352
+ emitMarketsContext() {
353
+ const data = {};
354
+ for (const byMarketId of this.perpCtxBySubDex.values()) {
355
+ for (const [marketId, ctx] of Object.entries(byMarketId)) {
356
+ const base = mapMarketContext(marketId, ctx);
357
+ const fast = this.fastCtxByMarketId[marketId];
358
+ data[marketId] = {
359
+ ...base,
360
+ midPrice: fast?.midPx != null ? fast.midPx : base.midPrice,
361
+ markPrice: fast?.markPx != null ? fast.markPx : base.markPrice,
362
+ };
363
+ }
364
+ }
365
+ for (const [marketId, fast] of Object.entries(this.fastCtxByMarketId)) {
366
+ if (data[marketId] !== undefined) {
367
+ continue;
368
+ }
369
+ // No asset-context frame for this market yet — each price stands in for
370
+ // the other where the fast feed carries only one of mid/mark.
371
+ const midPrice = fast.midPx ?? fast.markPx;
372
+ const markPrice = fast.markPx ?? fast.midPx;
373
+ if (midPrice != null && markPrice != null) {
374
+ data[marketId] = { marketId, midPrice, markPrice };
375
+ }
376
+ }
377
+ this.emit('marketsContext', { channel: 'marketsContext', data });
378
+ }
379
+ /** Latest mid per `Market.id` across the perp ctx feed and `fastAssetCtxs`. */
240
380
  mergedMids() {
241
381
  const map = new Map();
242
- for (const mids of this.midsBySubDex.values()) {
243
- for (const [id, mid] of Object.entries(mids)) {
382
+ for (const byMarketId of this.perpCtxBySubDex.values()) {
383
+ for (const [id, ctx] of Object.entries(byMarketId)) {
384
+ const mid = ctx.midPx ?? ctx.markPx;
385
+ map.set(id, Number(mid));
386
+ }
387
+ }
388
+ for (const [id, fast] of Object.entries(this.fastCtxByMarketId)) {
389
+ const mid = fast.midPx ?? fast.markPx;
390
+ if (mid != null) {
244
391
  map.set(id, Number(mid));
245
392
  }
246
393
  }
247
394
  return map;
248
395
  }
396
+ orderbookReferencePrice(marketId) {
397
+ const mid = this.mergedMids().get(marketId);
398
+ if (mid !== undefined) {
399
+ return mid;
400
+ }
401
+ const book = this.latestOrderbookByMarketId.get(marketId);
402
+ const bid = book?.bids[0]?.price;
403
+ const ask = book?.asks[0]?.price;
404
+ if (bid !== undefined && ask !== undefined) {
405
+ return (Number(bid) + Number(ask)) / 2;
406
+ }
407
+ return Number.NaN;
408
+ }
249
409
  handleL2Book(data) {
250
- this.emit(`l2Book:${data.coin}`, {
251
- channel: 'orderbook',
252
- data: {
253
- provider: this.providerKey,
254
- marketId: data.coin,
255
- bids: data.levels[0]
256
- .slice(0, HL_L2_BOOK_MAX_LEVELS_PER_SIDE)
257
- .map((l) => ({ price: l.px, size: l.sz })),
258
- asks: data.levels[1]
259
- .slice(0, HL_L2_BOOK_MAX_LEVELS_PER_SIDE)
260
- .map((l) => ({ price: l.px, size: l.sz })),
261
- timestamp: data.time,
262
- },
263
- });
410
+ const book = {
411
+ provider: this.providerKey,
412
+ marketId: data.coin,
413
+ bids: data.levels[0]
414
+ .slice(0, HL_L2_BOOK_MAX_LEVELS_PER_SIDE)
415
+ .map((l) => ({ price: l.px, size: l.sz })),
416
+ asks: data.levels[1]
417
+ .slice(0, HL_L2_BOOK_MAX_LEVELS_PER_SIDE)
418
+ .map((l) => ({ price: l.px, size: l.sz })),
419
+ timestamp: data.time,
420
+ };
421
+ this.latestOrderbookByMarketId.set(data.coin, book);
422
+ this.emitOrderbook(data.coin, book);
423
+ }
424
+ handleL2(data) {
425
+ if (data.s !== undefined) {
426
+ this.handleL2Book(data.s);
427
+ }
428
+ if (data.u !== undefined) {
429
+ this.handleCompactL2Delta(data.u);
430
+ }
431
+ if (data.c === undefined) {
432
+ return;
433
+ }
434
+ const compressed = data.c;
435
+ this.orderbookDecodeChain = this.orderbookDecodeChain
436
+ .then(async () => {
437
+ this.handleCompactL2Delta(await decodeCompressedJson(compressed));
438
+ })
439
+ .catch((error) => wsLog.handlerFailure(this.providerKey, error));
440
+ }
441
+ handleCompactL2Delta(delta) {
442
+ const previous = this.latestOrderbookByMarketId.get(delta.c);
443
+ if (previous === undefined) {
444
+ return;
445
+ }
446
+ const book = {
447
+ provider: this.providerKey,
448
+ marketId: delta.c,
449
+ bids: applyCompressedL2Side(previous.bids, delta.l[0], delta.r?.[0] ?? [], 'bid'),
450
+ asks: applyCompressedL2Side(previous.asks, delta.l[1], delta.r?.[1] ?? [], 'ask'),
451
+ timestamp: delta.t,
452
+ };
453
+ this.latestOrderbookByMarketId.set(delta.c, book);
454
+ this.emitOrderbook(delta.c, book);
455
+ }
456
+ emitOrderbook(marketId, book) {
457
+ const keys = this.orderbookKeysByMarketId.get(marketId);
458
+ if (keys === undefined) {
459
+ return;
460
+ }
461
+ for (const key of keys) {
462
+ this.emit(key, { channel: 'orderbook', data: book });
463
+ }
264
464
  }
265
465
  handleCandle(data) {
266
466
  this.emit(`candle:${data.s}:${data.i}`, {
@@ -275,6 +475,24 @@ export class HyperliquidWsProvider extends WsProviderBase {
275
475
  },
276
476
  });
277
477
  }
478
+ handleTrades(data) {
479
+ for (const trade of data) {
480
+ this.emit(`trades:${trade.coin}`, {
481
+ channel: 'trades',
482
+ data: [
483
+ {
484
+ provider: this.providerKey,
485
+ marketId: trade.coin,
486
+ price: trade.px,
487
+ size: trade.sz,
488
+ timestamp: trade.time,
489
+ side: trade.side === 'B' ? 'buy' : 'sell',
490
+ id: trade.tid !== undefined ? String(trade.tid) : trade.hash,
491
+ },
492
+ ],
493
+ });
494
+ }
495
+ }
278
496
  handleOrderUpdates(data) {
279
497
  // Untagged frame: attributable only via the single-address invariant.
280
498
  const key = this.orderUpdatesKey;
@@ -367,6 +585,35 @@ export class HyperliquidWsProvider extends WsProviderBase {
367
585
  }
368
586
  }
369
587
  const isObject = (v) => typeof v === 'object' && v !== null;
588
+ function compactRemovalPrice(levels, value) {
589
+ if (typeof value === 'number') {
590
+ return levels[value]?.price;
591
+ }
592
+ return typeof value === 'string' ? value : value.p;
593
+ }
594
+ function applyCompressedL2Side(previous, updates, removals, side) {
595
+ const byPrice = new Map(previous.map((level) => [level.price, level.size]));
596
+ for (const removal of removals) {
597
+ const price = compactRemovalPrice(previous, removal);
598
+ if (price !== undefined) {
599
+ byPrice.delete(price);
600
+ }
601
+ }
602
+ for (const update of updates) {
603
+ if (Number(update.s) === 0) {
604
+ byPrice.delete(update.p);
605
+ }
606
+ else {
607
+ byPrice.set(update.p, update.s);
608
+ }
609
+ }
610
+ return [...byPrice.entries()]
611
+ .map(([price, size]) => ({ price, size }))
612
+ .sort((a, b) => side === 'bid'
613
+ ? Number(b.price) - Number(a.price)
614
+ : Number(a.price) - Number(b.price))
615
+ .slice(0, HL_L2_BOOK_MAX_LEVELS_PER_SIDE);
616
+ }
370
617
  /**
371
618
  * Minimal presence/type check of the channel-discriminating and required
372
619
  * fields the matching handler dereferences without its own guard. A frame
@@ -375,20 +622,28 @@ const isObject = (v) => typeof v === 'object' && v !== null;
375
622
  * to the dispatch switch, which silently ignores them.
376
623
  */
377
624
  function isValidHlFrame(channel, data) {
625
+ // `fastAssetCtxs` carries a base64 string payload, not an object.
626
+ if (channel === 'fastAssetCtxs') {
627
+ return typeof data === 'string';
628
+ }
378
629
  if (!isObject(data)) {
379
630
  return false;
380
631
  }
381
632
  switch (channel) {
382
- case 'allMids':
383
- return isObject(data.mids);
633
+ case 'allDexsAssetCtxs':
634
+ return Array.isArray(data.assetCtxs);
384
635
  case 'l2Book':
385
636
  return (typeof data.coin === 'string' &&
386
637
  Array.isArray(data.levels) &&
387
638
  Array.isArray(data.levels[0]) &&
388
639
  Array.isArray(data.levels[1]) &&
389
640
  typeof data.time === 'number');
641
+ case 'l2':
642
+ return typeof data.c === 'string' || isObject(data.s) || isObject(data.u);
390
643
  case 'candle':
391
644
  return typeof data.s === 'string' && typeof data.i === 'string';
645
+ case 'trades':
646
+ return Array.isArray(data);
392
647
  case 'orderUpdates':
393
648
  return Array.isArray(data);
394
649
  case 'userFills':
@@ -1 +1 @@
1
- {"version":3,"file":"HyperliquidWsProvider.js","sourceRoot":"","sources":["../../../src/websocket/HyperliquidWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAKnB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EAEd,KAAK,GACN,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAEL,SAAS,EACT,SAAS,GAGV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAA;AAa/D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,OAAO,EACP,cAAc,EACd,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,mBAAmB,CAAA;AAE1B,mFAAmF;AACnF,MAAM,8BAA8B,GAAG,EAAE,CAAA;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,GAAsB,EAAE,CACxB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM,CAAC,CAAA;IACtE,OAAO,IAAI,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AACrE,CAAC,CAAA;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,qBAAsB,SAAQ,cAAsB;IACvD,eAAe,CAAoB;IAC1B,QAAQ,CAAU;IAClB,MAAM,CAA4B;IAClC,QAAQ,CAA4B;IAC7C,YAAY,GAAG,IAAI,GAAG,EAAkC,CAAA;IAEhE,YACE,KAAa,EACb,WAAmB,EACnB,QAAkB,EAClB,MAAuB;QAEvB,KAAK,CACH,IAAI,qBAAqB,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,EACtE,WAAW,CACZ,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,MAA8B,EAC9B,OAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,4EAA4E;gBAC1E,0EAA0E,CAC7E,CAAA;QACH,CAAC;QACD,OAAO,qBAAqB,CAC1B,MAAM,EACN,IAAI,CAAC,WAAW,EAChB,IAAI,EACJ,MAAM,EACN,6BAA6B,EAC7B,OAAO,CACR,CAAA;IACH,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,GAAiB;QAC3C,oEAAoE;QACpE,0CAA0C;QAC1C,IAAI,GAAG,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;QAE3B,4EAA4E;QAC5E,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAEzC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACzC,CAAC;YAED,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;YAEtB,OAAO,GAAG,EAAE;gBACV,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;oBAC1C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;oBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CACjE,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;YAC3B,CAAC,CAAA;QACH,CAAC;QAED,qDAAqD;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACrC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAEpC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QAEtB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;YACvB,IAAI,IAAI,CAAC,eAAe,KAAK,GAAG,EAAE,CAAC;gBACjC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;YAClC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CACjE,CAAA;QACH,CAAC,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACK,oBAAoB,CAAC,GAAW;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAA;QACnC,IACE,MAAM,KAAK,SAAS;YACpB,MAAM,KAAK,GAAG;YACd,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAChC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,sEAAsE;gBACpE,4CAA4C;gBAC5C,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,sBAAsB;gBAC7D,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAC1C,CAAA;QACH,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAA;IAC5B,CAAC;IAED,2EAA2E;IACnE,kBAAkB;QACxB,OAAO;YACL;gBACE,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC7B;YACD,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC7B,MAAM,EAAE,WAAW,GAAG,EAAE;gBACxB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;aAClC,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;IAEkB,OAAO;QACxB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QACzB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;IAClC,CAAC;IAES,aAAa,CAAC,OAAe;QACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAC/D,CAAA;IACH,CAAC;IAES,KAAK,CAAC,GAAiB;QAC/B,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAA;YAClB,KAAK,WAAW;gBACd,OAAO,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAA;YACjC,KAAK,QAAQ;gBACX,OAAO,UAAU,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA;YACjD,KAAK,cAAc;gBACjB,OAAO,gBAAgB,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;YACpD,KAAK,OAAO;gBACV,OAAO,aAAa,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;YACjD,KAAK,WAAW;gBACd,OAAO,aAAa,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;YACjD,KAAK,cAAc;gBACjB,OAAO,aAAa,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAiB;QACnC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,2DAA2D;gBAC3D,iEAAiE;gBACjE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAC5B,KAAK,WAAW;gBACd,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,GAAG,CAAC,QAAQ;oBAClB,iEAAiE;oBACjE,iEAAiE;oBACjE,mCAAmC;oBACnC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS;wBAC7B,CAAC,CAAC,sBAAsB,CACpB,GAAG,CAAC,SAAS,EACb,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,GAAG,CAClD;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR,CAAA;YACH,KAAK,QAAQ;gBACX,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,GAAG,CAAC,QAAQ;oBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB,CAAA;YACH,KAAK,cAAc;gBACjB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;YACpD,KAAK,OAAO;gBACV,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;YACjD,KAAK,WAAW;gBACd,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;YACjE,KAAK,cAAc;gBACjB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IAES,aAAa,CAAC,GAAW;QACjC,IAAI,GAAgB,CAAA;QACpB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QACD,IACE,CAAC,GAAG,CAAC,OAAO;YACZ,GAAG,CAAC,OAAO,KAAK,MAAM;YACtB,GAAG,CAAC,OAAO,KAAK,sBAAsB,EACtC,CAAC;YACD,OAAM;QACR,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC5B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;YACrD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,SAAS;oBACZ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAuB,CAAC,CAAA;oBAC/C,MAAK;gBACP,KAAK,QAAQ;oBACX,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAsB,CAAC,CAAA;oBAC7C,MAAK;gBACP,KAAK,QAAQ;oBACX,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAsB,CAAC,CAAA;oBAC7C,MAAK;gBACP,KAAK,cAAc;oBACjB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAuB,CAAC,CAAA;oBACpD,MAAK;gBACP,KAAK,WAAW;oBACd,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAyB,CAAC,CAAA;oBACnD,MAAK;gBACP,KAAK,2BAA2B;oBAC9B,IAAI,CAAC,+BAA+B,CAClC,GAAG,CAAC,IAAyC,CAC9C,CAAA;oBACD,MAAK;gBACP,KAAK,WAAW;oBACd,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAyB,CAAC,CAAA;oBACnD,MAAK;YACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,IAAqB;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAA;QACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAE3C,MAAM,MAAM,GAA2B,EAAE,CAAA;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC7B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,wEAAwE;IAChE,UAAU;QAChB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;QACrC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAEO,YAAY,CAAC,IAAoB;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE;YAC/B,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,WAAW;gBAC1B,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;qBACjB,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC;qBACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;qBACjB,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC;qBACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,SAAS,EAAE,IAAI,CAAC,IAAI;aACrB;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,YAAY,CAAC,IAAoB;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE;YACtC,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE;gBACJ,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,kBAAkB,CAAC,IAAqB;QAC9C,sEAAsE;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAA;QAChC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QACD,MAAM,UAAU,GAAgB,EAAE,CAAA;QAClC,MAAM,aAAa,GAAmB,EAAE,CAAA;QACxC,MAAM,UAAU,GAAa,EAAE,CAAA;QAC/B,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;YACtB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC7B,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACxB,SAAQ;YACV,CAAC;YACD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACtC,oEAAoE;YACpE,oEAAoE;YACpE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAQ;YACV,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;YACrD,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,OAAO,GACX,IAAI,KAAK,SAAS,CAAC,iBAAiB,IAAI,IAAI,KAAK,SAAS,CAAC,UAAU,CAAA;gBACvE,aAAa,CAAC,IAAI,CAAC;oBACjB,OAAO;oBACP,MAAM;oBACN,IAAI;oBACJ,IAAI,EAAE,CAAC,CAAC,EAAE;oBACV,YAAY,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG;oBAChC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,KAAK,EAAE,CAAC,CAAC,gBAAgB;oBACzB,SAAS;iBACV,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;gBACtD,UAAU,CAAC,IAAI,CAAC;oBACd,OAAO;oBACP,MAAM;oBACN,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;oBACrD,IAAI;oBACJ,IAAI,EAAE,CAAC,CAAC,EAAE;oBACV,KAAK,EAAE,CAAC,CAAC,OAAO;oBAChB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAC7B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;oBACjC,SAAS;iBACV,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE;SAChD,CAAC,CAAA;IACJ,CAAC;IAEO,eAAe,CAAC,IAAuB;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACzC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACzD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;YAChD,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAA;IACJ,CAAC;IAEO,+BAA+B,CACrC,IAAuC;QAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAC/D,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAClC,IAAI,CAAC,mBAAmB,CAAC,EAAqB,CAAC,EAAE,CAAC;gBAChD,OAAO,EAAE,CAAA;YACX,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACnD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACnE,CAAC,CAAC,CACH,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;YAChD,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAA;IACJ,CAAC;IAEO,eAAe,CAAC,IAAuB;QAC7C,MAAM,SAAS,GAAG,aAAa,CAC7B,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,EAC5B,IAAI,CAAC,UAAU,EAAE,CAClB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;YAChD,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC;gBACzD,MAAM,EAAE,CAAC,CAAC,IAAI;aACf,CAAC,CAAC;SACJ,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAgC,EAAE,CAC5D,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAA;AAErC;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,OAAe,EAAE,IAAa;IACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,KAAK,QAAQ;YACX,OAAO,CACL,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAC7B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAC9B,CAAA;QACH,KAAK,QAAQ;YACX,OAAO,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAA;QACjE,KAAK,cAAc;YACjB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,KAAK,WAAW;YACd,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnE,KAAK,2BAA2B;YAC9B,OAAO,CACL,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CACzE,CAAA;QACH,KAAK,WAAW;YACd,OAAO,CACL,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAC7B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBACxB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CACvC,CAAA;QACH;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"HyperliquidWsProvider.js","sourceRoot":"","sources":["../../../src/websocket/HyperliquidWsProvider.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,6 @@ export type HlMetaAndAssetCtxs = [HlMeta, HlAssetCtx[]];
23
23
  /** @public */
24
24
  export type HlUniverse = HlMeta['universe'];
25
25
  /** @public */
26
- export type HlAllMids = Record<string, string>;
27
- /** @public */
28
26
  export type HlCandle = {
29
27
  t: number;
30
28
  o: string;
@@ -1 +1 @@
1
- {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/types/asset.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC3B,CAAA;AAED,cAAc;AACd,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAEvD,cAAc;AACd,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;AAE3C,cAAc;AACd,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE9C,cAAc;AACd,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,QAAQ,EAAE,CAAA;AAEzC,cAAc;AACd,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,cAAc;AACd,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,cAAc;AACd,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAAA;AAEpD,cAAc;AACd,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,QAAQ,EAAE,mBAAmB,EAAE,CAAA;CAChC,CAAA;AAED,cAAc;AACd,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/types/asset.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC3B,CAAA;AAED,cAAc;AACd,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAEvD,cAAc;AACd,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;AAE3C,cAAc;AACd,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,QAAQ,EAAE,CAAA;AAEzC,cAAc;AACd,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,cAAc;AACd,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,cAAc;AACd,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAAA;AAEpD,cAAc;AACd,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,QAAQ,EAAE,mBAAmB,EAAE,CAAA;CAChC,CAAA;AAED,cAAc;AACd,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAA"}