pmxtjs 2.40.6 → 2.41.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 +24 -24
- package/dist/esm/generated/src/apis/DefaultApi.js +24 -24
- package/dist/esm/generated/src/models/UnwatchAddressRequest.d.ts +1 -1
- package/dist/esm/generated/src/models/UnwatchAddressRequest.js +1 -3
- package/dist/esm/generated/src/models/UnwatchOrderBookRequest.d.ts +1 -1
- package/dist/esm/generated/src/models/UnwatchOrderBookRequest.js +1 -3
- package/dist/esm/generated/src/models/WatchAddressRequest.d.ts +2 -3
- package/dist/esm/generated/src/models/WatchAddressRequest.js +2 -5
- package/dist/esm/generated/src/models/WatchOrderBookRequest.d.ts +2 -3
- package/dist/esm/generated/src/models/WatchOrderBookRequest.js +2 -5
- package/dist/esm/generated/src/models/WatchOrderBooksRequest.d.ts +2 -3
- package/dist/esm/generated/src/models/WatchOrderBooksRequest.js +2 -5
- package/dist/esm/generated/src/models/WatchTradesRequest.d.ts +2 -3
- package/dist/esm/generated/src/models/WatchTradesRequest.js +2 -5
- package/dist/esm/generated/src/models/index.d.ts +0 -3
- package/dist/esm/generated/src/models/index.js +0 -3
- package/dist/esm/pmxt/client.d.ts +27 -6
- package/dist/esm/pmxt/client.js +132 -14
- package/dist/esm/pmxt/models.d.ts +11 -0
- package/dist/esm/pmxt/ws-client.d.ts +2 -1
- package/dist/esm/pmxt/ws-client.js +25 -14
- package/dist/generated/src/apis/DefaultApi.d.ts +24 -24
- package/dist/generated/src/apis/DefaultApi.js +24 -24
- package/dist/generated/src/models/UnwatchAddressRequest.d.ts +1 -1
- package/dist/generated/src/models/UnwatchAddressRequest.js +1 -3
- package/dist/generated/src/models/UnwatchOrderBookRequest.d.ts +1 -1
- package/dist/generated/src/models/UnwatchOrderBookRequest.js +1 -3
- package/dist/generated/src/models/WatchAddressRequest.d.ts +2 -3
- package/dist/generated/src/models/WatchAddressRequest.js +2 -5
- package/dist/generated/src/models/WatchOrderBookRequest.d.ts +2 -3
- package/dist/generated/src/models/WatchOrderBookRequest.js +2 -5
- package/dist/generated/src/models/WatchOrderBooksRequest.d.ts +2 -3
- package/dist/generated/src/models/WatchOrderBooksRequest.js +2 -5
- package/dist/generated/src/models/WatchTradesRequest.d.ts +2 -3
- package/dist/generated/src/models/WatchTradesRequest.js +2 -5
- package/dist/generated/src/models/index.d.ts +0 -3
- package/dist/generated/src/models/index.js +0 -3
- package/dist/pmxt/client.d.ts +27 -6
- package/dist/pmxt/client.js +132 -14
- package/dist/pmxt/models.d.ts +11 -0
- package/dist/pmxt/ws-client.d.ts +2 -1
- package/dist/pmxt/ws-client.js +25 -14
- package/generated/.openapi-generator/FILES +0 -6
- package/generated/docs/DefaultApi.md +24 -24
- package/generated/docs/WatchAddressRequest.md +1 -1
- package/generated/docs/WatchOrderBookRequest.md +1 -1
- package/generated/docs/WatchOrderBooksRequest.md +1 -1
- package/generated/docs/WatchTradesRequest.md +1 -1
- package/generated/package.json +1 -1
- package/generated/src/apis/DefaultApi.ts +24 -24
- package/generated/src/models/UnwatchAddressRequest.ts +2 -3
- package/generated/src/models/UnwatchOrderBookRequest.ts +2 -3
- package/generated/src/models/WatchAddressRequest.ts +4 -12
- package/generated/src/models/WatchOrderBookRequest.ts +4 -12
- package/generated/src/models/WatchOrderBooksRequest.ts +4 -12
- package/generated/src/models/WatchTradesRequest.ts +4 -12
- package/generated/src/models/index.ts +0 -3
- package/package.json +3 -2
- package/pmxt/client.ts +137 -16
- package/pmxt/models.ts +14 -0
- package/pmxt/ws-client.ts +26 -13
- package/dist/esm/generated/src/models/WatchAddressRequestArgsInner.d.ts +0 -21
- package/dist/esm/generated/src/models/WatchAddressRequestArgsInner.js +0 -37
- package/dist/esm/generated/src/models/WatchOrderBookRequestArgsInner.d.ts +0 -21
- package/dist/esm/generated/src/models/WatchOrderBookRequestArgsInner.js +0 -43
- package/dist/esm/generated/src/models/WatchOrderBooksRequestArgsInner.d.ts +0 -21
- package/dist/esm/generated/src/models/WatchOrderBooksRequestArgsInner.js +0 -47
- package/dist/generated/src/models/WatchAddressRequestArgsInner.d.ts +0 -21
- package/dist/generated/src/models/WatchAddressRequestArgsInner.js +0 -43
- package/dist/generated/src/models/WatchOrderBookRequestArgsInner.d.ts +0 -21
- package/dist/generated/src/models/WatchOrderBookRequestArgsInner.js +0 -49
- package/dist/generated/src/models/WatchOrderBooksRequestArgsInner.d.ts +0 -21
- package/dist/generated/src/models/WatchOrderBooksRequestArgsInner.js +0 -53
- package/generated/docs/WatchAddressRequestArgsInner.md +0 -32
- package/generated/docs/WatchOrderBookRequestArgsInner.md +0 -32
- package/generated/docs/WatchOrderBooksRequestArgsInner.md +0 -32
- package/generated/src/models/WatchAddressRequestArgsInner.ts +0 -49
- package/generated/src/models/WatchOrderBookRequestArgsInner.ts +0 -55
- package/generated/src/models/WatchOrderBooksRequestArgsInner.ts +0 -59
package/pmxt/client.ts
CHANGED
|
@@ -42,6 +42,7 @@ import {
|
|
|
42
42
|
UnifiedEvent,
|
|
43
43
|
UnifiedMarket,
|
|
44
44
|
UserTrade,
|
|
45
|
+
FirehoseEvent,
|
|
45
46
|
} from "./models.js";
|
|
46
47
|
|
|
47
48
|
import { ServerManager } from "./server-manager.js";
|
|
@@ -229,6 +230,8 @@ export abstract class Exchange {
|
|
|
229
230
|
protected serverManager: ServerManager;
|
|
230
231
|
protected initPromise: Promise<void>;
|
|
231
232
|
protected isHosted: boolean;
|
|
233
|
+
private _hostedAccount?: { depositWallet?: string; signatureType?: number };
|
|
234
|
+
private _accountDiscoveryPromise?: Promise<void>;
|
|
232
235
|
|
|
233
236
|
/**
|
|
234
237
|
* Sticky flag: set to `true` the first time a GET read is rejected by
|
|
@@ -296,11 +299,15 @@ export abstract class Exchange {
|
|
|
296
299
|
});
|
|
297
300
|
this.api = new DefaultApi(this.config);
|
|
298
301
|
} catch (error) {
|
|
299
|
-
|
|
300
|
-
`Failed to start PMXT server: ${error}\n\n` +
|
|
302
|
+
const msg =
|
|
303
|
+
`Failed to start PMXT server: ${error instanceof Error ? error.message : error}\n\n` +
|
|
301
304
|
`Please ensure 'pmxt-core' is installed: npm install -g pmxt-core\n` +
|
|
302
|
-
`Or start the server manually: pmxt-server
|
|
303
|
-
);
|
|
305
|
+
`Or start the server manually: pmxt-server`;
|
|
306
|
+
const pmxtError = new PmxtError(msg);
|
|
307
|
+
if (error instanceof Error) {
|
|
308
|
+
(pmxtError as any).cause = error;
|
|
309
|
+
}
|
|
310
|
+
throw pmxtError;
|
|
304
311
|
}
|
|
305
312
|
}
|
|
306
313
|
}
|
|
@@ -408,9 +415,12 @@ export abstract class Exchange {
|
|
|
408
415
|
if (this._wsClient?.connected) return this._wsClient;
|
|
409
416
|
|
|
410
417
|
const host = this.resolveBaseUrl();
|
|
411
|
-
const accessToken = this.
|
|
418
|
+
const accessToken = this.isHosted
|
|
419
|
+
? this.pmxtApiKey
|
|
420
|
+
: this.serverManager.getAccessToken();
|
|
421
|
+
const authParamName = this.isHosted ? "apiKey" : "token";
|
|
412
422
|
|
|
413
|
-
const client = new SidecarWsClient(host, accessToken || undefined);
|
|
423
|
+
const client = new SidecarWsClient(host, accessToken || undefined, authParamName);
|
|
414
424
|
try {
|
|
415
425
|
// Trigger connection to validate the endpoint exists.
|
|
416
426
|
// subscribe() calls ensureConnected internally, but we want
|
|
@@ -459,8 +469,12 @@ export abstract class Exchange {
|
|
|
459
469
|
args,
|
|
460
470
|
this.getCredentials() as Record<string, any> | undefined,
|
|
461
471
|
);
|
|
462
|
-
} catch {
|
|
463
|
-
|
|
472
|
+
} catch (error) {
|
|
473
|
+
// Only fall back to HTTP for transport-level failures
|
|
474
|
+
if (error instanceof PmxtError && /connection failed|no websocket/i.test(error.message)) {
|
|
475
|
+
return null;
|
|
476
|
+
}
|
|
477
|
+
throw error;
|
|
464
478
|
}
|
|
465
479
|
}
|
|
466
480
|
|
|
@@ -1540,8 +1554,11 @@ export abstract class Exchange {
|
|
|
1540
1554
|
}
|
|
1541
1555
|
return result;
|
|
1542
1556
|
}
|
|
1543
|
-
} catch {
|
|
1544
|
-
// fall through to HTTP
|
|
1557
|
+
} catch (error) {
|
|
1558
|
+
// Only fall through to HTTP for transport-level WS failures
|
|
1559
|
+
if (!(error instanceof PmxtError) || !/connection failed|no websocket/i.test(error.message)) {
|
|
1560
|
+
throw error;
|
|
1561
|
+
}
|
|
1545
1562
|
}
|
|
1546
1563
|
}
|
|
1547
1564
|
|
|
@@ -1571,13 +1588,57 @@ export abstract class Exchange {
|
|
|
1571
1588
|
}
|
|
1572
1589
|
return result;
|
|
1573
1590
|
}
|
|
1574
|
-
|
|
1591
|
+
throw new PmxtError("watchOrderBooks: unexpected response shape from server");
|
|
1575
1592
|
} catch (error) {
|
|
1576
1593
|
if (error instanceof PmxtError) throw error;
|
|
1577
1594
|
throw new PmxtError(`Failed to watch order books: ${error}`);
|
|
1578
1595
|
}
|
|
1579
1596
|
}
|
|
1580
1597
|
|
|
1598
|
+
/**
|
|
1599
|
+
* Stream all orderbook updates across venues via the hosted WebSocket API.
|
|
1600
|
+
*
|
|
1601
|
+
* Returns a promise that resolves with the next book event.
|
|
1602
|
+
* Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
1603
|
+
* Requires hosted mode (`pmxtApiKey` set).
|
|
1604
|
+
*
|
|
1605
|
+
* @param venues - Optional venue filter (e.g. ["polymarket", "limitless"])
|
|
1606
|
+
* @returns Next event with source, symbol, and orderbook
|
|
1607
|
+
*
|
|
1608
|
+
* @example
|
|
1609
|
+
* ```typescript
|
|
1610
|
+
* const poly = new Polymarket({ pmxtApiKey: "pmxt_xxx" });
|
|
1611
|
+
* while (true) {
|
|
1612
|
+
* const event = await poly.watchAllOrderBooks();
|
|
1613
|
+
* console.log(event.source, event.symbol, event.orderbook.bids[0]);
|
|
1614
|
+
* }
|
|
1615
|
+
* ```
|
|
1616
|
+
*/
|
|
1617
|
+
async watchAllOrderBooks(venues?: string[]): Promise<FirehoseEvent> {
|
|
1618
|
+
await this.initPromise;
|
|
1619
|
+
|
|
1620
|
+
if (!this.isHosted) {
|
|
1621
|
+
throw new PmxtError("watchAllOrderBooks() requires hosted mode (set pmxtApiKey)");
|
|
1622
|
+
}
|
|
1623
|
+
|
|
1624
|
+
const args: any[] = venues ? [venues] : [];
|
|
1625
|
+
const wsData = await this.watchViaWs("watchAllOrderBooks", args);
|
|
1626
|
+
if (wsData !== null) {
|
|
1627
|
+
return {
|
|
1628
|
+
source: (wsData as any)._source || "",
|
|
1629
|
+
symbol: (wsData as any)._symbol || "",
|
|
1630
|
+
orderbook: convertOrderBook(wsData),
|
|
1631
|
+
};
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1634
|
+
throw new PmxtError("watchAllOrderBooks() requires WebSocket transport — connection failed");
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
/** @deprecated Use {@link watchAllOrderBooks} instead. */
|
|
1638
|
+
async firehose(venues?: string[]): Promise<FirehoseEvent> {
|
|
1639
|
+
return this.watchAllOrderBooks(venues);
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1581
1642
|
/**
|
|
1582
1643
|
* Watch real-time trade updates via WebSocket.
|
|
1583
1644
|
*
|
|
@@ -1796,12 +1857,69 @@ export abstract class Exchange {
|
|
|
1796
1857
|
}
|
|
1797
1858
|
}
|
|
1798
1859
|
|
|
1860
|
+
private async _discoverHostedAccount(): Promise<void> {
|
|
1861
|
+
if (this._hostedAccount) return;
|
|
1862
|
+
if (!this._accountDiscoveryPromise) {
|
|
1863
|
+
this._accountDiscoveryPromise = (async () => {
|
|
1864
|
+
try {
|
|
1865
|
+
const res = await this.fetchWithRetry(
|
|
1866
|
+
`${this.resolveBaseUrl()}/v0/account`,
|
|
1867
|
+
{ method: 'GET', headers: { ...this.getAuthHeaders() } },
|
|
1868
|
+
);
|
|
1869
|
+
if (res.ok) {
|
|
1870
|
+
const body = await res.json();
|
|
1871
|
+
this._hostedAccount = { depositWallet: body.deposit_wallet, signatureType: body.signature_type };
|
|
1872
|
+
} else { this._hostedAccount = {}; }
|
|
1873
|
+
} catch { this._hostedAccount = {}; }
|
|
1874
|
+
})();
|
|
1875
|
+
}
|
|
1876
|
+
await this._accountDiscoveryPromise;
|
|
1877
|
+
}
|
|
1878
|
+
|
|
1879
|
+
private async _executeSorOrder(params: any): Promise<Order> {
|
|
1880
|
+
await this._discoverHostedAccount();
|
|
1881
|
+
|
|
1882
|
+
const buildRes = await this.fetchWithRetry(`${this.resolveBaseUrl()}/api/sor/buildOrder`, {
|
|
1883
|
+
method: 'POST',
|
|
1884
|
+
headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
|
|
1885
|
+
body: JSON.stringify({ args: [params] }),
|
|
1886
|
+
});
|
|
1887
|
+
if (!buildRes.ok) throw new PmxtError(`buildOrder failed: ${await buildRes.text()}`);
|
|
1888
|
+
const buildJson = await buildRes.json();
|
|
1889
|
+
const { orderId, legs } = buildJson.data || buildJson;
|
|
1890
|
+
|
|
1891
|
+
const fills: any[] = [];
|
|
1892
|
+
for (const leg of legs) {
|
|
1893
|
+
try {
|
|
1894
|
+
const { Polymarket, Limitless } = require('pmxt-core');
|
|
1895
|
+
const VenueClass = leg.venue === 'polymarket' ? Polymarket : leg.venue === 'limitless' ? Limitless : null;
|
|
1896
|
+
if (!VenueClass) throw new Error(`unsupported venue: ${leg.venue}`);
|
|
1897
|
+
|
|
1898
|
+
const venueOpts: any = { privateKey: this.privateKey };
|
|
1899
|
+
if (leg.venue === 'polymarket' && this._hostedAccount?.depositWallet) {
|
|
1900
|
+
venueOpts.funderAddress = this._hostedAccount.depositWallet;
|
|
1901
|
+
venueOpts.signatureType = this._hostedAccount.signatureType || 3;
|
|
1902
|
+
}
|
|
1903
|
+
const venue = new VenueClass(venueOpts);
|
|
1904
|
+
const order = await venue.createOrder({ outcomeId: leg.tokenId, side: leg.side, amount: leg.shares, price: leg.price });
|
|
1905
|
+
const filledShares = order.filled || 0;
|
|
1906
|
+
fills.push({ venue: leg.venue, venueOrderId: order.id, venueMarketId: leg.venueMarketId, venueOutcomeId: leg.venueOutcomeId, shares: filledShares > 0 ? filledShares : leg.shares, price: order.price || leg.price, status: filledShares > 0 ? 'filled' : 'open' });
|
|
1907
|
+
} catch (err: any) {
|
|
1908
|
+
fills.push({ venue: leg.venue, venueMarketId: leg.venueMarketId, venueOutcomeId: leg.venueOutcomeId, shares: leg.shares, price: leg.price, status: 'failed', error: err.message });
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
|
|
1912
|
+
const submitRes = await this.fetchWithRetry(`${this.resolveBaseUrl()}/api/sor/submitOrder`, {
|
|
1913
|
+
method: 'POST',
|
|
1914
|
+
headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
|
|
1915
|
+
body: JSON.stringify({ args: [{ orderId, fills }] }),
|
|
1916
|
+
});
|
|
1917
|
+
if (!submitRes.ok) throw new PmxtError(`submitOrder failed: ${await submitRes.text()}`);
|
|
1918
|
+
const submitJson = await submitRes.json();
|
|
1919
|
+
return convertOrder(submitJson.data || submitJson);
|
|
1920
|
+
}
|
|
1921
|
+
|
|
1799
1922
|
/**
|
|
1800
|
-
* Create a new order.
|
|
1801
|
-
*
|
|
1802
|
-
* @param params - Order parameters
|
|
1803
|
-
* @returns Created order
|
|
1804
|
-
*
|
|
1805
1923
|
* @example
|
|
1806
1924
|
* ```typescript
|
|
1807
1925
|
* const order = await exchange.createOrder({
|
|
@@ -1816,6 +1934,9 @@ export abstract class Exchange {
|
|
|
1816
1934
|
*/
|
|
1817
1935
|
async createOrder(params: any): Promise<Order> {
|
|
1818
1936
|
if (this.isHosted) {
|
|
1937
|
+
if (this.exchangeName === 'sor' && this.privateKey) {
|
|
1938
|
+
return this._executeSorOrder(params);
|
|
1939
|
+
}
|
|
1819
1940
|
throw new PmxtError(
|
|
1820
1941
|
"Trade execution is not available through the hosted API. " +
|
|
1821
1942
|
"Use the local PMXT SDK with your venue credentials instead. " +
|
package/pmxt/models.ts
CHANGED
|
@@ -153,6 +153,20 @@ export interface OrderBook {
|
|
|
153
153
|
timestamp?: number;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
+
/**
|
|
157
|
+
* A single event from the firehose stream.
|
|
158
|
+
*/
|
|
159
|
+
export interface FirehoseEvent {
|
|
160
|
+
/** The venue this event originated from (e.g. "polymarket", "limitless") */
|
|
161
|
+
source: string;
|
|
162
|
+
|
|
163
|
+
/** The outcome token id / asset id */
|
|
164
|
+
symbol: string;
|
|
165
|
+
|
|
166
|
+
/** The order book snapshot */
|
|
167
|
+
orderbook: OrderBook;
|
|
168
|
+
}
|
|
169
|
+
|
|
156
170
|
/**
|
|
157
171
|
* Result of an execution price calculation.
|
|
158
172
|
*/
|
package/pmxt/ws-client.ts
CHANGED
|
@@ -36,6 +36,7 @@ export class SidecarWsClient {
|
|
|
36
36
|
private ws: WebSocket | null = null;
|
|
37
37
|
private host: string;
|
|
38
38
|
private accessToken: string | undefined;
|
|
39
|
+
private authParamName: string;
|
|
39
40
|
private closed = false;
|
|
40
41
|
|
|
41
42
|
/** requestId -> latest data payload */
|
|
@@ -47,9 +48,10 @@ export class SidecarWsClient {
|
|
|
47
48
|
|
|
48
49
|
private connectPromise: Promise<void> | null = null;
|
|
49
50
|
|
|
50
|
-
constructor(host: string, accessToken?: string) {
|
|
51
|
+
constructor(host: string, accessToken?: string, authParamName: string = "token") {
|
|
51
52
|
this.host = host;
|
|
52
53
|
this.accessToken = accessToken;
|
|
54
|
+
this.authParamName = authParamName;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
// ------------------------------------------------------------------
|
|
@@ -81,7 +83,7 @@ export class SidecarWsClient {
|
|
|
81
83
|
|
|
82
84
|
let url = `${scheme}://${hostPart}/ws`;
|
|
83
85
|
if (this.accessToken) {
|
|
84
|
-
url = `${url}
|
|
86
|
+
url = `${url}?${this.authParamName}=${this.accessToken}`;
|
|
85
87
|
}
|
|
86
88
|
|
|
87
89
|
// Use the ws package in Node.js, native WebSocket in browsers
|
|
@@ -103,6 +105,18 @@ export class SidecarWsClient {
|
|
|
103
105
|
if (!this.ws) {
|
|
104
106
|
// Connection failed during handshake
|
|
105
107
|
reject(new PmxtError(`WebSocket connection failed: ${err.message || err}`));
|
|
108
|
+
} else {
|
|
109
|
+
// Post-handshake error — propagate to all pending subscribers
|
|
110
|
+
const error = new PmxtError(`WebSocket error: ${err.message || err}`);
|
|
111
|
+
for (const sub of this.subscriptions.values()) {
|
|
112
|
+
if (sub.reject) {
|
|
113
|
+
sub.reject(error);
|
|
114
|
+
sub.reject = null;
|
|
115
|
+
sub.resolve = null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
this.closed = true;
|
|
119
|
+
this.ws = null;
|
|
106
120
|
}
|
|
107
121
|
};
|
|
108
122
|
|
|
@@ -112,15 +126,11 @@ export class SidecarWsClient {
|
|
|
112
126
|
};
|
|
113
127
|
|
|
114
128
|
ws.onmessage = (event: any) => {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
this.dispatch(msg);
|
|
121
|
-
} catch {
|
|
122
|
-
// Ignore unparseable frames
|
|
123
|
-
}
|
|
129
|
+
const raw = typeof event.data === "string"
|
|
130
|
+
? event.data
|
|
131
|
+
: event.data.toString();
|
|
132
|
+
const msg: WsMessage = JSON.parse(raw);
|
|
133
|
+
this.dispatch(msg);
|
|
124
134
|
};
|
|
125
135
|
});
|
|
126
136
|
}
|
|
@@ -130,13 +140,16 @@ export class SidecarWsClient {
|
|
|
130
140
|
if (typeof globalThis !== "undefined" && (globalThis as any).WebSocket) {
|
|
131
141
|
return (globalThis as any).WebSocket;
|
|
132
142
|
}
|
|
133
|
-
// Node.js --
|
|
143
|
+
// Node.js -- require ws
|
|
134
144
|
try {
|
|
135
145
|
// Dynamic require to avoid bundler issues
|
|
136
146
|
const wsModule = require("ws");
|
|
137
147
|
return wsModule.default || wsModule;
|
|
138
148
|
} catch {
|
|
139
|
-
|
|
149
|
+
throw new PmxtError(
|
|
150
|
+
"WebSocket support in Node.js requires the 'ws' package. " +
|
|
151
|
+
"Install it with: npm install ws"
|
|
152
|
+
);
|
|
140
153
|
}
|
|
141
154
|
}
|
|
142
155
|
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PMXT Sidecar API
|
|
3
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 0.4.4
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @type WatchAddressRequestArgsInner
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
*/
|
|
17
|
-
export type WatchAddressRequestArgsInner = Array<object> | string;
|
|
18
|
-
export declare function WatchAddressRequestArgsInnerFromJSON(json: any): WatchAddressRequestArgsInner;
|
|
19
|
-
export declare function WatchAddressRequestArgsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): WatchAddressRequestArgsInner;
|
|
20
|
-
export declare function WatchAddressRequestArgsInnerToJSON(json: any): any;
|
|
21
|
-
export declare function WatchAddressRequestArgsInnerToJSONTyped(value?: WatchAddressRequestArgsInner | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/* tslint:disable */
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
/**
|
|
4
|
-
* PMXT Sidecar API
|
|
5
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
6
|
-
*
|
|
7
|
-
* The version of the OpenAPI document: 0.4.4
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
-
* https://openapi-generator.tech
|
|
12
|
-
* Do not edit the class manually.
|
|
13
|
-
*/
|
|
14
|
-
export function WatchAddressRequestArgsInnerFromJSON(json) {
|
|
15
|
-
return WatchAddressRequestArgsInnerFromJSONTyped(json, false);
|
|
16
|
-
}
|
|
17
|
-
export function WatchAddressRequestArgsInnerFromJSONTyped(json, ignoreDiscriminator) {
|
|
18
|
-
if (json == null) {
|
|
19
|
-
return json;
|
|
20
|
-
}
|
|
21
|
-
if (typeof json === 'string') {
|
|
22
|
-
return json;
|
|
23
|
-
}
|
|
24
|
-
return {};
|
|
25
|
-
}
|
|
26
|
-
export function WatchAddressRequestArgsInnerToJSON(json) {
|
|
27
|
-
return WatchAddressRequestArgsInnerToJSONTyped(json, false);
|
|
28
|
-
}
|
|
29
|
-
export function WatchAddressRequestArgsInnerToJSONTyped(value, ignoreDiscriminator = false) {
|
|
30
|
-
if (value == null) {
|
|
31
|
-
return value;
|
|
32
|
-
}
|
|
33
|
-
if (typeof value === 'string') {
|
|
34
|
-
return value;
|
|
35
|
-
}
|
|
36
|
-
return {};
|
|
37
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PMXT Sidecar API
|
|
3
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 0.4.4
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @type WatchOrderBookRequestArgsInner
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
*/
|
|
17
|
-
export type WatchOrderBookRequestArgsInner = number | string;
|
|
18
|
-
export declare function WatchOrderBookRequestArgsInnerFromJSON(json: any): WatchOrderBookRequestArgsInner;
|
|
19
|
-
export declare function WatchOrderBookRequestArgsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): WatchOrderBookRequestArgsInner;
|
|
20
|
-
export declare function WatchOrderBookRequestArgsInnerToJSON(json: any): any;
|
|
21
|
-
export declare function WatchOrderBookRequestArgsInnerToJSONTyped(value?: WatchOrderBookRequestArgsInner | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/* tslint:disable */
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
/**
|
|
4
|
-
* PMXT Sidecar API
|
|
5
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
6
|
-
*
|
|
7
|
-
* The version of the OpenAPI document: 0.4.4
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
-
* https://openapi-generator.tech
|
|
12
|
-
* Do not edit the class manually.
|
|
13
|
-
*/
|
|
14
|
-
export function WatchOrderBookRequestArgsInnerFromJSON(json) {
|
|
15
|
-
return WatchOrderBookRequestArgsInnerFromJSONTyped(json, false);
|
|
16
|
-
}
|
|
17
|
-
export function WatchOrderBookRequestArgsInnerFromJSONTyped(json, ignoreDiscriminator) {
|
|
18
|
-
if (json == null) {
|
|
19
|
-
return json;
|
|
20
|
-
}
|
|
21
|
-
if (typeof json === 'number') {
|
|
22
|
-
return json;
|
|
23
|
-
}
|
|
24
|
-
if (typeof json === 'string') {
|
|
25
|
-
return json;
|
|
26
|
-
}
|
|
27
|
-
return {};
|
|
28
|
-
}
|
|
29
|
-
export function WatchOrderBookRequestArgsInnerToJSON(json) {
|
|
30
|
-
return WatchOrderBookRequestArgsInnerToJSONTyped(json, false);
|
|
31
|
-
}
|
|
32
|
-
export function WatchOrderBookRequestArgsInnerToJSONTyped(value, ignoreDiscriminator = false) {
|
|
33
|
-
if (value == null) {
|
|
34
|
-
return value;
|
|
35
|
-
}
|
|
36
|
-
if (typeof value === 'number') {
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
if (typeof value === 'string') {
|
|
40
|
-
return value;
|
|
41
|
-
}
|
|
42
|
-
return {};
|
|
43
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PMXT Sidecar API
|
|
3
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 0.4.4
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @type WatchOrderBooksRequestArgsInner
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
*/
|
|
17
|
-
export type WatchOrderBooksRequestArgsInner = Array<string> | number;
|
|
18
|
-
export declare function WatchOrderBooksRequestArgsInnerFromJSON(json: any): WatchOrderBooksRequestArgsInner;
|
|
19
|
-
export declare function WatchOrderBooksRequestArgsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): WatchOrderBooksRequestArgsInner;
|
|
20
|
-
export declare function WatchOrderBooksRequestArgsInnerToJSON(json: any): any;
|
|
21
|
-
export declare function WatchOrderBooksRequestArgsInnerToJSONTyped(value?: WatchOrderBooksRequestArgsInner | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/* tslint:disable */
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
/**
|
|
4
|
-
* PMXT Sidecar API
|
|
5
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
6
|
-
*
|
|
7
|
-
* The version of the OpenAPI document: 0.4.4
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
-
* https://openapi-generator.tech
|
|
12
|
-
* Do not edit the class manually.
|
|
13
|
-
*/
|
|
14
|
-
export function WatchOrderBooksRequestArgsInnerFromJSON(json) {
|
|
15
|
-
return WatchOrderBooksRequestArgsInnerFromJSONTyped(json, false);
|
|
16
|
-
}
|
|
17
|
-
export function WatchOrderBooksRequestArgsInnerFromJSONTyped(json, ignoreDiscriminator) {
|
|
18
|
-
if (json == null) {
|
|
19
|
-
return json;
|
|
20
|
-
}
|
|
21
|
-
if (typeof json === 'number') {
|
|
22
|
-
return json;
|
|
23
|
-
}
|
|
24
|
-
if (Array.isArray(json)) {
|
|
25
|
-
if (json.every(item => typeof item === 'string')) {
|
|
26
|
-
return json;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return {};
|
|
30
|
-
}
|
|
31
|
-
export function WatchOrderBooksRequestArgsInnerToJSON(json) {
|
|
32
|
-
return WatchOrderBooksRequestArgsInnerToJSONTyped(json, false);
|
|
33
|
-
}
|
|
34
|
-
export function WatchOrderBooksRequestArgsInnerToJSONTyped(value, ignoreDiscriminator = false) {
|
|
35
|
-
if (value == null) {
|
|
36
|
-
return value;
|
|
37
|
-
}
|
|
38
|
-
if (typeof value === 'number') {
|
|
39
|
-
return value;
|
|
40
|
-
}
|
|
41
|
-
if (Array.isArray(value)) {
|
|
42
|
-
if (value.every(item => typeof item === 'string')) {
|
|
43
|
-
return value;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return {};
|
|
47
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PMXT Sidecar API
|
|
3
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 0.4.4
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @type WatchAddressRequestArgsInner
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
*/
|
|
17
|
-
export type WatchAddressRequestArgsInner = Array<object> | string;
|
|
18
|
-
export declare function WatchAddressRequestArgsInnerFromJSON(json: any): WatchAddressRequestArgsInner;
|
|
19
|
-
export declare function WatchAddressRequestArgsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): WatchAddressRequestArgsInner;
|
|
20
|
-
export declare function WatchAddressRequestArgsInnerToJSON(json: any): any;
|
|
21
|
-
export declare function WatchAddressRequestArgsInnerToJSONTyped(value?: WatchAddressRequestArgsInner | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* tslint:disable */
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
/**
|
|
5
|
-
* PMXT Sidecar API
|
|
6
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
7
|
-
*
|
|
8
|
-
* The version of the OpenAPI document: 0.4.4
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
12
|
-
* https://openapi-generator.tech
|
|
13
|
-
* Do not edit the class manually.
|
|
14
|
-
*/
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.WatchAddressRequestArgsInnerFromJSON = WatchAddressRequestArgsInnerFromJSON;
|
|
17
|
-
exports.WatchAddressRequestArgsInnerFromJSONTyped = WatchAddressRequestArgsInnerFromJSONTyped;
|
|
18
|
-
exports.WatchAddressRequestArgsInnerToJSON = WatchAddressRequestArgsInnerToJSON;
|
|
19
|
-
exports.WatchAddressRequestArgsInnerToJSONTyped = WatchAddressRequestArgsInnerToJSONTyped;
|
|
20
|
-
function WatchAddressRequestArgsInnerFromJSON(json) {
|
|
21
|
-
return WatchAddressRequestArgsInnerFromJSONTyped(json, false);
|
|
22
|
-
}
|
|
23
|
-
function WatchAddressRequestArgsInnerFromJSONTyped(json, ignoreDiscriminator) {
|
|
24
|
-
if (json == null) {
|
|
25
|
-
return json;
|
|
26
|
-
}
|
|
27
|
-
if (typeof json === 'string') {
|
|
28
|
-
return json;
|
|
29
|
-
}
|
|
30
|
-
return {};
|
|
31
|
-
}
|
|
32
|
-
function WatchAddressRequestArgsInnerToJSON(json) {
|
|
33
|
-
return WatchAddressRequestArgsInnerToJSONTyped(json, false);
|
|
34
|
-
}
|
|
35
|
-
function WatchAddressRequestArgsInnerToJSONTyped(value, ignoreDiscriminator = false) {
|
|
36
|
-
if (value == null) {
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
if (typeof value === 'string') {
|
|
40
|
-
return value;
|
|
41
|
-
}
|
|
42
|
-
return {};
|
|
43
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PMXT Sidecar API
|
|
3
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 0.4.4
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @type WatchOrderBookRequestArgsInner
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
*/
|
|
17
|
-
export type WatchOrderBookRequestArgsInner = number | string;
|
|
18
|
-
export declare function WatchOrderBookRequestArgsInnerFromJSON(json: any): WatchOrderBookRequestArgsInner;
|
|
19
|
-
export declare function WatchOrderBookRequestArgsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): WatchOrderBookRequestArgsInner;
|
|
20
|
-
export declare function WatchOrderBookRequestArgsInnerToJSON(json: any): any;
|
|
21
|
-
export declare function WatchOrderBookRequestArgsInnerToJSONTyped(value?: WatchOrderBookRequestArgsInner | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* tslint:disable */
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
/**
|
|
5
|
-
* PMXT Sidecar API
|
|
6
|
-
* A unified local sidecar API for prediction markets (Polymarket, Kalshi, Limitless). This API acts as a JSON-RPC-style gateway. Each endpoint corresponds to a specific method on the generic exchange implementation.
|
|
7
|
-
*
|
|
8
|
-
* The version of the OpenAPI document: 0.4.4
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
12
|
-
* https://openapi-generator.tech
|
|
13
|
-
* Do not edit the class manually.
|
|
14
|
-
*/
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.WatchOrderBookRequestArgsInnerFromJSON = WatchOrderBookRequestArgsInnerFromJSON;
|
|
17
|
-
exports.WatchOrderBookRequestArgsInnerFromJSONTyped = WatchOrderBookRequestArgsInnerFromJSONTyped;
|
|
18
|
-
exports.WatchOrderBookRequestArgsInnerToJSON = WatchOrderBookRequestArgsInnerToJSON;
|
|
19
|
-
exports.WatchOrderBookRequestArgsInnerToJSONTyped = WatchOrderBookRequestArgsInnerToJSONTyped;
|
|
20
|
-
function WatchOrderBookRequestArgsInnerFromJSON(json) {
|
|
21
|
-
return WatchOrderBookRequestArgsInnerFromJSONTyped(json, false);
|
|
22
|
-
}
|
|
23
|
-
function WatchOrderBookRequestArgsInnerFromJSONTyped(json, ignoreDiscriminator) {
|
|
24
|
-
if (json == null) {
|
|
25
|
-
return json;
|
|
26
|
-
}
|
|
27
|
-
if (typeof json === 'number') {
|
|
28
|
-
return json;
|
|
29
|
-
}
|
|
30
|
-
if (typeof json === 'string') {
|
|
31
|
-
return json;
|
|
32
|
-
}
|
|
33
|
-
return {};
|
|
34
|
-
}
|
|
35
|
-
function WatchOrderBookRequestArgsInnerToJSON(json) {
|
|
36
|
-
return WatchOrderBookRequestArgsInnerToJSONTyped(json, false);
|
|
37
|
-
}
|
|
38
|
-
function WatchOrderBookRequestArgsInnerToJSONTyped(value, ignoreDiscriminator = false) {
|
|
39
|
-
if (value == null) {
|
|
40
|
-
return value;
|
|
41
|
-
}
|
|
42
|
-
if (typeof value === 'number') {
|
|
43
|
-
return value;
|
|
44
|
-
}
|
|
45
|
-
if (typeof value === 'string') {
|
|
46
|
-
return value;
|
|
47
|
-
}
|
|
48
|
-
return {};
|
|
49
|
-
}
|