pmxtjs 2.51.2 → 2.51.4

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 (133) hide show
  1. package/README.md +15 -6
  2. package/dist/esm/generated/src/apis/DefaultApi.d.ts +6 -0
  3. package/dist/esm/generated/src/apis/DefaultApi.js +6 -0
  4. package/dist/esm/generated/src/models/CreateOrderParams.d.ts +20 -0
  5. package/dist/esm/generated/src/models/CreateOrderParams.js +11 -0
  6. package/dist/esm/pmxt/client.d.ts +40 -9
  7. package/dist/esm/pmxt/client.js +78 -3
  8. package/dist/esm/pmxt/hosted-typed-data.d.ts +1 -1
  9. package/dist/esm/pmxt/hosted-typed-data.js +14 -0
  10. package/dist/esm/pmxt/models.d.ts +17 -0
  11. package/dist/generated/src/apis/DefaultApi.d.ts +6 -0
  12. package/dist/generated/src/apis/DefaultApi.js +6 -0
  13. package/dist/generated/src/models/CreateOrderParams.d.ts +20 -0
  14. package/dist/generated/src/models/CreateOrderParams.js +12 -1
  15. package/dist/pmxt/client.d.ts +40 -9
  16. package/dist/pmxt/client.js +78 -3
  17. package/dist/pmxt/hosted-typed-data.d.ts +1 -1
  18. package/dist/pmxt/hosted-typed-data.js +14 -0
  19. package/dist/pmxt/models.d.ts +17 -0
  20. package/generated/docs/ArbitrageOpportunity.md +0 -29
  21. package/generated/docs/Balance.md +0 -25
  22. package/generated/docs/BaseRequest.md +0 -21
  23. package/generated/docs/BaseResponse.md +0 -22
  24. package/generated/docs/BuildOrder200Response.md +0 -23
  25. package/generated/docs/BuildOrderRequest.md +0 -22
  26. package/generated/docs/BuiltOrder.md +0 -26
  27. package/generated/docs/BuiltOrderTx.md +0 -24
  28. package/generated/docs/CancelOrderRequest.md +0 -22
  29. package/generated/docs/CloseRequest.md +0 -22
  30. package/generated/docs/CompareMarketPrices200Response.md +0 -23
  31. package/generated/docs/CompareMarketPricesRequest.md +0 -22
  32. package/generated/docs/CreateOrder200Response.md +0 -23
  33. package/generated/docs/CreateOrderParams.md +2 -30
  34. package/generated/docs/CreateOrderRequest.md +0 -22
  35. package/generated/docs/DataFeedsApi.md +0 -329
  36. package/generated/docs/DefaultApi.md +3 -1438
  37. package/generated/docs/ErrorDetail.md +0 -25
  38. package/generated/docs/ErrorResponse.md +0 -22
  39. package/generated/docs/EventFetchParams.md +0 -35
  40. package/generated/docs/EventFilterCriteria.md +0 -26
  41. package/generated/docs/EventFilterCriteriaTotalVolume.md +0 -22
  42. package/generated/docs/EventMatchResult.md +0 -22
  43. package/generated/docs/ExchangeCredentials.md +0 -29
  44. package/generated/docs/ExchangeCredentialsSignatureType.md +0 -20
  45. package/generated/docs/ExchangeOptions.md +0 -27
  46. package/generated/docs/ExecutionPriceResult.md +0 -23
  47. package/generated/docs/FeedFetchHistoricalPrices200Response.md +0 -22
  48. package/generated/docs/FeedFetchOHLCV200Response.md +0 -22
  49. package/generated/docs/FeedFetchOracleHistory200Response.md +0 -22
  50. package/generated/docs/FeedFetchOracleRound200Response.md +0 -22
  51. package/generated/docs/FeedFetchOrderBook200Response.md +0 -22
  52. package/generated/docs/FeedFetchOrderBook200ResponseData.md +0 -25
  53. package/generated/docs/FeedFetchTicker200Response.md +0 -22
  54. package/generated/docs/FeedFetchTickers200Response.md +0 -22
  55. package/generated/docs/FeedList200Response.md +0 -22
  56. package/generated/docs/FeedLoadMarkets200Response.md +0 -22
  57. package/generated/docs/FeedMarket.md +0 -27
  58. package/generated/docs/FeedOracleRound.md +0 -28
  59. package/generated/docs/FeedTicker.md +0 -42
  60. package/generated/docs/FetchArbitrage200Response.md +0 -23
  61. package/generated/docs/FetchArbitrageParams.md +0 -24
  62. package/generated/docs/FetchBalance200Response.md +0 -23
  63. package/generated/docs/FetchEvent200Response.md +0 -23
  64. package/generated/docs/FetchEventMatches200Response.md +0 -23
  65. package/generated/docs/FetchEventMatchesParams.md +0 -29
  66. package/generated/docs/FetchEvents200Response.md +0 -23
  67. package/generated/docs/FetchEventsPaginated200Response.md +0 -23
  68. package/generated/docs/FetchMarket200Response.md +0 -23
  69. package/generated/docs/FetchMarketMatches200Response.md +0 -23
  70. package/generated/docs/FetchMarketMatchesParams.md +0 -32
  71. package/generated/docs/FetchMarkets200Response.md +0 -23
  72. package/generated/docs/FetchMarketsPaginated200Response.md +0 -23
  73. package/generated/docs/FetchMatchedMarkets200Response.md +0 -23
  74. package/generated/docs/FetchMatchedMarketsParams.md +0 -24
  75. package/generated/docs/FetchMyTrades200Response.md +0 -23
  76. package/generated/docs/FetchOHLCV200Response.md +0 -23
  77. package/generated/docs/FetchOpenOrders200Response.md +0 -23
  78. package/generated/docs/FetchOrderBook200Response.md +0 -23
  79. package/generated/docs/FetchOrderBookParams.md +0 -24
  80. package/generated/docs/FetchOrderBooks200Response.md +0 -23
  81. package/generated/docs/FetchOrderBooksRequest.md +0 -22
  82. package/generated/docs/FetchPositions200Response.md +0 -23
  83. package/generated/docs/FetchSeries200Response.md +0 -23
  84. package/generated/docs/FetchTrades200Response.md +0 -23
  85. package/generated/docs/FilterEventsRequest.md +0 -22
  86. package/generated/docs/FilterEventsRequestArgsInner.md +0 -26
  87. package/generated/docs/FilterMarketsRequest.md +0 -22
  88. package/generated/docs/FilterMarketsRequestArgsInner.md +0 -31
  89. package/generated/docs/GetExecutionPrice200Response.md +0 -23
  90. package/generated/docs/GetExecutionPriceDetailed200Response.md +0 -23
  91. package/generated/docs/GetExecutionPriceDetailedRequest.md +0 -22
  92. package/generated/docs/GetExecutionPriceRequest.md +0 -22
  93. package/generated/docs/GetExecutionPriceRequestArgsInner.md +0 -27
  94. package/generated/docs/HealthCheck200Response.md +0 -22
  95. package/generated/docs/HistoryFilterParams.md +0 -24
  96. package/generated/docs/LoadMarkets200Response.md +0 -23
  97. package/generated/docs/LoadMarketsRequest.md +0 -22
  98. package/generated/docs/MarketFilterCriteria.md +0 -31
  99. package/generated/docs/MarketFilterCriteriaLiquidity.md +0 -22
  100. package/generated/docs/MarketFilterCriteriaOpenInterest.md +0 -22
  101. package/generated/docs/MarketFilterCriteriaPrice.md +0 -23
  102. package/generated/docs/MarketFilterCriteriaResolutionDate.md +0 -22
  103. package/generated/docs/MarketFilterCriteriaVolume.md +0 -22
  104. package/generated/docs/MarketFilterCriteriaVolume24h.md +0 -22
  105. package/generated/docs/MarketFilterParams.md +0 -34
  106. package/generated/docs/MarketOutcome.md +0 -26
  107. package/generated/docs/MatchResult.md +0 -27
  108. package/generated/docs/MatchedMarketPair.md +0 -30
  109. package/generated/docs/MyTradesParams.md +0 -26
  110. package/generated/docs/OHLCVParams.md +0 -24
  111. package/generated/docs/Order.md +0 -37
  112. package/generated/docs/OrderBook.md +0 -27
  113. package/generated/docs/OrderHistoryParams.md +0 -25
  114. package/generated/docs/OrderLevel.md +0 -23
  115. package/generated/docs/PaginatedEventsResult.md +0 -23
  116. package/generated/docs/PaginatedMarketsResult.md +0 -23
  117. package/generated/docs/Position.md +0 -32
  118. package/generated/docs/PriceCandle.md +0 -26
  119. package/generated/docs/PriceComparison.md +0 -27
  120. package/generated/docs/SubmitOrderRequest.md +0 -22
  121. package/generated/docs/Trade.md +0 -26
  122. package/generated/docs/TradesParams.md +0 -23
  123. package/generated/docs/UnifiedEvent.md +0 -33
  124. package/generated/docs/UnifiedMarket.md +0 -44
  125. package/generated/docs/UnifiedSeries.md +0 -31
  126. package/generated/docs/UserTrade.md +0 -32
  127. package/generated/package.json +1 -1
  128. package/generated/src/apis/DefaultApi.ts +6 -0
  129. package/generated/src/models/CreateOrderParams.ts +25 -0
  130. package/package.json +2 -2
  131. package/pmxt/client.ts +92 -11
  132. package/pmxt/hosted-typed-data.ts +17 -1
  133. package/pmxt/models.ts +20 -0
