pmxt-core 2.37.14 → 2.39.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 (64) hide show
  1. package/dist/BaseExchange.d.ts +14 -14
  2. package/dist/BaseExchange.js +19 -19
  3. package/dist/exchanges/baozi/index.d.ts +2 -2
  4. package/dist/exchanges/baozi/index.js +5 -5
  5. package/dist/exchanges/hyperliquid/auth.d.ts +30 -0
  6. package/dist/exchanges/hyperliquid/auth.js +145 -0
  7. package/dist/exchanges/hyperliquid/config.d.ts +17 -0
  8. package/dist/exchanges/hyperliquid/config.js +28 -0
  9. package/dist/exchanges/hyperliquid/errors.d.ts +18 -0
  10. package/dist/exchanges/hyperliquid/errors.js +61 -0
  11. package/dist/exchanges/hyperliquid/fetcher.d.ts +140 -0
  12. package/dist/exchanges/hyperliquid/fetcher.js +137 -0
  13. package/dist/exchanges/hyperliquid/index.d.ts +31 -0
  14. package/dist/exchanges/hyperliquid/index.js +219 -0
  15. package/dist/exchanges/hyperliquid/normalizer.d.ts +18 -0
  16. package/dist/exchanges/hyperliquid/normalizer.js +339 -0
  17. package/dist/exchanges/hyperliquid/utils.d.ts +41 -0
  18. package/dist/exchanges/hyperliquid/utils.js +76 -0
  19. package/dist/exchanges/kalshi/api.d.ts +1 -1
  20. package/dist/exchanges/kalshi/api.js +1 -1
  21. package/dist/exchanges/kalshi/index.d.ts +6 -6
  22. package/dist/exchanges/kalshi/index.js +14 -14
  23. package/dist/exchanges/limitless/api.d.ts +1 -1
  24. package/dist/exchanges/limitless/api.js +1 -1
  25. package/dist/exchanges/limitless/index.d.ts +5 -5
  26. package/dist/exchanges/limitless/index.js +15 -12
  27. package/dist/exchanges/myriad/api.d.ts +1 -1
  28. package/dist/exchanges/myriad/api.js +1 -1
  29. package/dist/exchanges/myriad/index.d.ts +5 -5
  30. package/dist/exchanges/myriad/index.js +14 -14
  31. package/dist/exchanges/myriad/websocket.d.ts +2 -2
  32. package/dist/exchanges/myriad/websocket.js +12 -12
  33. package/dist/exchanges/opinion/api.d.ts +1 -1
  34. package/dist/exchanges/opinion/api.js +1 -1
  35. package/dist/exchanges/opinion/index.d.ts +4 -4
  36. package/dist/exchanges/opinion/index.js +9 -9
  37. package/dist/exchanges/polymarket/api-clob.d.ts +1 -1
  38. package/dist/exchanges/polymarket/api-clob.js +1 -1
  39. package/dist/exchanges/polymarket/api-data.d.ts +1 -1
  40. package/dist/exchanges/polymarket/api-data.js +1 -1
  41. package/dist/exchanges/polymarket/api-gamma.d.ts +1 -1
  42. package/dist/exchanges/polymarket/api-gamma.js +1 -1
  43. package/dist/exchanges/polymarket/index.d.ts +6 -6
  44. package/dist/exchanges/polymarket/index.js +19 -19
  45. package/dist/exchanges/polymarket/websocket.d.ts +3 -3
  46. package/dist/exchanges/polymarket/websocket.js +21 -21
  47. package/dist/exchanges/polymarket_us/index.d.ts +3 -3
  48. package/dist/exchanges/polymarket_us/index.js +7 -7
  49. package/dist/exchanges/polymarket_us/websocket.d.ts +2 -2
  50. package/dist/exchanges/polymarket_us/websocket.js +6 -6
  51. package/dist/exchanges/probable/api.d.ts +1 -1
  52. package/dist/exchanges/probable/api.js +1 -1
  53. package/dist/exchanges/probable/index.d.ts +4 -4
  54. package/dist/exchanges/probable/index.js +9 -9
  55. package/dist/exchanges/smarkets/index.d.ts +2 -2
  56. package/dist/exchanges/smarkets/index.js +5 -5
  57. package/dist/index.d.ts +4 -0
  58. package/dist/index.js +5 -1
  59. package/dist/router/Router.d.ts +1 -1
  60. package/dist/router/Router.js +3 -3
  61. package/dist/server/exchange-factory.js +6 -0
  62. package/dist/server/method-verbs.json +7 -7
  63. package/dist/server/openapi.yaml +18 -3
  64. package/package.json +4 -3
