pmxtjs 2.42.7 → 2.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/generated/src/apis/DefaultApi.d.ts +120 -4
- package/dist/esm/generated/src/apis/DefaultApi.js +136 -5
- package/dist/esm/generated/src/models/FetchOrderBooks200Response.d.ts +48 -0
- package/dist/esm/generated/src/models/FetchOrderBooks200Response.js +48 -0
- package/dist/esm/generated/src/models/FetchOrderBooksRequest.d.ts +39 -0
- package/dist/esm/generated/src/models/FetchOrderBooksRequest.js +46 -0
- package/dist/esm/generated/src/models/OrderBook.d.ts +6 -0
- package/dist/esm/generated/src/models/OrderBook.js +2 -0
- package/dist/esm/generated/src/models/index.d.ts +2 -0
- package/dist/esm/generated/src/models/index.js +2 -0
- package/dist/esm/index.d.ts +5 -2
- package/dist/esm/index.js +5 -2
- package/dist/esm/pmxt/client.d.ts +45 -3
- package/dist/esm/pmxt/client.js +103 -5
- package/dist/esm/pmxt/models.d.ts +3 -1
- package/dist/generated/src/apis/DefaultApi.d.ts +120 -4
- package/dist/generated/src/apis/DefaultApi.js +137 -6
- package/dist/generated/src/models/FetchOrderBooks200Response.d.ts +48 -0
- package/dist/generated/src/models/FetchOrderBooks200Response.js +55 -0
- package/dist/generated/src/models/FetchOrderBooksRequest.d.ts +39 -0
- package/dist/generated/src/models/FetchOrderBooksRequest.js +53 -0
- package/dist/generated/src/models/OrderBook.d.ts +6 -0
- package/dist/generated/src/models/OrderBook.js +2 -0
- package/dist/generated/src/models/index.d.ts +2 -0
- package/dist/generated/src/models/index.js +2 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +7 -1
- package/dist/pmxt/client.d.ts +45 -3
- package/dist/pmxt/client.js +107 -6
- package/dist/pmxt/models.d.ts +3 -1
- package/generated/.openapi-generator/FILES +4 -0
- package/generated/docs/DefaultApi.md +130 -59
- package/generated/docs/FetchOrderBooks200Response.md +38 -0
- package/generated/docs/FetchOrderBooksRequest.md +36 -0
- package/generated/docs/GetExecutionPriceRequestArgsInner.md +2 -0
- package/generated/docs/OrderBook.md +2 -0
- package/generated/package.json +1 -1
- package/generated/src/apis/DefaultApi.ts +160 -5
- package/generated/src/models/FetchOrderBooks200Response.ts +96 -0
- package/generated/src/models/FetchOrderBooksRequest.ts +82 -0
- package/generated/src/models/OrderBook.ts +8 -0
- package/generated/src/models/index.ts +2 -0
- package/index.ts +5 -2
- package/package.json +2 -2
- package/pmxt/client.ts +111 -11
- package/pmxt/models.ts +4 -1
package/dist/pmxt/client.d.ts
CHANGED
|
@@ -156,7 +156,8 @@ export declare abstract class Exchange {
|
|
|
156
156
|
fetchEvents(params?: EventFetchParams): Promise<UnifiedEvent[]>;
|
|
157
157
|
fetchMarket(params?: MarketFetchParams): Promise<UnifiedMarket>;
|
|
158
158
|
fetchEvent(params?: EventFetchParams): Promise<UnifiedEvent>;
|
|
159
|
-
fetchOrderBook(outcomeId: string | MarketOutcome,
|
|
159
|
+
fetchOrderBook(outcomeId: string | MarketOutcome, limit?: number, params?: Record<string, any>): Promise<OrderBook | OrderBook[]>;
|
|
160
|
+
fetchOrderBooks(outcomeIds: (string | MarketOutcome)[]): Promise<Record<string, OrderBook>>;
|
|
160
161
|
submitOrder(built: BuiltOrder): Promise<Order>;
|
|
161
162
|
cancelOrder(orderId: string): Promise<Order>;
|
|
162
163
|
fetchOrder(orderId: string): Promise<Order>;
|
|
@@ -215,6 +216,7 @@ export declare abstract class Exchange {
|
|
|
215
216
|
*
|
|
216
217
|
* @param outcomeId - Outcome ID to watch
|
|
217
218
|
* @param limit - Optional depth limit for order book
|
|
219
|
+
* @param params - Optional exchange-specific parameters
|
|
218
220
|
* @returns Next order book update
|
|
219
221
|
*
|
|
220
222
|
* @example
|
|
@@ -227,7 +229,7 @@ export declare abstract class Exchange {
|
|
|
227
229
|
* }
|
|
228
230
|
* ```
|
|
229
231
|
*/
|
|
230
|
-
watchOrderBook(outcomeId: string | MarketOutcome, limit?: number): Promise<OrderBook>;
|
|
232
|
+
watchOrderBook(outcomeId: string | MarketOutcome, limit?: number, params?: Record<string, any>): Promise<OrderBook>;
|
|
231
233
|
/**
|
|
232
234
|
* Watch real-time order book updates for multiple outcomes at once.
|
|
233
235
|
*
|
|
@@ -240,6 +242,7 @@ export declare abstract class Exchange {
|
|
|
240
242
|
*
|
|
241
243
|
* @param outcomeIds - Array of outcome IDs (or MarketOutcome objects)
|
|
242
244
|
* @param limit - Optional depth limit for each order book
|
|
245
|
+
* @param params - Optional exchange-specific parameters
|
|
243
246
|
* @returns Record mapping ticker to OrderBook
|
|
244
247
|
*
|
|
245
248
|
* @example
|
|
@@ -253,7 +256,7 @@ export declare abstract class Exchange {
|
|
|
253
256
|
* }
|
|
254
257
|
* ```
|
|
255
258
|
*/
|
|
256
|
-
watchOrderBooks(outcomeIds: (string | MarketOutcome)[], limit?: number): Promise<Record<string, OrderBook>>;
|
|
259
|
+
watchOrderBooks(outcomeIds: (string | MarketOutcome)[], limit?: number, params?: Record<string, any>): Promise<Record<string, OrderBook>>;
|
|
257
260
|
/**
|
|
258
261
|
* Stream all orderbook updates across venues via the hosted WebSocket API.
|
|
259
262
|
*
|
|
@@ -661,3 +664,42 @@ export declare class Smarkets extends Exchange {
|
|
|
661
664
|
export declare class PolymarketUS extends Exchange {
|
|
662
665
|
constructor(options?: ExchangeOptions);
|
|
663
666
|
}
|
|
667
|
+
/**
|
|
668
|
+
* Gemini Titan exchange client.
|
|
669
|
+
*
|
|
670
|
+
* @example
|
|
671
|
+
* ```typescript
|
|
672
|
+
* const titan = new GeminiTitan();
|
|
673
|
+
* const markets = await titan.fetchMarkets();
|
|
674
|
+
* ```
|
|
675
|
+
*/
|
|
676
|
+
export declare class GeminiTitan extends Exchange {
|
|
677
|
+
constructor(options?: ExchangeOptions);
|
|
678
|
+
}
|
|
679
|
+
/**
|
|
680
|
+
* Hyperliquid exchange client.
|
|
681
|
+
*
|
|
682
|
+
* @example
|
|
683
|
+
* ```typescript
|
|
684
|
+
* const hl = new Hyperliquid();
|
|
685
|
+
* const markets = await hl.fetchMarkets();
|
|
686
|
+
* ```
|
|
687
|
+
*/
|
|
688
|
+
export declare class Hyperliquid extends Exchange {
|
|
689
|
+
constructor(options?: ExchangeOptions);
|
|
690
|
+
}
|
|
691
|
+
/**
|
|
692
|
+
* Mock exchange client.
|
|
693
|
+
*
|
|
694
|
+
* Offline deterministic exchange for testing and development.
|
|
695
|
+
* No credentials required.
|
|
696
|
+
*
|
|
697
|
+
* @example
|
|
698
|
+
* ```typescript
|
|
699
|
+
* const mock = new Mock();
|
|
700
|
+
* const markets = await mock.fetchMarkets();
|
|
701
|
+
* ```
|
|
702
|
+
*/
|
|
703
|
+
export declare class Mock extends Exchange {
|
|
704
|
+
constructor(options?: ExchangeOptions);
|
|
705
|
+
}
|
package/dist/pmxt/client.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* OpenAPI client, matching the Python API exactly.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.PolymarketUS = exports.Smarkets = exports.Metaculus = exports.Opinion = exports.Baozi = exports.Probable = exports.Myriad = exports.KalshiDemo = exports.Limitless = exports.Kalshi = exports.Polymarket = exports.Exchange = void 0;
|
|
9
|
+
exports.Mock = exports.Hyperliquid = exports.GeminiTitan = exports.PolymarketUS = exports.Smarkets = exports.Metaculus = exports.Opinion = exports.Baozi = exports.Probable = exports.Myriad = exports.KalshiDemo = exports.Limitless = exports.Kalshi = exports.Polymarket = exports.Exchange = void 0;
|
|
10
10
|
const index_js_1 = require("../generated/src/index.js");
|
|
11
11
|
const models_js_1 = require("./models.js");
|
|
12
12
|
const server_manager_js_1 = require("./server-manager.js");
|
|
@@ -633,13 +633,18 @@ class Exchange {
|
|
|
633
633
|
throw new errors_js_1.PmxtError(`Failed to fetchEvent: ${error}`);
|
|
634
634
|
}
|
|
635
635
|
}
|
|
636
|
-
async fetchOrderBook(outcomeId,
|
|
636
|
+
async fetchOrderBook(outcomeId, limit, params) {
|
|
637
637
|
await this.initPromise;
|
|
638
638
|
try {
|
|
639
639
|
const args = [];
|
|
640
640
|
args.push(resolveOutcomeId(outcomeId));
|
|
641
|
-
if (
|
|
642
|
-
args.push(
|
|
641
|
+
if (limit !== undefined)
|
|
642
|
+
args.push(limit);
|
|
643
|
+
if (params !== undefined) {
|
|
644
|
+
if (limit === undefined)
|
|
645
|
+
args.push(null);
|
|
646
|
+
args.push(params);
|
|
647
|
+
}
|
|
643
648
|
const response = await this.fetchWithRetry(`${this.resolveBaseUrl()}/api/${this.exchangeName}/fetchOrderBook`, {
|
|
644
649
|
method: 'POST',
|
|
645
650
|
headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
|
|
@@ -654,6 +659,9 @@ class Exchange {
|
|
|
654
659
|
}
|
|
655
660
|
const json = await response.json();
|
|
656
661
|
const data = this.handleResponse(json);
|
|
662
|
+
if (Array.isArray(data)) {
|
|
663
|
+
return data.map(convertOrderBook);
|
|
664
|
+
}
|
|
657
665
|
return convertOrderBook(data);
|
|
658
666
|
}
|
|
659
667
|
catch (error) {
|
|
@@ -662,6 +670,37 @@ class Exchange {
|
|
|
662
670
|
throw new errors_js_1.PmxtError(`Failed to fetchOrderBook: ${error}`);
|
|
663
671
|
}
|
|
664
672
|
}
|
|
673
|
+
async fetchOrderBooks(outcomeIds) {
|
|
674
|
+
await this.initPromise;
|
|
675
|
+
try {
|
|
676
|
+
const args = [];
|
|
677
|
+
args.push(outcomeIds.map(resolveOutcomeId));
|
|
678
|
+
const response = await this.fetchWithRetry(`${this.resolveBaseUrl()}/api/${this.exchangeName}/fetchOrderBooks`, {
|
|
679
|
+
method: 'POST',
|
|
680
|
+
headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
|
|
681
|
+
body: JSON.stringify({ args, credentials: this.getCredentials() }),
|
|
682
|
+
});
|
|
683
|
+
if (!response.ok) {
|
|
684
|
+
const body = await response.json().catch(() => ({}));
|
|
685
|
+
if (body.error && typeof body.error === "object") {
|
|
686
|
+
throw (0, errors_js_1.fromServerError)(body.error);
|
|
687
|
+
}
|
|
688
|
+
throw new errors_js_1.PmxtError(body.error?.message || response.statusText);
|
|
689
|
+
}
|
|
690
|
+
const json = await response.json();
|
|
691
|
+
const data = this.handleResponse(json);
|
|
692
|
+
const result = {};
|
|
693
|
+
for (const [key, value] of Object.entries(data)) {
|
|
694
|
+
result[key] = convertOrderBook(value);
|
|
695
|
+
}
|
|
696
|
+
return result;
|
|
697
|
+
}
|
|
698
|
+
catch (error) {
|
|
699
|
+
if (error instanceof errors_js_1.PmxtError)
|
|
700
|
+
throw error;
|
|
701
|
+
throw new errors_js_1.PmxtError(`Failed to fetchOrderBooks: ${error}`);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
665
704
|
async submitOrder(built) {
|
|
666
705
|
await this.initPromise;
|
|
667
706
|
try {
|
|
@@ -1345,6 +1384,7 @@ class Exchange {
|
|
|
1345
1384
|
*
|
|
1346
1385
|
* @param outcomeId - Outcome ID to watch
|
|
1347
1386
|
* @param limit - Optional depth limit for order book
|
|
1387
|
+
* @param params - Optional exchange-specific parameters
|
|
1348
1388
|
* @returns Next order book update
|
|
1349
1389
|
*
|
|
1350
1390
|
* @example
|
|
@@ -1357,13 +1397,19 @@ class Exchange {
|
|
|
1357
1397
|
* }
|
|
1358
1398
|
* ```
|
|
1359
1399
|
*/
|
|
1360
|
-
async watchOrderBook(outcomeId, limit) {
|
|
1400
|
+
async watchOrderBook(outcomeId, limit, params = {}) {
|
|
1361
1401
|
await this.initPromise;
|
|
1362
1402
|
const resolvedOutcomeId = resolveOutcomeId(outcomeId);
|
|
1363
1403
|
const args = [resolvedOutcomeId];
|
|
1364
1404
|
if (limit !== undefined) {
|
|
1365
1405
|
args.push(limit);
|
|
1366
1406
|
}
|
|
1407
|
+
if (Object.keys(params).length > 0) {
|
|
1408
|
+
if (limit === undefined) {
|
|
1409
|
+
args.push(undefined);
|
|
1410
|
+
}
|
|
1411
|
+
args.push(params);
|
|
1412
|
+
}
|
|
1367
1413
|
// Try WebSocket transport first
|
|
1368
1414
|
const wsData = await this.watchViaWs("watchOrderBook", args);
|
|
1369
1415
|
if (wsData !== null) {
|
|
@@ -1405,6 +1451,7 @@ class Exchange {
|
|
|
1405
1451
|
*
|
|
1406
1452
|
* @param outcomeIds - Array of outcome IDs (or MarketOutcome objects)
|
|
1407
1453
|
* @param limit - Optional depth limit for each order book
|
|
1454
|
+
* @param params - Optional exchange-specific parameters
|
|
1408
1455
|
* @returns Record mapping ticker to OrderBook
|
|
1409
1456
|
*
|
|
1410
1457
|
* @example
|
|
@@ -1418,13 +1465,19 @@ class Exchange {
|
|
|
1418
1465
|
* }
|
|
1419
1466
|
* ```
|
|
1420
1467
|
*/
|
|
1421
|
-
async watchOrderBooks(outcomeIds, limit) {
|
|
1468
|
+
async watchOrderBooks(outcomeIds, limit, params = {}) {
|
|
1422
1469
|
await this.initPromise;
|
|
1423
1470
|
const resolvedIds = outcomeIds.map(resolveOutcomeId);
|
|
1424
1471
|
const args = [resolvedIds];
|
|
1425
1472
|
if (limit !== undefined) {
|
|
1426
1473
|
args.push(limit);
|
|
1427
1474
|
}
|
|
1475
|
+
if (Object.keys(params).length > 0) {
|
|
1476
|
+
if (limit === undefined) {
|
|
1477
|
+
args.push(undefined);
|
|
1478
|
+
}
|
|
1479
|
+
args.push(params);
|
|
1480
|
+
}
|
|
1428
1481
|
// Try WebSocket transport first
|
|
1429
1482
|
const ws = await this.getOrCreateWs();
|
|
1430
1483
|
if (ws) {
|
|
@@ -2395,3 +2448,51 @@ class PolymarketUS extends Exchange {
|
|
|
2395
2448
|
}
|
|
2396
2449
|
}
|
|
2397
2450
|
exports.PolymarketUS = PolymarketUS;
|
|
2451
|
+
/**
|
|
2452
|
+
* Gemini Titan exchange client.
|
|
2453
|
+
*
|
|
2454
|
+
* @example
|
|
2455
|
+
* ```typescript
|
|
2456
|
+
* const titan = new GeminiTitan();
|
|
2457
|
+
* const markets = await titan.fetchMarkets();
|
|
2458
|
+
* ```
|
|
2459
|
+
*/
|
|
2460
|
+
class GeminiTitan extends Exchange {
|
|
2461
|
+
constructor(options = {}) {
|
|
2462
|
+
super("gemini-titan", options);
|
|
2463
|
+
}
|
|
2464
|
+
}
|
|
2465
|
+
exports.GeminiTitan = GeminiTitan;
|
|
2466
|
+
/**
|
|
2467
|
+
* Hyperliquid exchange client.
|
|
2468
|
+
*
|
|
2469
|
+
* @example
|
|
2470
|
+
* ```typescript
|
|
2471
|
+
* const hl = new Hyperliquid();
|
|
2472
|
+
* const markets = await hl.fetchMarkets();
|
|
2473
|
+
* ```
|
|
2474
|
+
*/
|
|
2475
|
+
class Hyperliquid extends Exchange {
|
|
2476
|
+
constructor(options = {}) {
|
|
2477
|
+
super("hyperliquid", options);
|
|
2478
|
+
}
|
|
2479
|
+
}
|
|
2480
|
+
exports.Hyperliquid = Hyperliquid;
|
|
2481
|
+
/**
|
|
2482
|
+
* Mock exchange client.
|
|
2483
|
+
*
|
|
2484
|
+
* Offline deterministic exchange for testing and development.
|
|
2485
|
+
* No credentials required.
|
|
2486
|
+
*
|
|
2487
|
+
* @example
|
|
2488
|
+
* ```typescript
|
|
2489
|
+
* const mock = new Mock();
|
|
2490
|
+
* const markets = await mock.fetchMarkets();
|
|
2491
|
+
* ```
|
|
2492
|
+
*/
|
|
2493
|
+
class Mock extends Exchange {
|
|
2494
|
+
constructor(options = {}) {
|
|
2495
|
+
super("mock", options);
|
|
2496
|
+
}
|
|
2497
|
+
}
|
|
2498
|
+
exports.Mock = Mock;
|
package/dist/pmxt/models.d.ts
CHANGED
|
@@ -102,7 +102,7 @@ export interface OrderLevel {
|
|
|
102
102
|
size: number;
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
|
-
*
|
|
105
|
+
* Order book for an outcome.
|
|
106
106
|
*/
|
|
107
107
|
export interface OrderBook {
|
|
108
108
|
/** Bid orders (sorted high to low) */
|
|
@@ -111,6 +111,8 @@ export interface OrderBook {
|
|
|
111
111
|
asks: OrderLevel[];
|
|
112
112
|
/** Unix timestamp (milliseconds) */
|
|
113
113
|
timestamp?: number;
|
|
114
|
+
/** ISO 8601 datetime string of the snapshot (CCXT-compatible) */
|
|
115
|
+
datetime?: string;
|
|
114
116
|
}
|
|
115
117
|
/**
|
|
116
118
|
* A single event from the firehose stream.
|
|
@@ -60,6 +60,8 @@ docs/FetchMyTrades200Response.md
|
|
|
60
60
|
docs/FetchOHLCV200Response.md
|
|
61
61
|
docs/FetchOpenOrders200Response.md
|
|
62
62
|
docs/FetchOrderBook200Response.md
|
|
63
|
+
docs/FetchOrderBooks200Response.md
|
|
64
|
+
docs/FetchOrderBooksRequest.md
|
|
63
65
|
docs/FetchPositions200Response.md
|
|
64
66
|
docs/FetchTrades200Response.md
|
|
65
67
|
docs/FilterEventsRequest.md
|
|
@@ -166,6 +168,8 @@ src/models/FetchMyTrades200Response.ts
|
|
|
166
168
|
src/models/FetchOHLCV200Response.ts
|
|
167
169
|
src/models/FetchOpenOrders200Response.ts
|
|
168
170
|
src/models/FetchOrderBook200Response.ts
|
|
171
|
+
src/models/FetchOrderBooks200Response.ts
|
|
172
|
+
src/models/FetchOrderBooksRequest.ts
|
|
169
173
|
src/models/FetchPositions200Response.ts
|
|
170
174
|
src/models/FetchTrades200Response.ts
|
|
171
175
|
src/models/FilterEventsRequest.ts
|