package/README.md CHANGED
@@ -49,7 +49,7 @@ const balance = await client.fetchBalance();
49
49
 
50
50
  ### How it works (hosted)
51
51
 
52
- When you pass `pmxtApiKey`, the SDK talks to PMXT's hosted services: catalog requests go to `api.pmxt.dev`, trading requests go to `trade.pmxt.dev`. The SDK does **not** spawn a local process. For Polymarket and Opinion, PMXT's PreFundedEscrow handles custody — you sign orders with your own key, PMXT settles on-chain.
52
+ When you pass `pmxtApiKey`, the SDK talks to PMXT's hosted services: catalog requests go to `api.pmxt.dev`, trading requests go to `trade.pmxt.dev`. The SDK does **not** spawn a local process. For Polymarket, Opinion, and Limitless, PMXT's PreFundedEscrow handles custody — you sign orders with your own key, PMXT settles on-chain.
53
53
 
54
54
  ### How it works (self-hosted)
55
55
 
@@ -120,7 +120,7 @@ const order = await trader.createOrder({
120
120
  amount: 5.0,
121
121
  denom: "usdc",
122
122
  slippage_pct: 30.0,
123
- } as any);
123
+ });
124
124
  console.log(`Order status: ${order.status}`);
125
125
  ```
126
126
 
@@ -143,7 +143,9 @@ When self-hosting, supply venue credentials directly — no `pmxtApiKey`. The SD
143
143
 
144
144
  **Polymarket:**
145
145
  ```typescript