@@ -57,8 +57,8 @@ class PolymarketUSWebSocket {
57
57
  this.normalizer = normalizer;
58
58
  this.config = config;
59
59
  }
60
- async watchOrderBook(id) {
61
- const slug = slugFromId(id);
60
+ async watchOrderBook(outcomeId) {
61
+ const slug = slugFromId(outcomeId);
62
62
  await this.ensureInitialized();
63
63
  if (!this.bookSubscriptions.has(slug)) {
64
64
  this.bookSubscriptions.add(slug);
@@ -69,10 +69,10 @@ class PolymarketUSWebSocket {
69
69
  queue.push({ resolve, reject });
70
70
  this.orderBookResolvers.set(slug, queue);
71
71
  });
72
- return (0, watch_timeout_1.withWatchTimeout)(dataPromise, this.config.watchTimeoutMs ?? watch_timeout_1.DEFAULT_WATCH_TIMEOUT_MS, `watchOrderBook('${id}')`);
72
+ return (0, watch_timeout_1.withWatchTimeout)(dataPromise, this.config.watchTimeoutMs ?? watch_timeout_1.DEFAULT_WATCH_TIMEOUT_MS, `watchOrderBook('${outcomeId}')`);
73
73
  }
74
- async watchTrades(id) {
75
- const slug = slugFromId(id);
74
+ async watchTrades(outcomeId) {
75
+ const slug = slugFromId(outcomeId);
76
76
  await this.ensureInitialized();
77
77
  if (!this.tradeSubscriptions.has(slug)) {
78
78
  this.tradeSubscriptions.add(slug);
@@ -83,7 +83,7 @@ class PolymarketUSWebSocket {
83
83
  queue.push({ resolve, reject });
84
84
  this.tradeResolvers.set(slug, queue);
85
85
  });
86
- return (0, watch_timeout_1.withWatchTimeout)(dataPromise, this.config.watchTimeoutMs ?? watch_timeout_1.DEFAULT_WATCH_TIMEOUT_MS, `watchTrades('${id}')`);
86
+ return (0, watch_timeout_1.withWatchTimeout)(dataPromise, this.config.watchTimeoutMs ?? watch_timeout_1.DEFAULT_WATCH_TIMEOUT_MS, `watchTrades('${outcomeId}')`);
87
87
  }
88
88
  async close() {
89
89
  if (this.socket) {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/probable/probable.yaml
3
- * Generated at: 2026-05-08T17:24:31.132Z
3
+ * Generated at: 2026-05-08T20:27:07.084Z
4
4
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
5
5
  */
6
6
  export declare const probableApiSpec: {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.probableApiSpec = void 0;
4
4
  /**
5
5
  * Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/probable/probable.yaml
6
- * Generated at: 2026-05-08T17:24:31.132Z
6
+ * Generated at: 2026-05-08T20:27:07.084Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.probableApiSpec = {
@@ -27,10 +27,10 @@ export declare class ProbableExchange extends PredictionMarketExchange {
27
27
  * @returns The UnifiedEvent, or null if not found
28
28
  */
29
29
  getEventBySlug(slug: string): Promise<UnifiedEvent | null>;
30
- fetchOrderBook(id: string): Promise<OrderBook>;
31
- fetchOHLCV(id: string, params: OHLCVParams): Promise<PriceCandle[]>;
30
+ fetchOrderBook(outcomeId: string): Promise<OrderBook>;
31
+ fetchOHLCV(outcomeId: string, params: OHLCVParams): Promise<PriceCandle[]>;
32
32
  fetchMyTrades(params?: MyTradesParams): Promise<UserTrade[]>;
33
- fetchTrades(id: string, params: TradesParams | HistoryFilterParams): Promise<Trade[]>;
33
+ fetchTrades(outcomeId: string, params: TradesParams | HistoryFilterParams): Promise<Trade[]>;
34
34
  createOrder(params: CreateOrderParams): Promise<Order>;
35
35
  /**
36
36
  * Cancel an order.
@@ -46,6 +46,6 @@ export declare class ProbableExchange extends PredictionMarketExchange {
46
46
  fetchOpenOrders(marketId?: string): Promise<Order[]>;
47
47
  fetchPositions(): Promise<Position[]>;
48
48
  fetchBalance(): Promise<Balance[]>;
49
- watchOrderBook(id: string, limit?: number): Promise<OrderBook>;
49
+ watchOrderBook(outcomeId: string, limit?: number): Promise<OrderBook>;
50
50
  close(): Promise<void>;
51
51
  }
@@ -116,15 +116,15 @@ class ProbableExchange extends BaseExchange_1.PredictionMarketExchange {
116
116
  }
117
117
  return event;
118
118
  }
119
- async fetchOrderBook(id) {
120
- const raw = await this.fetcher.fetchRawOrderBook(id);
121
- return this.normalizer.normalizeOrderBook(raw, id);
119
+ async fetchOrderBook(outcomeId) {
120
+ const raw = await this.fetcher.fetchRawOrderBook(outcomeId);
121
+ return this.normalizer.normalizeOrderBook(raw, outcomeId);
122
122
  }
123
- async fetchOHLCV(id, params) {
123
+ async fetchOHLCV(outcomeId, params) {
124
124
  if (!params.resolution) {
125
125
  throw new Error('fetchOHLCV requires a resolution parameter.');
126
126
  }
127
- const rawPoints = await this.fetcher.fetchRawOHLCV(id, params);
127
+ const rawPoints = await this.fetcher.fetchRawOHLCV(outcomeId, params);
128
128
  return this.normalizer.normalizeOHLCV(rawPoints, params);
129
129
  }
130
130
  async fetchMyTrades(params) {
@@ -133,11 +133,11 @@ class ProbableExchange extends BaseExchange_1.PredictionMarketExchange {
133
133
  const rawTrades = await this.fetcher.fetchRawMyTrades(params || {}, address);
134
134
  return rawTrades.map((raw, i) => this.normalizer.normalizeUserTrade(raw, i));
135
135
  }
136
- async fetchTrades(id, params) {
136
+ async fetchTrades(outcomeId, params) {
137
137
  const auth = this.ensureAuth();
138
138
  const client = auth.getClobClient();
139
139
  // Use CLOB client directly for trades (legacy behaviour preserved)
140
- const queryParams = { tokenId: id };
140
+ const queryParams = { tokenId: outcomeId };
141
141
  if (params.limit)
142
142
  queryParams.limit = params.limit;
143
143
  const response = await client.getTrades(queryParams);
@@ -359,11 +359,11 @@ class ProbableExchange extends BaseExchange_1.PredictionMarketExchange {
359
359
  // --------------------------------------------------------------------------
360
360
  // WebSocket Streaming (public, no auth needed)
361
361
  // --------------------------------------------------------------------------
362
- async watchOrderBook(id, limit) {
362
+ async watchOrderBook(outcomeId, limit) {
363
363
  if (!this.ws) {
364
364
  this.ws = new websocket_1.ProbableWebSocket(this.wsConfig);
365
365
  }
366
- return this.ws.watchOrderBook(id);
366
+ return this.ws.watchOrderBook(outcomeId);
367
367
  }
368
368
  async close() {
369
369
  if (this.ws) {
@@ -18,8 +18,8 @@ export declare class SmarketsExchange extends PredictionMarketExchange {
18
18
  private requireAuth;
19
19
  protected fetchMarketsImpl(params?: MarketFilterParams): Promise<UnifiedMarket[]>;
20
20
  protected fetchEventsImpl(params: EventFetchParams): Promise<UnifiedEvent[]>;
21
- fetchOrderBook(id: string): Promise<OrderBook>;
22
- fetchTrades(id: string, params: TradesParams | HistoryFilterParams): Promise<Trade[]>;
21
+ fetchOrderBook(outcomeId: string): Promise<OrderBook>;
22
+ fetchTrades(outcomeId: string, params: TradesParams | HistoryFilterParams): Promise<Trade[]>;
23
23
  fetchBalance(): Promise<Balance[]>;
24
24
  fetchMyTrades(params?: MyTradesParams): Promise<UserTrade[]>;
25
25
  fetchPositions(): Promise<Position[]>;
@@ -158,16 +158,16 @@ class SmarketsExchange extends BaseExchange_1.PredictionMarketExchange {
158
158
  .filter((e) => e !== null)
159
159
  .slice(0, limit);
160
160
  }
161
- async fetchOrderBook(id) {
162
- const raw = await this.fetcher.fetchRawOrderBook(id);
163
- return this.normalizer.normalizeOrderBook(raw, id);
161
+ async fetchOrderBook(outcomeId) {
162
+ const raw = await this.fetcher.fetchRawOrderBook(outcomeId);
163
+ return this.normalizer.normalizeOrderBook(raw, outcomeId);
164
164
  }
165
- async fetchTrades(id, params) {
165
+ async fetchTrades(outcomeId, params) {
166
166
  if ('resolution' in params && params.resolution !== undefined) {
167
167
  console.warn('[pmxt] Warning: The "resolution" parameter is deprecated for fetchTrades() and will be ignored. ' +
168
168
  'It will be removed in v3.0.0. Please remove it from your code.');
169
169
  }
170
- const rawActivity = await this.fetcher.fetchRawTradeActivity(id, params);
170
+ const rawActivity = await this.fetcher.fetchRawTradeActivity(outcomeId, params);
171
171
  return rawActivity.map((raw, i) => this.normalizer.normalizeActivityTrade(raw, i));
172
172
  }
173
173
  // -------------------------------------------------------------------------
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './exchanges/opinion';
14
14
  export * from './exchanges/metaculus';
15
15
  export * from './exchanges/smarkets';
16
16
  export * from './exchanges/polymarket_us';
17
+ export * from './exchanges/hyperliquid';
17
18
  export * from './router';
18
19
  export * from './server/app';
19
20
  export * from './server/utils/port-manager';
@@ -29,6 +30,7 @@ import { OpinionExchange } from './exchanges/opinion';
29
30
  import { MetaculusExchange } from './exchanges/metaculus';
30
31
  import { SmarketsExchange } from './exchanges/smarkets';
31
32
  import { PolymarketUSExchange } from './exchanges/polymarket_us';
33
+ import { HyperliquidExchange } from './exchanges/hyperliquid';
32
34
  import { Router } from './router';
33
35
  declare const pmxt: {
34
36
  Polymarket: typeof PolymarketExchange;
@@ -42,6 +44,7 @@ declare const pmxt: {
42
44
  Metaculus: typeof MetaculusExchange;
43
45
  Smarkets: typeof SmarketsExchange;
44
46
  PolymarketUS: typeof PolymarketUSExchange;
47
+ Hyperliquid: typeof HyperliquidExchange;
45
48
  Router: typeof Router;
46
49
  };
47
50
  export declare const Polymarket: typeof PolymarketExchange;
@@ -55,4 +58,5 @@ export declare const Opinion: typeof OpinionExchange;
55
58
  export declare const Metaculus: typeof MetaculusExchange;
56
59
  export declare const Smarkets: typeof SmarketsExchange;
57
60
  export declare const PolymarketUS: typeof PolymarketUSExchange;
61
+ export declare const Hyperliquid: typeof HyperliquidExchange;
58
62
  export default pmxt;
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.PolymarketUS = exports.Smarkets = exports.Metaculus = exports.Opinion = exports.Myriad = exports.Baozi = exports.Probable = exports.KalshiDemo = exports.Kalshi = exports.Limitless = exports.Polymarket = exports.parseOpenApiSpec = void 0;
17
+ exports.Hyperliquid = exports.PolymarketUS = exports.Smarkets = exports.Metaculus = exports.Opinion = exports.Myriad = exports.Baozi = exports.Probable = exports.KalshiDemo = exports.Kalshi = exports.Limitless = exports.Polymarket = exports.parseOpenApiSpec = void 0;
18
18
  __exportStar(require("./BaseExchange"), exports);
19
19
  __exportStar(require("./types"), exports);
20
20
  __exportStar(require("./utils/math"), exports);
@@ -32,6 +32,7 @@ __exportStar(require("./exchanges/opinion"), exports);
32
32
  __exportStar(require("./exchanges/metaculus"), exports);
33
33
  __exportStar(require("./exchanges/smarkets"), exports);
34
34
  __exportStar(require("./exchanges/polymarket_us"), exports);
35
+ __exportStar(require("./exchanges/hyperliquid"), exports);
35
36
  __exportStar(require("./router"), exports);
36
37
  __exportStar(require("./server/app"), exports);
37
38
  __exportStar(require("./server/utils/port-manager"), exports);
@@ -47,6 +48,7 @@ const opinion_1 = require("./exchanges/opinion");
47
48
  const metaculus_1 = require("./exchanges/metaculus");
48
49
  const smarkets_1 = require("./exchanges/smarkets");
49
50
  const polymarket_us_1 = require("./exchanges/polymarket_us");
51
+ const hyperliquid_1 = require("./exchanges/hyperliquid");
50
52
  const router_1 = require("./router");
51
53
  const pmxt = {
52
54
  Polymarket: polymarket_1.PolymarketExchange,
@@ -60,6 +62,7 @@ const pmxt = {
60
62
  Metaculus: metaculus_1.MetaculusExchange,
61
63
  Smarkets: smarkets_1.SmarketsExchange,
62
64
  PolymarketUS: polymarket_us_1.PolymarketUSExchange,
65
+ Hyperliquid: hyperliquid_1.HyperliquidExchange,
63
66
  Router: router_1.Router,
64
67
  };
65
68
  exports.Polymarket = polymarket_1.PolymarketExchange;
@@ -73,4 +76,5 @@ exports.Opinion = opinion_1.OpinionExchange;
73
76
  exports.Metaculus = metaculus_1.MetaculusExchange;
74
77
  exports.Smarkets = smarkets_1.SmarketsExchange;
75
78
  exports.PolymarketUS = polymarket_us_1.PolymarketUSExchange;
79
+ exports.Hyperliquid = hyperliquid_1.HyperliquidExchange;
76
80
  exports.default = pmxt;
@@ -8,7 +8,7 @@ export declare class Router extends PredictionMarketExchange {
8
8
  get name(): string;
9
9
  protected fetchMarketsImpl(params?: MarketFetchParams): Promise<UnifiedMarket[]>;
10
10
  protected fetchEventsImpl(params?: EventFetchParams): Promise<UnifiedEvent[]>;
11
- fetchOrderBook(id: string, side?: 'yes' | 'no'): Promise<OrderBook>;
11
+ fetchOrderBook(outcomeId: string, side?: 'yes' | 'no'): Promise<OrderBook>;
12
12
  fetchMarketMatches(params?: FetchMarketMatchesParams): Promise<MatchResult[]>;
13
13
  /**
14
14
  * Browse mode: fetch all matched market pairs from the catalog.
@@ -64,7 +64,7 @@ class Router extends BaseExchange_1.PredictionMarketExchange {
64
64
  // -----------------------------------------------------------------------
65
65
  // Unified orderbook (cross-exchange merge)
66
66
  // -----------------------------------------------------------------------
67
- async fetchOrderBook(id, side) {
67
+ async fetchOrderBook(outcomeId, side) {
68
68
  const exchangeNames = Object.keys(this.exchanges);
69
69
  if (exchangeNames.length === 0) {
70
70
  throw new Error('Router requires exchange instances for fetchOrderBook. Pass exchanges in RouterOptions.');
@@ -72,7 +72,7 @@ class Router extends BaseExchange_1.PredictionMarketExchange {
72
72
  const resolvedSide = side ?? 'yes';
73
73
  // Find identity matches across venues
74
74
  const matches = await this.fetchMarketMatches({
75
- marketId: id,
75
+ marketId: outcomeId,
76
76
  relation: 'identity',
77
77
  });
78
78
  const fetchPromises = [];
@@ -92,7 +92,7 @@ class Router extends BaseExchange_1.PredictionMarketExchange {
92
92
  for (const [name, exchange] of Object.entries(this.exchanges)) {
93
93
  if (matchedVenues.has(name))
94
94
  continue;
95
- fetchPromises.push(exchange.fetchOrderBook(id, resolvedSide).catch(() => null));
95
+ fetchPromises.push(exchange.fetchOrderBook(outcomeId, resolvedSide).catch(() => null));
96
96
  }
97
97
  const books = (await Promise.all(fetchPromises)).filter((b) => b !== null);
98
98
  if (books.length === 0) {
@@ -12,6 +12,7 @@ const opinion_1 = require("../exchanges/opinion");
12
12
  const metaculus_1 = require("../exchanges/metaculus");
13
13
  const smarkets_1 = require("../exchanges/smarkets");
14
14
  const polymarket_us_1 = require("../exchanges/polymarket_us");
15
+ const hyperliquid_1 = require("../exchanges/hyperliquid");
15
16
  const router_1 = require("../router");
16
17
  function createExchange(name, credentials, bearerToken) {
17
18
  switch (name) {
@@ -90,6 +91,11 @@ function createExchange(name, credentials, bearerToken) {
90
91
  apiKey: credentials?.apiKey || process.env.POLYMARKET_US_KEY_ID,
91
92
  privateKey: credentials?.privateKey || process.env.POLYMARKET_US_SECRET_KEY,
92
93
  });
94
+ case "hyperliquid":
95
+ return new hyperliquid_1.HyperliquidExchange({
96
+ apiKey: credentials?.apiKey || process.env.HYPERLIQUID_WALLET_ADDRESS,
97
+ privateKey: credentials?.privateKey || process.env.HYPERLIQUID_PRIVATE_KEY,
98
+ });
93
99
  case "router":
94
100
  return new router_1.Router({
95
101
  apiKey: bearerToken,
@@ -73,7 +73,7 @@
73
73
  "verb": "get",
74
74
  "args": [
75
75
  {
76
- "name": "id",
76
+ "name": "outcomeId",
77
77
  "kind": "string",
78
78
  "optional": false
79
79
  },
@@ -88,7 +88,7 @@
88
88
  "verb": "get",
89
89
  "args": [
90
90
  {
91
- "name": "id",
91
+ "name": "outcomeId",
92
92
  "kind": "string",
93
93
  "optional": false
94
94
  },
@@ -103,7 +103,7 @@
103
103
  "verb": "get",
104
104
  "args": [
105
105
  {
106
- "name": "id",
106
+ "name": "outcomeId",
107
107
  "kind": "string",
108
108
  "optional": false
109
109
  },
@@ -298,7 +298,7 @@
298
298
  "verb": "post",
299
299
  "args": [
300
300
  {
301
- "name": "id",
301
+ "name": "outcomeId",
302
302
  "kind": "string",
303
303
  "optional": false
304
304
  },
@@ -313,7 +313,7 @@
313
313
  "verb": "post",
314
314
  "args": [
315
315
  {
316
- "name": "ids",
316
+ "name": "outcomeIds",
317
317
  "kind": "unknown",
318
318
  "optional": false
319
319
  },
@@ -328,7 +328,7 @@
328
328
  "verb": "post",
329
329
  "args": [
330
330
  {
331
- "name": "id",
331
+ "name": "outcomeId",
332
332
  "kind": "string",
333
333
  "optional": false
334
334
  }
@@ -338,7 +338,7 @@
338
338
  "verb": "post",
339
339
  "args": [
340
340
  {
341
- "name": "id",
341
+ "name": "outcomeId",
342
342
  "kind": "string",
343
343
  "optional": false
344
344
  },
@@ -584,7 +584,7 @@ paths:
584
584
  parameters:
585
585
  - $ref: '#/components/parameters/ExchangeParam'
586
586
  - in: query
587
- name: id
587
+ name: outcomeId
588
588
  required: true
589
589
  schema:
590
590
  type: string
@@ -636,7 +636,7 @@ paths:
636
636
  parameters:
637
637
  - $ref: '#/components/parameters/ExchangeParam'
638
638
  - in: query
639
- name: id
639
+ name: outcomeId
640
640
  required: true
641
641
  schema:
642
642
  type: string
@@ -667,7 +667,7 @@ paths:
667
667
  parameters:
668
668
  - $ref: '#/components/parameters/ExchangeParam'
669
669
  - in: query
670
- name: id
670
+ name: outcomeId
671
671
  required: true
672
672
  schema:
673
673
  type: string
@@ -3669,6 +3669,21 @@ x-sdk-constructors:
3669
3669
  tsName: privateKey
3670
3670
  type: string
3671
3671
  description: Private key for authentication
3672
+ hyperliquid:
3673
+ className: Hyperliquid
3674
+ params:
3675
+ - name: pmxt_api_key
3676
+ tsName: pmxtApiKey
3677
+ type: string
3678
+ description: PMXT API key for hosted access
3679
+ - name: api_key
3680
+ tsName: apiKey
3681
+ type: string
3682
+ description: API key for authentication
3683
+ - name: private_key
3684
+ tsName: privateKey
3685
+ type: string
3686
+ description: Private key for authentication
3672
3687
  router:
3673
3688
  className: Router
3674
3689
  params:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmxt-core",
3
- "version": "2.37.14",
3
+ "version": "2.39.0",
4
4
  "description": "pmxt is a unified prediction market data API. The ccxt for prediction markets.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,8 +29,8 @@
29
29
  "test": "jest -c jest.config.js",
30
30
  "server": "tsx watch src/server/index.ts",
31
31
  "server:prod": "node dist/server/index.js",
32
- "generate:sdk:python": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g python -o ../sdks/python/generated --package-name pmxt_internal --additional-properties=projectName=pmxt-internal,packageVersion=2.37.14,library=urllib3",
33
- "generate:sdk:typescript": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g typescript-fetch -o ../sdks/typescript/generated --additional-properties=npmName=pmxtjs,npmVersion=2.37.14,supportsES6=true,typescriptThreePlus=true && node ../sdks/typescript/scripts/fix-generated.js",
32
+ "generate:sdk:python": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g python -o ../sdks/python/generated --package-name pmxt_internal --additional-properties=projectName=pmxt-internal,packageVersion=2.39.0,library=urllib3",
33
+ "generate:sdk:typescript": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g typescript-fetch -o ../sdks/typescript/generated --additional-properties=npmName=pmxtjs,npmVersion=2.39.0,supportsES6=true,typescriptThreePlus=true && node ../sdks/typescript/scripts/fix-generated.js",
34
34
  "fetch:openapi": "node scripts/fetch-openapi-specs.js",
35
35
  "extract:jsdoc": "node ../scripts/extract-jsdoc.js",
36
36
  "generate:docs": "npm run extract:jsdoc && node ../scripts/generate-api-docs.js",
@@ -59,6 +59,7 @@
59
59
  "express": "^5.2.1",
60
60
  "isows": "^1.0.6",
61
61
  "jest": "^30.2.0",
62
+ "msgpackr": "^2.0.1",
62
63
  "polymarket-us": "0.1.1",
63
64
  "tsx": "^4.21.0",
64
65
  "ws": "^8.18.0"