146
- const poly = new pmxt.Polymarket({
146
+ import { Polymarket } from "pmxtjs";
147
+
148
+ const poly = new Polymarket({
147
149
  privateKey: process.env.POLYMARKET_PRIVATE_KEY,
148
150
  proxyAddress: process.env.POLYMARKET_PROXY_ADDRESS, // Optional
149
151
  // signatureType: 'gnosis-safe' (default)
@@ -152,7 +154,9 @@ const poly = new pmxt.Polymarket({
152
154
 
153
155
  **Kalshi:**
154
156
  ```typescript
155
- const kalshi = new pmxt.Kalshi({
157
+ import { Kalshi } from "pmxtjs";
158
+
159
+ const kalshi = new Kalshi({
156
160
  apiKey: process.env.KALSHI_API_KEY,
157
161
  privateKey: process.env.KALSHI_PRIVATE_KEY
158
162
  });
@@ -160,7 +164,9 @@ const kalshi = new pmxt.Kalshi({
160
164
 
161
165
  **Limitless:**
162
166
  ```typescript
163
- const limitless = new pmxt.Limitless({
167
+ import { Limitless } from "pmxtjs";
168
+
169
+ const limitless = new Limitless({
164
170
  privateKey: process.env.LIMITLESS_PRIVATE_KEY
165
171
  });
166
172
  ```
@@ -170,8 +176,11 @@ const limitless = new pmxt.Limitless({
170
176
  - `createOrder(params)` - Place a new order
171
177
  ```typescript
172
178
  // Using outcome shorthand (recommended)
179
+ const yes = market.yes;
180
+ if (!yes) throw new Error("Market has no YES outcome");
181
+
173
182
  await poly.createOrder({
174
- outcome: market.yes,
183
+ outcome: yes,
175
184
  side: 'buy',
176
185
  type: 'limit',
177
186
  amount: 10,
@@ -342,10 +342,12 @@ export declare class DefaultApi extends runtime.BaseAPI {
342
342
  */
343
343
  createOrder(requestParameters: CreateOrderOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateOrder200Response>;
344
344
  /**
345
+ * Fetch authenticated order history across open and closed orders.
345
346
  * Fetch All Orders
346
347
  */
347
348
  fetchAllOrdersRaw(requestParameters: FetchAllOrdersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchOpenOrders200Response>>;
348
349
  /**
350
+ * Fetch authenticated order history across open and closed orders.
349
351
  * Fetch All Orders
350
352
  */
351
353
  fetchAllOrders(requestParameters: FetchAllOrdersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchOpenOrders200Response>;
@@ -370,10 +372,12 @@ export declare class DefaultApi extends runtime.BaseAPI {
370
372
  */
371
373
  fetchBalance(requestParameters: FetchBalanceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchBalance200Response>;
372
374
  /**
375
+ * Fetch authenticated closed orders.
373
376
  * Fetch Closed Orders
374
377
  */
375
378
  fetchClosedOrdersRaw(requestParameters: FetchClosedOrdersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchOpenOrders200Response>>;
376
379
  /**
380
+ * Fetch authenticated closed orders.
377
381
  * Fetch Closed Orders
378
382
  */
379
383
  fetchClosedOrders(requestParameters: FetchClosedOrdersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchOpenOrders200Response>;
@@ -488,10 +492,12 @@ export declare class DefaultApi extends runtime.BaseAPI {
488
492
  */
489
493
  fetchMatchedPrices(requestParameters: FetchMatchedPricesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchMatchedMarkets200Response>;
490
494
  /**
495
+ * Fetch authenticated user trade history.
491
496
  * Fetch My Trades
492
497
  */
493
498
  fetchMyTradesRaw(requestParameters: FetchMyTradesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchMyTrades200Response>>;
494
499
  /**
500
+ * Fetch authenticated user trade history.
495
501
  * Fetch My Trades
496
502
  */
497
503
  fetchMyTrades(requestParameters: FetchMyTradesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchMyTrades200Response>;
@@ -168,6 +168,7 @@ export class DefaultApi extends runtime.BaseAPI {
168
168
  return await response.value();
169
169
  }
170
170
  /**
171
+ * Fetch authenticated order history across open and closed orders.
171
172
  * Fetch All Orders
172
173
  */
173
174
  async fetchAllOrdersRaw(requestParameters, initOverrides) {
@@ -202,6 +203,7 @@ export class DefaultApi extends runtime.BaseAPI {
202
203
  return new runtime.JSONApiResponse(response, (jsonValue) => FetchOpenOrders200ResponseFromJSON(jsonValue));
203
204
  }
204
205
  /**
206
+ * Fetch authenticated order history across open and closed orders.
205
207
  * Fetch All Orders
206
208
  */
207
209
  async fetchAllOrders(requestParameters, initOverrides) {
@@ -280,6 +282,7 @@ export class DefaultApi extends runtime.BaseAPI {
280
282
  return await response.value();
281
283
  }
282
284
  /**
285
+ * Fetch authenticated closed orders.
283
286
  * Fetch Closed Orders
284
287
  */
285
288
  async fetchClosedOrdersRaw(requestParameters, initOverrides) {
@@ -314,6 +317,7 @@ export class DefaultApi extends runtime.BaseAPI {
314
317
  return new runtime.JSONApiResponse(response, (jsonValue) => FetchOpenOrders200ResponseFromJSON(jsonValue));
315
318
  }
316
319
  /**
320
+ * Fetch authenticated closed orders.
317
321
  * Fetch Closed Orders
318
322
  */
319
323
  async fetchClosedOrders(requestParameters, initOverrides) {
@@ -944,6 +948,7 @@ export class DefaultApi extends runtime.BaseAPI {
944
948
  return await response.value();
945
949
  }
946
950
  /**
951
+ * Fetch authenticated user trade history.
947
952
  * Fetch My Trades
948
953
  */
949
954
  async fetchMyTradesRaw(requestParameters, initOverrides) {
@@ -981,6 +986,7 @@ export class DefaultApi extends runtime.BaseAPI {
981
986
  return new runtime.JSONApiResponse(response, (jsonValue) => FetchMyTrades200ResponseFromJSON(jsonValue));
982
987
  }
983
988
  /**
989
+ * Fetch authenticated user trade history.
984
990
  * Fetch My Trades
985
991
  */
986
992
  async fetchMyTrades(requestParameters, initOverrides) {
@@ -51,6 +51,18 @@ export interface CreateOrderParams {
51
51
  * @memberof CreateOrderParams
52
52
  */
53
53
  price?: number;
54
+ /**
55
+ * Hosted mode: amount unit.
56
+ * @type {string}
57
+ * @memberof CreateOrderParams
58
+ */
59
+ denom?: CreateOrderParamsDenomEnum;
60
+ /**
61
+ * Hosted mode: maximum market-order slippage percentage.
62
+ * @type {number}
63
+ * @memberof CreateOrderParams
64
+ */
65
+ slippagePct?: number;
54
66
  /**
55
67
  * Optional fee rate (e.g., 1000 for 0.1%)
56
68
  * @type {number}
@@ -92,6 +104,14 @@ export declare const CreateOrderParamsTypeEnum: {
92
104
  readonly Limit: "limit";
93
105
  };
94
106
  export type CreateOrderParamsTypeEnum = typeof CreateOrderParamsTypeEnum[keyof typeof CreateOrderParamsTypeEnum];
107
+ /**
108
+ * @export
109
+ */
110
+ export declare const CreateOrderParamsDenomEnum: {
111
+ readonly Usdc: "usdc";
112
+ readonly Shares: "shares";
113
+ };
114
+ export type CreateOrderParamsDenomEnum = typeof CreateOrderParamsDenomEnum[keyof typeof CreateOrderParamsDenomEnum];
95
115
  /**
96
116
  * Check if a given object implements the CreateOrderParams interface.
97
117
  */
@@ -25,6 +25,13 @@ export const CreateOrderParamsTypeEnum = {
25
25
  Market: 'market',
26
26
  Limit: 'limit'
27
27
  };
28
+ /**
29
+ * @export
30
+ */
31
+ export const CreateOrderParamsDenomEnum = {
32
+ Usdc: 'usdc',
33
+ Shares: 'shares'
34
+ };
28
35
  /**
29
36
  * Check if a given object implements the CreateOrderParams interface.
30
37
  */
@@ -55,6 +62,8 @@ export function CreateOrderParamsFromJSONTyped(json, ignoreDiscriminator) {
55
62
  'type': json['type'],
56
63
  'amount': json['amount'],
57
64
  'price': json['price'] == null ? undefined : json['price'],
65
+ 'denom': json['denom'] == null ? undefined : json['denom'],
66
+ 'slippagePct': json['slippage_pct'] == null ? undefined : json['slippage_pct'],
58
67
  'fee': json['fee'] == null ? undefined : json['fee'],
59
68
  'tickSize': json['tickSize'] == null ? undefined : json['tickSize'],
60
69
  'negRisk': json['negRisk'] == null ? undefined : json['negRisk'],
@@ -75,6 +84,8 @@ export function CreateOrderParamsToJSONTyped(value, ignoreDiscriminator = false)
75
84
  'type': value['type'],
76
85
  'amount': value['amount'],
77
86
  'price': value['price'],
87
+ 'denom': value['denom'],
88
+ 'slippage_pct': value['slippagePct'],
78
89
  'fee': value['fee'],
79
90
  'tickSize': value['tickSize'],
80
91
  'negRisk': value['negRisk'],
@@ -5,7 +5,7 @@
5
5
  * OpenAPI client, matching the Python API exactly.
6
6
  */
7
7
  import { Configuration, DefaultApi, ExchangeCredentials } from "../generated/src/index.js";
8
- import { Balance, BuiltOrder, CreateOrderParams, EventFetchParams, EventFilterCriteria, EventFilterFunction, ExecutionPriceResult, FetchOrderBookParams, MarketFetchParams, MarketFilterCriteria, MarketFilterFunction, MarketOutcome, MyTradesParams, Order, OrderBook, OrderHistoryParams, PaginatedMarketsResult, PaginatedEventsResult, Position, SeriesFetchParams, PriceCandle, SubscribedAddressSnapshot, SubscriptionOption, Trade, UnifiedEvent, UnifiedMarket, UnifiedSeries, UserTrade, FirehoseEvent, FetchMatchedMarketClustersParams } from "./models.js";
8
+ import { Balance, BuiltOrder, CreateOrderInput, EventFetchParams, EventFilterCriteria, EventFilterFunction, ExecutionPriceResult, FetchOrderBookParams, MarketFetchParams, MarketFilterCriteria, MarketFilterFunction, MarketOutcome, MyTradesParams, Order, OrderBook, OrderHistoryParams, PaginatedMarketsResult, PaginatedEventsResult, Position, SeriesFetchParams, PriceCandle, SubscribedAddressSnapshot, SubscriptionOption, Trade, UnifiedEvent, UnifiedMarket, UnifiedSeries, UserTrade, FirehoseEvent, FetchMatchedMarketClustersParams } from "./models.js";
9
9
  import { ServerManager } from "./server-manager.js";
10
10
  import type { Signer } from "./signers.js";
11
11
  import { Escrow } from "./escrow.js";
@@ -336,7 +336,13 @@ export declare abstract class Exchange {
336
336
  * ```
337
337
  */
338
338
  watchAllOrderBooks(venues?: string[]): Promise<FirehoseEvent>;
339
- /** @deprecated Use {@link watchAllOrderBooks} instead. */
339
+ /**
340
+ * Stream all orderbook updates across venues.
341
+ *
342
+ * @deprecated Use {@link watchAllOrderBooks} instead.
343
+ * @param venues - Optional venue filter
344
+ * @returns Next event with source, symbol, and orderbook
345
+ */
340
346
  firehose(venues?: string[]): Promise<FirehoseEvent>;
341
347
  /**
342
348
  * Watch real-time trade updates via WebSocket.
@@ -412,17 +418,18 @@ export declare abstract class Exchange {
412
418
  * const order = await exchange.submitOrder(built);
413
419
  *
414
420
  * // Using outcome shorthand:
421
+ * const yes = market.yes;
422
+ * if (!yes) throw new Error("Market has no YES outcome");
423
+ *
415
424
  * const built2 = await exchange.buildOrder({
416
- * outcome: market.yes,
425
+ * outcome: yes,
417
426
  * side: "buy",
418
427
  * type: "market",
419
428
  * amount: 10
420
429
  * });
421
430
  * ```
422
431
  */
423
- buildOrder(params: CreateOrderParams & {
424
- outcome?: MarketOutcome;
425
- }): Promise<BuiltOrder>;
432
+ buildOrder(params: CreateOrderInput): Promise<BuiltOrder>;
426
433
  private _discoverHostedAccount;
427
434
  private _executeSorOrder;
428
435
  /**
@@ -476,9 +483,7 @@ export declare abstract class Exchange {
476
483
  * });
477
484
  * ```
478
485
  */
479
- createOrder(params: CreateOrderParams & {
480
- outcome?: MarketOutcome;
481
- }): Promise<Order>;
486
+ createOrder(params: CreateOrderInput): Promise<Order>;
482
487
  /**
483
488
  * Calculate the average execution price for a given amount by walking the order book.
484
489
  * Uses the sidecar server for calculation to ensure consistency.
@@ -635,6 +640,32 @@ export declare class Kalshi extends Exchange {
635
640
  */
636
641
  export declare class Limitless extends Exchange {
637
642
  constructor(options?: ExchangeOptions);
643
+ /**
644
+ * Watch real-time AMM price updates via WebSocket.
645
+ *
646
+ * @param marketAddress - Limitless market contract address
647
+ * @param callback - Optional callback invoked with the returned update
648
+ * @returns Next price update
649
+ */
650
+ watchPrices(marketAddress: string, callback?: (data: Record<string, any>) => void): Promise<Record<string, any>>;
651
+ /**
652
+ * Watch real-time Limitless user position updates.
653
+ *
654
+ * Requires API key authentication.
655
+ *
656
+ * @param callback - Optional callback invoked with the returned positions
657
+ * @returns Next position update payload
658
+ */
659
+ watchUserPositions(callback?: (data: Position[]) => void): Promise<Position[]>;
660
+ /**
661
+ * Watch real-time Limitless user transaction updates.
662
+ *
663
+ * Requires API key authentication.
664
+ *
665
+ * @param callback - Optional callback invoked with the returned update
666
+ * @returns Next transaction update
667
+ */
668
+ watchUserTransactions(callback?: (data: Record<string, any>) => void): Promise<Record<string, any>>;
638
669
  }
639
670
  /**
640
671
  * Kalshi Demo exchange client (paper trading / sandbox environment).
@@ -1807,7 +1807,13 @@ export class Exchange {
1807
1807
  }
1808
1808
  throw this.wsTransportUnavailableError("watchAllOrderBooks");
1809
1809
  }
1810
- /** @deprecated Use {@link watchAllOrderBooks} instead. */
1810
+ /**
1811
+ * Stream all orderbook updates across venues.
1812
+ *
1813
+ * @deprecated Use {@link watchAllOrderBooks} instead.
1814
+ * @param venues - Optional venue filter
1815
+ * @returns Next event with source, symbol, and orderbook
1816
+ */
1811
1817
  async firehose(venues) {
1812
1818
  return this.watchAllOrderBooks(venues);
1813
1819
  }
@@ -1932,8 +1938,11 @@ export class Exchange {
1932
1938
  * const order = await exchange.submitOrder(built);
1933
1939
  *
1934
1940
  * // Using outcome shorthand:
1941
+ * const yes = market.yes;
1942
+ * if (!yes) throw new Error("Market has no YES outcome");
1943
+ *
1935
1944
  * const built2 = await exchange.buildOrder({
1936
- * outcome: market.yes,
1945
+ * outcome: yes,
1937
1946
  * side: "buy",
1938
1947
  * type: "market",
1939
1948
  * amount: 10
@@ -2226,8 +2235,9 @@ export class Exchange {
2226
2235
  const venue = this.exchangeName;
2227
2236
  if (venue === "polymarket")
2228
2237
  return "cancel_polymarket";
2229
- if (venue === "limitless")
2238
+ if (venue === "limitless") {
2230
2239
  return isPull ? "cancel_limitless_base_pull" : "cancel_limitless_polygon";
2240
+ }
2231
2241
  return isPull ? "cancel_opinion_bsc_pull" : "cancel_opinion_polygon";
2232
2242
  }
2233
2243
  /**
@@ -2800,6 +2810,71 @@ export class Limitless extends Exchange {
2800
2810
  constructor(options = {}) {
2801
2811
  super("limitless", options);
2802
2812
  }
2813
+ /**
2814
+ * Watch real-time AMM price updates via WebSocket.
2815
+ *
2816
+ * @param marketAddress - Limitless market contract address
2817
+ * @param callback - Optional callback invoked with the returned update
2818
+ * @returns Next price update
2819
+ */
2820
+ async watchPrices(marketAddress, callback) {
2821
+ await this.initPromise;
2822
+ try {
2823
+ const json = await this.sidecarPostRequest("watchPrices", [marketAddress]);
2824
+ const data = this.handleResponse(json);
2825
+ callback?.(data);
2826
+ return data;
2827
+ }
2828
+ catch (error) {
2829
+ if (error instanceof PmxtError)
2830
+ throw error;
2831
+ throw new PmxtError(`Failed to watch prices: ${error}`);
2832
+ }
2833
+ }
2834
+ /**
2835
+ * Watch real-time Limitless user position updates.
2836
+ *
2837
+ * Requires API key authentication.
2838
+ *
2839
+ * @param callback - Optional callback invoked with the returned positions
2840
+ * @returns Next position update payload
2841
+ */
2842
+ async watchUserPositions(callback) {
2843
+ await this.initPromise;
2844
+ try {
2845
+ const json = await this.sidecarPostRequest("watchUserPositions", []);
2846
+ const data = this.handleResponse(json).map(convertPosition);
2847
+ callback?.(data);
2848
+ return data;
2849
+ }
2850
+ catch (error) {
2851
+ if (error instanceof PmxtError)
2852
+ throw error;
2853
+ throw new PmxtError(`Failed to watch user positions: ${error}`);
2854
+ }
2855
+ }
2856
+ /**
2857
+ * Watch real-time Limitless user transaction updates.
2858
+ *
2859
+ * Requires API key authentication.
2860
+ *
2861
+ * @param callback - Optional callback invoked with the returned update
2862
+ * @returns Next transaction update
2863
+ */
2864
+ async watchUserTransactions(callback) {
2865
+ await this.initPromise;
2866
+ try {
2867
+ const json = await this.sidecarPostRequest("watchUserTransactions", []);
2868
+ const data = this.handleResponse(json);
2869
+ callback?.(data);
2870
+ return data;
2871
+ }
2872
+ catch (error) {
2873
+ if (error instanceof PmxtError)
2874
+ throw error;
2875
+ throw new PmxtError(`Failed to watch user transactions: ${error}`);
2876
+ }
2877
+ }
2803
2878
  }
2804
2879
  /**
2805
2880
  * Kalshi Demo exchange client (paper trading / sandbox environment).
@@ -9,7 +9,7 @@
9
9
  * Layer 3 uses the optional `ethers` peer dependency for typed-data verification.
10
10
  */
11
11
  import { TypedData } from "./signers.js";
12
- export type HostedRoute = "polymarket_buy" | "polymarket_sell" | "limitless_buy" | "limitless_sell_polygon" | "limitless_sell_base_pull" | "opinion_buy" | "opinion_sell_polygon" | "opinion_sell_bsc_pull" | "cancel_polymarket" | "cancel_opinion_polygon" | "cancel_opinion_bsc_pull";
12
+ export type HostedRoute = "polymarket_buy" | "polymarket_sell" | "limitless_buy" | "limitless_sell_polygon" | "limitless_sell_base_pull" | "opinion_buy" | "opinion_sell_polygon" | "opinion_sell_bsc_pull" | "cancel_polymarket" | "cancel_opinion_polygon" | "cancel_opinion_bsc_pull" | "cancel_limitless_polygon" | "cancel_limitless_base_pull";
13
13
  export declare const SECP256K1_HALF_N = 57896044618658097711785492504343953926418782139537452191302581570759080747168n;
14
14
  /**
15
15
  * Validate the structural shape of a typed-data payload before signing.
@@ -172,6 +172,20 @@ const SCHEMAS = {
172
172
  messageKeys: messageKeysFromFields(CANCEL_PULL_FIELDS),
173
173
  walletField: "user",
174
174
  },
175
+ cancel_limitless_polygon: {
176
+ primaryType: "CancelOrder",
177
+ domain: PREFUNDED_DOMAIN,
178
+ fields: CANCEL_ORDER_FIELDS,
179
+ messageKeys: messageKeysFromFields(CANCEL_ORDER_FIELDS),
180
+ walletField: "user",
181
+ },
182
+ cancel_limitless_base_pull: {
183
+ primaryType: "CancelPull",
184
+ domain: LIMITLESS_VENUE_DOMAIN,
185
+ fields: CANCEL_PULL_FIELDS,
186
+ messageKeys: messageKeysFromFields(CANCEL_PULL_FIELDS),
187
+ walletField: "user",
188
+ },
175
189
  };
176
190
  // secp256k1 group order / 2, for canonical low-s check.
177
191
  export const SECP256K1_HALF_N = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0n;
@@ -400,6 +400,10 @@ export interface CreateOrderParams {
400
400
  amount: number;
401
401
  /** Limit price (required for limit orders, 0.0-1.0) */
402
402
  price?: number;
403
+ /** Hosted mode: unit that amount is denominated in. Market buys use usdc; market sells and limit orders use shares. */
404
+ denom?: "usdc" | "shares";
405
+ /** Hosted mode: maximum slippage percentage for market orders. */
406
+ slippage_pct?: number;
403
407
  /** Optional fee rate (e.g., 1000 for 0.1%) */
404
408
  fee?: number;
405
409
  /** Optional override for Limitless/Polymarket */
@@ -409,6 +413,19 @@ export interface CreateOrderParams {
409
413
  /** Limitless delegated signing: profile ID to trade on behalf of */
410
414
  onBehalfOf?: number;
411
415
  }
416
+ /**
417
+ * Public order input accepted by createOrder/buildOrder.
418
+ *
419
+ * Callers can either pass explicit marketId/outcomeId fields, or pass an
420
+ * outcome object returned by fetchMarkets and let the SDK infer those ids.
421
+ */
422
+ export type CreateOrderInput = (CreateOrderParams & {
423
+ outcome?: never;
424
+ }) | (Omit<CreateOrderParams, 'marketId' | 'outcomeId'> & {
425
+ outcome: MarketOutcome;
426
+ marketId?: never;
427
+ outcomeId?: never;
428
+ });
412
429
  /** Alias matching the core MarketFetchParams name. */
413
430
  export type MarketFetchParams = MarketFilterParams;
414
431
  /**
@@ -342,10 +342,12 @@ export declare class DefaultApi extends runtime.BaseAPI {
342
342
  */
343
343
  createOrder(requestParameters: CreateOrderOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateOrder200Response>;
344
344
  /**
345
+ * Fetch authenticated order history across open and closed orders.
345
346
  * Fetch All Orders
346
347
  */
347
348
  fetchAllOrdersRaw(requestParameters: FetchAllOrdersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchOpenOrders200Response>>;
348
349
  /**
350
+ * Fetch authenticated order history across open and closed orders.
349
351
  * Fetch All Orders
350
352
  */
351
353
  fetchAllOrders(requestParameters: FetchAllOrdersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchOpenOrders200Response>;
@@ -370,10 +372,12 @@ export declare class DefaultApi extends runtime.BaseAPI {
370
372
  */
371
373
  fetchBalance(requestParameters: FetchBalanceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchBalance200Response>;
372
374
  /**
375
+ * Fetch authenticated closed orders.
373
376
  * Fetch Closed Orders
374
377
  */
375
378
  fetchClosedOrdersRaw(requestParameters: FetchClosedOrdersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchOpenOrders200Response>>;
376
379
  /**
380
+ * Fetch authenticated closed orders.
377
381
  * Fetch Closed Orders
378
382
  */
379
383
  fetchClosedOrders(requestParameters: FetchClosedOrdersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchOpenOrders200Response>;
@@ -488,10 +492,12 @@ export declare class DefaultApi extends runtime.BaseAPI {
488
492
  */
489
493
  fetchMatchedPrices(requestParameters: FetchMatchedPricesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchMatchedMarkets200Response>;
490
494
  /**
495
+ * Fetch authenticated user trade history.
491
496
  * Fetch My Trades
492
497
  */
493
498
  fetchMyTradesRaw(requestParameters: FetchMyTradesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchMyTrades200Response>>;
494
499
  /**
500
+ * Fetch authenticated user trade history.
495
501
  * Fetch My Trades
496
502
  */
497
503
  fetchMyTrades(requestParameters: FetchMyTradesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchMyTrades200Response>;
@@ -205,6 +205,7 @@ class DefaultApi extends runtime.BaseAPI {
205
205
  return await response.value();
206
206
  }
207
207
  /**
208
+ * Fetch authenticated order history across open and closed orders.
208
209
  * Fetch All Orders
209
210
  */
210
211
  async fetchAllOrdersRaw(requestParameters, initOverrides) {
@@ -239,6 +240,7 @@ class DefaultApi extends runtime.BaseAPI {
239
240
  return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.FetchOpenOrders200ResponseFromJSON)(jsonValue));
240
241
  }
241
242
  /**
243
+ * Fetch authenticated order history across open and closed orders.
242
244
  * Fetch All Orders
243
245
  */
244
246
  async fetchAllOrders(requestParameters, initOverrides) {
@@ -317,6 +319,7 @@ class DefaultApi extends runtime.BaseAPI {
317
319
  return await response.value();
318
320
  }
319
321
  /**
322
+ * Fetch authenticated closed orders.
320
323
  * Fetch Closed Orders
321
324
  */
322
325
  async fetchClosedOrdersRaw(requestParameters, initOverrides) {
@@ -351,6 +354,7 @@ class DefaultApi extends runtime.BaseAPI {
351
354
  return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.FetchOpenOrders200ResponseFromJSON)(jsonValue));
352
355
  }
353
356
  /**
357
+ * Fetch authenticated closed orders.
354
358
  * Fetch Closed Orders
355
359
  */
356
360
  async fetchClosedOrders(requestParameters, initOverrides) {
@@ -981,6 +985,7 @@ class DefaultApi extends runtime.BaseAPI {
981
985
  return await response.value();
982
986
  }
983
987
  /**
988
+ * Fetch authenticated user trade history.
984
989
  * Fetch My Trades
985
990
  */
986
991
  async fetchMyTradesRaw(requestParameters, initOverrides) {
@@ -1018,6 +1023,7 @@ class DefaultApi extends runtime.BaseAPI {
1018
1023
  return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.FetchMyTrades200ResponseFromJSON)(jsonValue));
1019
1024
  }
1020
1025
  /**
1026
+ * Fetch authenticated user trade history.
1021
1027
  * Fetch My Trades
1022
1028
  */
1023
1029
  async fetchMyTrades(requestParameters, initOverrides) {
@@ -51,6 +51,18 @@ export interface CreateOrderParams {
51
51
  * @memberof CreateOrderParams
52
52
  */
53
53
  price?: number;
54
+ /**
55
+ * Hosted mode: amount unit.
56
+ * @type {string}
57
+ * @memberof CreateOrderParams
58
+ */
59
+ denom?: CreateOrderParamsDenomEnum;
60
+ /**
61
+ * Hosted mode: maximum market-order slippage percentage.
62
+ * @type {number}
63
+ * @memberof CreateOrderParams
64
+ */
65
+ slippagePct?: number;
54
66
  /**
55
67
  * Optional fee rate (e.g., 1000 for 0.1%)
56
68
  * @type {number}
@@ -92,6 +104,14 @@ export declare const CreateOrderParamsTypeEnum: {
92
104
  readonly Limit: "limit";
93
105
  };
94
106
  export type CreateOrderParamsTypeEnum = typeof CreateOrderParamsTypeEnum[keyof typeof CreateOrderParamsTypeEnum];
107
+ /**
108
+ * @export
109
+ */
110
+ export declare const CreateOrderParamsDenomEnum: {
111
+ readonly Usdc: "usdc";
112
+ readonly Shares: "shares";
113
+ };
114
+ export type CreateOrderParamsDenomEnum = typeof CreateOrderParamsDenomEnum[keyof typeof CreateOrderParamsDenomEnum];
95
115
  /**
96
116
  * Check if a given object implements the CreateOrderParams interface.
97
117
  */
@@ -13,7 +13,7 @@
13
13
  * Do not edit the class manually.
14
14
  */
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.CreateOrderParamsTypeEnum = exports.CreateOrderParamsSideEnum = void 0;
16
+ exports.CreateOrderParamsDenomEnum = exports.CreateOrderParamsTypeEnum = exports.CreateOrderParamsSideEnum = void 0;
17
17
  exports.instanceOfCreateOrderParams = instanceOfCreateOrderParams;
18
18
  exports.CreateOrderParamsFromJSON = CreateOrderParamsFromJSON;
19
19
  exports.CreateOrderParamsFromJSONTyped = CreateOrderParamsFromJSONTyped;
@@ -33,6 +33,13 @@ exports.CreateOrderParamsTypeEnum = {
33
33
  Market: 'market',
34
34
  Limit: 'limit'
35
35
  };
36
+ /**
37
+ * @export
38
+ */
39
+ exports.CreateOrderParamsDenomEnum = {
40
+ Usdc: 'usdc',
41
+ Shares: 'shares'
42
+ };
36
43
  /**
37
44
  * Check if a given object implements the CreateOrderParams interface.
38
45
  */
@@ -63,6 +70,8 @@ function CreateOrderParamsFromJSONTyped(json, ignoreDiscriminator) {
63
70
  'type': json['type'],
64
71
  'amount': json['amount'],
65
72
  'price': json['price'] == null ? undefined : json['price'],
73
+ 'denom': json['denom'] == null ? undefined : json['denom'],
74
+ 'slippagePct': json['slippage_pct'] == null ? undefined : json['slippage_pct'],
66
75
  'fee': json['fee'] == null ? undefined : json['fee'],
67
76
  'tickSize': json['tickSize'] == null ? undefined : json['tickSize'],
68
77
  'negRisk': json['negRisk'] == null ? undefined : json['negRisk'],
@@ -83,6 +92,8 @@ function CreateOrderParamsToJSONTyped(value, ignoreDiscriminator = false) {
83
92
  'type': value['type'],
84
93
  'amount': value['amount'],
85
94
  'price': value['price'],
95
+ 'denom': value['denom'],
96
+ 'slippage_pct': value['slippagePct'],
86
97
  'fee': value['fee'],
87
98
  'tickSize': value['tickSize'],
88
99
  'negRisk': value['negRisk'],