pmxtjs 1.0.4 → 1.1.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.
- package/dist/esm/generated/src/apis/DefaultApi.d.ts +45 -1
- package/dist/esm/generated/src/apis/DefaultApi.js +75 -1
- package/dist/esm/generated/src/models/WatchOrderBookRequest.d.ts +40 -0
- package/dist/esm/generated/src/models/WatchOrderBookRequest.js +47 -0
- package/dist/esm/generated/src/models/WatchOrderBookRequestArgsInner.d.ts +21 -0
- package/dist/esm/generated/src/models/WatchOrderBookRequestArgsInner.js +43 -0
- package/dist/esm/generated/src/models/WatchTradesRequest.d.ts +40 -0
- package/dist/esm/generated/src/models/WatchTradesRequest.js +47 -0
- package/dist/esm/generated/src/models/index.d.ts +3 -0
- package/dist/esm/generated/src/models/index.js +3 -0
- package/dist/esm/pmxt/client.d.ts +44 -0
- package/dist/esm/pmxt/client.js +90 -0
- package/dist/generated/src/apis/DefaultApi.d.ts +45 -1
- package/dist/generated/src/apis/DefaultApi.js +75 -1
- package/dist/generated/src/models/WatchOrderBookRequest.d.ts +40 -0
- package/dist/generated/src/models/WatchOrderBookRequest.js +54 -0
- package/dist/generated/src/models/WatchOrderBookRequestArgsInner.d.ts +21 -0
- package/dist/generated/src/models/WatchOrderBookRequestArgsInner.js +49 -0
- package/dist/generated/src/models/WatchTradesRequest.d.ts +40 -0
- package/dist/generated/src/models/WatchTradesRequest.js +54 -0
- package/dist/generated/src/models/index.d.ts +3 -0
- package/dist/generated/src/models/index.js +3 -0
- package/dist/pmxt/client.d.ts +44 -0
- package/dist/pmxt/client.js +90 -0
- package/generated/.openapi-generator/FILES +6 -0
- package/generated/docs/DefaultApi.md +142 -0
- package/generated/docs/WatchOrderBookRequest.md +36 -0
- package/generated/docs/WatchOrderBookRequestArgsInner.md +32 -0
- package/generated/docs/WatchTradesRequest.md +36 -0
- package/generated/package.json +1 -1
- package/generated/src/apis/DefaultApi.ts +116 -0
- package/generated/src/models/WatchOrderBookRequest.ts +89 -0
- package/generated/src/models/WatchOrderBookRequestArgsInner.ts +55 -0
- package/generated/src/models/WatchTradesRequest.ts +89 -0
- package/generated/src/models/index.ts +3 -0
- package/package.json +2 -2
- package/pmxt/client.ts +101 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
import * as runtime from '../runtime.js';
|
|
13
|
-
import type { CancelOrderRequest, CreateOrder200Response, CreateOrderRequest, FetchBalance200Response, FetchMarkets200Response, FetchMarketsRequest, FetchOHLCV200Response, FetchOHLCVRequest, FetchOpenOrders200Response, FetchOpenOrdersRequest, FetchOrderBook200Response, FetchOrderBookRequest, FetchPositions200Response, FetchPositionsRequest, FetchTrades200Response, FetchTradesRequest, GetMarketsBySlugRequest, HealthCheck200Response, SearchMarketsRequest } from '../models/index.js';
|
|
13
|
+
import type { CancelOrderRequest, CreateOrder200Response, CreateOrderRequest, FetchBalance200Response, FetchMarkets200Response, FetchMarketsRequest, FetchOHLCV200Response, FetchOHLCVRequest, FetchOpenOrders200Response, FetchOpenOrdersRequest, FetchOrderBook200Response, FetchOrderBookRequest, FetchPositions200Response, FetchPositionsRequest, FetchTrades200Response, FetchTradesRequest, GetMarketsBySlugRequest, HealthCheck200Response, SearchMarketsRequest, WatchOrderBookRequest, WatchTradesRequest } from '../models/index.js';
|
|
14
14
|
export interface CancelOrderOperationRequest {
|
|
15
15
|
exchange: CancelOrderOperationExchangeEnum;
|
|
16
16
|
cancelOrderRequest?: CancelOrderRequest;
|
|
@@ -59,6 +59,14 @@ export interface SearchMarketsOperationRequest {
|
|
|
59
59
|
exchange: SearchMarketsOperationExchangeEnum;
|
|
60
60
|
searchMarketsRequest?: SearchMarketsRequest;
|
|
61
61
|
}
|
|
62
|
+
export interface WatchOrderBookOperationRequest {
|
|
63
|
+
exchange: WatchOrderBookOperationExchangeEnum;
|
|
64
|
+
watchOrderBookRequest?: WatchOrderBookRequest;
|
|
65
|
+
}
|
|
66
|
+
export interface WatchTradesOperationRequest {
|
|
67
|
+
exchange: WatchTradesOperationExchangeEnum;
|
|
68
|
+
watchTradesRequest?: WatchTradesRequest;
|
|
69
|
+
}
|
|
62
70
|
/**
|
|
63
71
|
*
|
|
64
72
|
*/
|
|
@@ -169,6 +177,26 @@ export declare class DefaultApi extends runtime.BaseAPI {
|
|
|
169
177
|
* Search Markets
|
|
170
178
|
*/
|
|
171
179
|
searchMarkets(requestParameters: SearchMarketsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchMarkets200Response>;
|
|
180
|
+
/**
|
|
181
|
+
* Subscribe to real-time order book updates via WebSocket. Returns a promise that resolves with the next order book update. Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
182
|
+
* Watch Order Book (WebSocket Stream)
|
|
183
|
+
*/
|
|
184
|
+
watchOrderBookRaw(requestParameters: WatchOrderBookOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchOrderBook200Response>>;
|
|
185
|
+
/**
|
|
186
|
+
* Subscribe to real-time order book updates via WebSocket. Returns a promise that resolves with the next order book update. Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
187
|
+
* Watch Order Book (WebSocket Stream)
|
|
188
|
+
*/
|
|
189
|
+
watchOrderBook(requestParameters: WatchOrderBookOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchOrderBook200Response>;
|
|
190
|
+
/**
|
|
191
|
+
* Subscribe to real-time trade updates via WebSocket. Returns a promise that resolves with the next trade(s). Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
192
|
+
* Watch Trades (WebSocket Stream)
|
|
193
|
+
*/
|
|
194
|
+
watchTradesRaw(requestParameters: WatchTradesOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchTrades200Response>>;
|
|
195
|
+
/**
|
|
196
|
+
* Subscribe to real-time trade updates via WebSocket. Returns a promise that resolves with the next trade(s). Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
197
|
+
* Watch Trades (WebSocket Stream)
|
|
198
|
+
*/
|
|
199
|
+
watchTrades(requestParameters: WatchTradesOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchTrades200Response>;
|
|
172
200
|
}
|
|
173
201
|
/**
|
|
174
202
|
* @export
|
|
@@ -266,3 +294,19 @@ export declare const SearchMarketsOperationExchangeEnum: {
|
|
|
266
294
|
readonly Kalshi: "kalshi";
|
|
267
295
|
};
|
|
268
296
|
export type SearchMarketsOperationExchangeEnum = typeof SearchMarketsOperationExchangeEnum[keyof typeof SearchMarketsOperationExchangeEnum];
|
|
297
|
+
/**
|
|
298
|
+
* @export
|
|
299
|
+
*/
|
|
300
|
+
export declare const WatchOrderBookOperationExchangeEnum: {
|
|
301
|
+
readonly Polymarket: "polymarket";
|
|
302
|
+
readonly Kalshi: "kalshi";
|
|
303
|
+
};
|
|
304
|
+
export type WatchOrderBookOperationExchangeEnum = typeof WatchOrderBookOperationExchangeEnum[keyof typeof WatchOrderBookOperationExchangeEnum];
|
|
305
|
+
/**
|
|
306
|
+
* @export
|
|
307
|
+
*/
|
|
308
|
+
export declare const WatchTradesOperationExchangeEnum: {
|
|
309
|
+
readonly Polymarket: "polymarket";
|
|
310
|
+
readonly Kalshi: "kalshi";
|
|
311
|
+
};
|
|
312
|
+
export type WatchTradesOperationExchangeEnum = typeof WatchTradesOperationExchangeEnum[keyof typeof WatchTradesOperationExchangeEnum];
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* Do not edit the class manually.
|
|
13
13
|
*/
|
|
14
14
|
import * as runtime from '../runtime.js';
|
|
15
|
-
import { CancelOrderRequestToJSON, CreateOrder200ResponseFromJSON, CreateOrderRequestToJSON, FetchBalance200ResponseFromJSON, FetchMarkets200ResponseFromJSON, FetchMarketsRequestToJSON, FetchOHLCV200ResponseFromJSON, FetchOHLCVRequestToJSON, FetchOpenOrders200ResponseFromJSON, FetchOpenOrdersRequestToJSON, FetchOrderBook200ResponseFromJSON, FetchOrderBookRequestToJSON, FetchPositions200ResponseFromJSON, FetchPositionsRequestToJSON, FetchTrades200ResponseFromJSON, FetchTradesRequestToJSON, GetMarketsBySlugRequestToJSON, HealthCheck200ResponseFromJSON, SearchMarketsRequestToJSON, } from '../models/index.js';
|
|
15
|
+
import { CancelOrderRequestToJSON, CreateOrder200ResponseFromJSON, CreateOrderRequestToJSON, FetchBalance200ResponseFromJSON, FetchMarkets200ResponseFromJSON, FetchMarketsRequestToJSON, FetchOHLCV200ResponseFromJSON, FetchOHLCVRequestToJSON, FetchOpenOrders200ResponseFromJSON, FetchOpenOrdersRequestToJSON, FetchOrderBook200ResponseFromJSON, FetchOrderBookRequestToJSON, FetchPositions200ResponseFromJSON, FetchPositionsRequestToJSON, FetchTrades200ResponseFromJSON, FetchTradesRequestToJSON, GetMarketsBySlugRequestToJSON, HealthCheck200ResponseFromJSON, SearchMarketsRequestToJSON, WatchOrderBookRequestToJSON, WatchTradesRequestToJSON, } from '../models/index.js';
|
|
16
16
|
/**
|
|
17
17
|
*
|
|
18
18
|
*/
|
|
@@ -377,6 +377,66 @@ export class DefaultApi extends runtime.BaseAPI {
|
|
|
377
377
|
const response = await this.searchMarketsRaw(requestParameters, initOverrides);
|
|
378
378
|
return await response.value();
|
|
379
379
|
}
|
|
380
|
+
/**
|
|
381
|
+
* Subscribe to real-time order book updates via WebSocket. Returns a promise that resolves with the next order book update. Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
382
|
+
* Watch Order Book (WebSocket Stream)
|
|
383
|
+
*/
|
|
384
|
+
async watchOrderBookRaw(requestParameters, initOverrides) {
|
|
385
|
+
if (requestParameters['exchange'] == null) {
|
|
386
|
+
throw new runtime.RequiredError('exchange', 'Required parameter "exchange" was null or undefined when calling watchOrderBook().');
|
|
387
|
+
}
|
|
388
|
+
const queryParameters = {};
|
|
389
|
+
const headerParameters = {};
|
|
390
|
+
headerParameters['Content-Type'] = 'application/json';
|
|
391
|
+
let urlPath = `/api/{exchange}/watchOrderBook`;
|
|
392
|
+
urlPath = urlPath.replace(`{${"exchange"}}`, encodeURIComponent(String(requestParameters['exchange'])));
|
|
393
|
+
const response = await this.request({
|
|
394
|
+
path: urlPath,
|
|
395
|
+
method: 'POST',
|
|
396
|
+
headers: headerParameters,
|
|
397
|
+
query: queryParameters,
|
|
398
|
+
body: WatchOrderBookRequestToJSON(requestParameters['watchOrderBookRequest']),
|
|
399
|
+
}, initOverrides);
|
|
400
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => FetchOrderBook200ResponseFromJSON(jsonValue));
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Subscribe to real-time order book updates via WebSocket. Returns a promise that resolves with the next order book update. Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
404
|
+
* Watch Order Book (WebSocket Stream)
|
|
405
|
+
*/
|
|
406
|
+
async watchOrderBook(requestParameters, initOverrides) {
|
|
407
|
+
const response = await this.watchOrderBookRaw(requestParameters, initOverrides);
|
|
408
|
+
return await response.value();
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Subscribe to real-time trade updates via WebSocket. Returns a promise that resolves with the next trade(s). Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
412
|
+
* Watch Trades (WebSocket Stream)
|
|
413
|
+
*/
|
|
414
|
+
async watchTradesRaw(requestParameters, initOverrides) {
|
|
415
|
+
if (requestParameters['exchange'] == null) {
|
|
416
|
+
throw new runtime.RequiredError('exchange', 'Required parameter "exchange" was null or undefined when calling watchTrades().');
|
|
417
|
+
}
|
|
418
|
+
const queryParameters = {};
|
|
419
|
+
const headerParameters = {};
|
|
420
|
+
headerParameters['Content-Type'] = 'application/json';
|
|
421
|
+
let urlPath = `/api/{exchange}/watchTrades`;
|
|
422
|
+
urlPath = urlPath.replace(`{${"exchange"}}`, encodeURIComponent(String(requestParameters['exchange'])));
|
|
423
|
+
const response = await this.request({
|
|
424
|
+
path: urlPath,
|
|
425
|
+
method: 'POST',
|
|
426
|
+
headers: headerParameters,
|
|
427
|
+
query: queryParameters,
|
|
428
|
+
body: WatchTradesRequestToJSON(requestParameters['watchTradesRequest']),
|
|
429
|
+
}, initOverrides);
|
|
430
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => FetchTrades200ResponseFromJSON(jsonValue));
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Subscribe to real-time trade updates via WebSocket. Returns a promise that resolves with the next trade(s). Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
434
|
+
* Watch Trades (WebSocket Stream)
|
|
435
|
+
*/
|
|
436
|
+
async watchTrades(requestParameters, initOverrides) {
|
|
437
|
+
const response = await this.watchTradesRaw(requestParameters, initOverrides);
|
|
438
|
+
return await response.value();
|
|
439
|
+
}
|
|
380
440
|
}
|
|
381
441
|
/**
|
|
382
442
|
* @export
|
|
@@ -462,3 +522,17 @@ export const SearchMarketsOperationExchangeEnum = {
|
|
|
462
522
|
Polymarket: 'polymarket',
|
|
463
523
|
Kalshi: 'kalshi'
|
|
464
524
|
};
|
|
525
|
+
/**
|
|
526
|
+
* @export
|
|
527
|
+
*/
|
|
528
|
+
export const WatchOrderBookOperationExchangeEnum = {
|
|
529
|
+
Polymarket: 'polymarket',
|
|
530
|
+
Kalshi: 'kalshi'
|
|
531
|
+
};
|
|
532
|
+
/**
|
|
533
|
+
* @export
|
|
534
|
+
*/
|
|
535
|
+
export const WatchTradesOperationExchangeEnum = {
|
|
536
|
+
Polymarket: 'polymarket',
|
|
537
|
+
Kalshi: 'kalshi'
|
|
538
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PMXT Sidecar API
|
|
3
|
+
* A unified local sidecar API for prediction markets (Polymarket, Kalshi). 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
|
+
import type { ExchangeCredentials } from './ExchangeCredentials.js';
|
|
13
|
+
import type { WatchOrderBookRequestArgsInner } from './WatchOrderBookRequestArgsInner.js';
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @export
|
|
17
|
+
* @interface WatchOrderBookRequest
|
|
18
|
+
*/
|
|
19
|
+
export interface WatchOrderBookRequest {
|
|
20
|
+
/**
|
|
21
|
+
* [outcomeId, limit?]
|
|
22
|
+
* @type {Array<WatchOrderBookRequestArgsInner>}
|
|
23
|
+
* @memberof WatchOrderBookRequest
|
|
24
|
+
*/
|
|
25
|
+
args: Array<WatchOrderBookRequestArgsInner>;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @type {ExchangeCredentials}
|
|
29
|
+
* @memberof WatchOrderBookRequest
|
|
30
|
+
*/
|
|
31
|
+
credentials?: ExchangeCredentials;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if a given object implements the WatchOrderBookRequest interface.
|
|
35
|
+
*/
|
|
36
|
+
export declare function instanceOfWatchOrderBookRequest(value: object): value is WatchOrderBookRequest;
|
|
37
|
+
export declare function WatchOrderBookRequestFromJSON(json: any): WatchOrderBookRequest;
|
|
38
|
+
export declare function WatchOrderBookRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): WatchOrderBookRequest;
|
|
39
|
+
export declare function WatchOrderBookRequestToJSON(json: any): WatchOrderBookRequest;
|
|
40
|
+
export declare function WatchOrderBookRequestToJSONTyped(value?: WatchOrderBookRequest | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* PMXT Sidecar API
|
|
5
|
+
* A unified local sidecar API for prediction markets (Polymarket, Kalshi). 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
|
+
import { ExchangeCredentialsFromJSON, ExchangeCredentialsToJSON, } from './ExchangeCredentials.js';
|
|
15
|
+
import { WatchOrderBookRequestArgsInnerFromJSON, WatchOrderBookRequestArgsInnerToJSON, } from './WatchOrderBookRequestArgsInner.js';
|
|
16
|
+
/**
|
|
17
|
+
* Check if a given object implements the WatchOrderBookRequest interface.
|
|
18
|
+
*/
|
|
19
|
+
export function instanceOfWatchOrderBookRequest(value) {
|
|
20
|
+
if (!('args' in value) || value['args'] === undefined)
|
|
21
|
+
return false;
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
export function WatchOrderBookRequestFromJSON(json) {
|
|
25
|
+
return WatchOrderBookRequestFromJSONTyped(json, false);
|
|
26
|
+
}
|
|
27
|
+
export function WatchOrderBookRequestFromJSONTyped(json, ignoreDiscriminator) {
|
|
28
|
+
if (json == null) {
|
|
29
|
+
return json;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
'args': (json['args'].map(WatchOrderBookRequestArgsInnerFromJSON)),
|
|
33
|
+
'credentials': json['credentials'] == null ? undefined : ExchangeCredentialsFromJSON(json['credentials']),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function WatchOrderBookRequestToJSON(json) {
|
|
37
|
+
return WatchOrderBookRequestToJSONTyped(json, false);
|
|
38
|
+
}
|
|
39
|
+
export function WatchOrderBookRequestToJSONTyped(value, ignoreDiscriminator = false) {
|
|
40
|
+
if (value == null) {
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
'args': (value['args'].map(WatchOrderBookRequestArgsInnerToJSON)),
|
|
45
|
+
'credentials': ExchangeCredentialsToJSON(value['credentials']),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PMXT Sidecar API
|
|
3
|
+
* A unified local sidecar API for prediction markets (Polymarket, Kalshi). 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;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* PMXT Sidecar API
|
|
5
|
+
* A unified local sidecar API for prediction markets (Polymarket, Kalshi). 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
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PMXT Sidecar API
|
|
3
|
+
* A unified local sidecar API for prediction markets (Polymarket, Kalshi). 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
|
+
import type { ExchangeCredentials } from './ExchangeCredentials.js';
|
|
13
|
+
import type { WatchOrderBookRequestArgsInner } from './WatchOrderBookRequestArgsInner.js';
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @export
|
|
17
|
+
* @interface WatchTradesRequest
|
|
18
|
+
*/
|
|
19
|
+
export interface WatchTradesRequest {
|
|
20
|
+
/**
|
|
21
|
+
* [outcomeId, since?, limit?]
|
|
22
|
+
* @type {Array<WatchOrderBookRequestArgsInner>}
|
|
23
|
+
* @memberof WatchTradesRequest
|
|
24
|
+
*/
|
|
25
|
+
args: Array<WatchOrderBookRequestArgsInner>;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @type {ExchangeCredentials}
|
|
29
|
+
* @memberof WatchTradesRequest
|
|
30
|
+
*/
|
|
31
|
+
credentials?: ExchangeCredentials;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if a given object implements the WatchTradesRequest interface.
|
|
35
|
+
*/
|
|
36
|
+
export declare function instanceOfWatchTradesRequest(value: object): value is WatchTradesRequest;
|
|
37
|
+
export declare function WatchTradesRequestFromJSON(json: any): WatchTradesRequest;
|
|
38
|
+
export declare function WatchTradesRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): WatchTradesRequest;
|
|
39
|
+
export declare function WatchTradesRequestToJSON(json: any): WatchTradesRequest;
|
|
40
|
+
export declare function WatchTradesRequestToJSONTyped(value?: WatchTradesRequest | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* PMXT Sidecar API
|
|
5
|
+
* A unified local sidecar API for prediction markets (Polymarket, Kalshi). 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
|
+
import { ExchangeCredentialsFromJSON, ExchangeCredentialsToJSON, } from './ExchangeCredentials.js';
|
|
15
|
+
import { WatchOrderBookRequestArgsInnerFromJSON, WatchOrderBookRequestArgsInnerToJSON, } from './WatchOrderBookRequestArgsInner.js';
|
|
16
|
+
/**
|
|
17
|
+
* Check if a given object implements the WatchTradesRequest interface.
|
|
18
|
+
*/
|
|
19
|
+
export function instanceOfWatchTradesRequest(value) {
|
|
20
|
+
if (!('args' in value) || value['args'] === undefined)
|
|
21
|
+
return false;
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
export function WatchTradesRequestFromJSON(json) {
|
|
25
|
+
return WatchTradesRequestFromJSONTyped(json, false);
|
|
26
|
+
}
|
|
27
|
+
export function WatchTradesRequestFromJSONTyped(json, ignoreDiscriminator) {
|
|
28
|
+
if (json == null) {
|
|
29
|
+
return json;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
'args': (json['args'].map(WatchOrderBookRequestArgsInnerFromJSON)),
|
|
33
|
+
'credentials': json['credentials'] == null ? undefined : ExchangeCredentialsFromJSON(json['credentials']),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function WatchTradesRequestToJSON(json) {
|
|
37
|
+
return WatchTradesRequestToJSONTyped(json, false);
|
|
38
|
+
}
|
|
39
|
+
export function WatchTradesRequestToJSONTyped(value, ignoreDiscriminator = false) {
|
|
40
|
+
if (value == null) {
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
'args': (value['args'].map(WatchOrderBookRequestArgsInnerToJSON)),
|
|
45
|
+
'credentials': ExchangeCredentialsToJSON(value['credentials']),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -36,3 +36,6 @@ export * from './SearchMarketsRequest.js';
|
|
|
36
36
|
export * from './SearchMarketsRequestArgsInner.js';
|
|
37
37
|
export * from './Trade.js';
|
|
38
38
|
export * from './UnifiedMarket.js';
|
|
39
|
+
export * from './WatchOrderBookRequest.js';
|
|
40
|
+
export * from './WatchOrderBookRequestArgsInner.js';
|
|
41
|
+
export * from './WatchTradesRequest.js';
|
|
@@ -38,3 +38,6 @@ export * from './SearchMarketsRequest.js';
|
|
|
38
38
|
export * from './SearchMarketsRequestArgsInner.js';
|
|
39
39
|
export * from './Trade.js';
|
|
40
40
|
export * from './UnifiedMarket.js';
|
|
41
|
+
export * from './WatchOrderBookRequest.js';
|
|
42
|
+
export * from './WatchOrderBookRequestArgsInner.js';
|
|
43
|
+
export * from './WatchTradesRequest.js';
|
|
@@ -124,6 +124,50 @@ export declare abstract class Exchange {
|
|
|
124
124
|
* @returns List of trades
|
|
125
125
|
*/
|
|
126
126
|
fetchTrades(outcomeId: string, params: HistoryFilterParams): Promise<Trade[]>;
|
|
127
|
+
/**
|
|
128
|
+
* Watch real-time order book updates via WebSocket.
|
|
129
|
+
*
|
|
130
|
+
* Returns a promise that resolves with the next order book update.
|
|
131
|
+
* Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
132
|
+
*
|
|
133
|
+
* @param outcomeId - Outcome ID to watch
|
|
134
|
+
* @param limit - Optional depth limit for order book
|
|
135
|
+
* @returns Next order book update
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* // Stream order book updates
|
|
140
|
+
* while (true) {
|
|
141
|
+
* const orderBook = await exchange.watchOrderBook(outcomeId);
|
|
142
|
+
* console.log(`Best bid: ${orderBook.bids[0].price}`);
|
|
143
|
+
* console.log(`Best ask: ${orderBook.asks[0].price}`);
|
|
144
|
+
* }
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
watchOrderBook(outcomeId: string, limit?: number): Promise<OrderBook>;
|
|
148
|
+
/**
|
|
149
|
+
* Watch real-time trade updates via WebSocket.
|
|
150
|
+
*
|
|
151
|
+
* Returns a promise that resolves with the next trade(s).
|
|
152
|
+
* Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
153
|
+
*
|
|
154
|
+
* @param outcomeId - Outcome ID to watch
|
|
155
|
+
* @param since - Optional timestamp to filter trades from
|
|
156
|
+
* @param limit - Optional limit for number of trades
|
|
157
|
+
* @returns Next trade update(s)
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```typescript
|
|
161
|
+
* // Stream trade updates
|
|
162
|
+
* while (true) {
|
|
163
|
+
* const trades = await exchange.watchTrades(outcomeId);
|
|
164
|
+
* for (const trade of trades) {
|
|
165
|
+
* console.log(`Trade: ${trade.price} @ ${trade.amount}`);
|
|
166
|
+
* }
|
|
167
|
+
* }
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
watchTrades(outcomeId: string, since?: number, limit?: number): Promise<Trade[]>;
|
|
127
171
|
/**
|
|
128
172
|
* Create a new order.
|
|
129
173
|
*
|
package/dist/esm/pmxt/client.js
CHANGED
|
@@ -383,6 +383,96 @@ export class Exchange {
|
|
|
383
383
|
throw new Error(`Failed to fetch trades: ${error}`);
|
|
384
384
|
}
|
|
385
385
|
}
|
|
386
|
+
// WebSocket Streaming Methods
|
|
387
|
+
/**
|
|
388
|
+
* Watch real-time order book updates via WebSocket.
|
|
389
|
+
*
|
|
390
|
+
* Returns a promise that resolves with the next order book update.
|
|
391
|
+
* Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
392
|
+
*
|
|
393
|
+
* @param outcomeId - Outcome ID to watch
|
|
394
|
+
* @param limit - Optional depth limit for order book
|
|
395
|
+
* @returns Next order book update
|
|
396
|
+
*
|
|
397
|
+
* @example
|
|
398
|
+
* ```typescript
|
|
399
|
+
* // Stream order book updates
|
|
400
|
+
* while (true) {
|
|
401
|
+
* const orderBook = await exchange.watchOrderBook(outcomeId);
|
|
402
|
+
* console.log(`Best bid: ${orderBook.bids[0].price}`);
|
|
403
|
+
* console.log(`Best ask: ${orderBook.asks[0].price}`);
|
|
404
|
+
* }
|
|
405
|
+
* ```
|
|
406
|
+
*/
|
|
407
|
+
async watchOrderBook(outcomeId, limit) {
|
|
408
|
+
await this.initPromise;
|
|
409
|
+
try {
|
|
410
|
+
const args = [outcomeId];
|
|
411
|
+
if (limit !== undefined) {
|
|
412
|
+
args.push(limit);
|
|
413
|
+
}
|
|
414
|
+
const requestBody = {
|
|
415
|
+
args,
|
|
416
|
+
credentials: this.getCredentials()
|
|
417
|
+
};
|
|
418
|
+
const response = await this.api.watchOrderBook({
|
|
419
|
+
exchange: this.exchangeName,
|
|
420
|
+
watchOrderBookRequest: requestBody,
|
|
421
|
+
});
|
|
422
|
+
const data = this.handleResponse(response);
|
|
423
|
+
return convertOrderBook(data);
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
throw new Error(`Failed to watch order book: ${error}`);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Watch real-time trade updates via WebSocket.
|
|
431
|
+
*
|
|
432
|
+
* Returns a promise that resolves with the next trade(s).
|
|
433
|
+
* Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
434
|
+
*
|
|
435
|
+
* @param outcomeId - Outcome ID to watch
|
|
436
|
+
* @param since - Optional timestamp to filter trades from
|
|
437
|
+
* @param limit - Optional limit for number of trades
|
|
438
|
+
* @returns Next trade update(s)
|
|
439
|
+
*
|
|
440
|
+
* @example
|
|
441
|
+
* ```typescript
|
|
442
|
+
* // Stream trade updates
|
|
443
|
+
* while (true) {
|
|
444
|
+
* const trades = await exchange.watchTrades(outcomeId);
|
|
445
|
+
* for (const trade of trades) {
|
|
446
|
+
* console.log(`Trade: ${trade.price} @ ${trade.amount}`);
|
|
447
|
+
* }
|
|
448
|
+
* }
|
|
449
|
+
* ```
|
|
450
|
+
*/
|
|
451
|
+
async watchTrades(outcomeId, since, limit) {
|
|
452
|
+
await this.initPromise;
|
|
453
|
+
try {
|
|
454
|
+
const args = [outcomeId];
|
|
455
|
+
if (since !== undefined) {
|
|
456
|
+
args.push(since);
|
|
457
|
+
}
|
|
458
|
+
if (limit !== undefined) {
|
|
459
|
+
args.push(limit);
|
|
460
|
+
}
|
|
461
|
+
const requestBody = {
|
|
462
|
+
args,
|
|
463
|
+
credentials: this.getCredentials()
|
|
464
|
+
};
|
|
465
|
+
const response = await this.api.watchTrades({
|
|
466
|
+
exchange: this.exchangeName,
|
|
467
|
+
watchTradesRequest: requestBody,
|
|
468
|
+
});
|
|
469
|
+
const data = this.handleResponse(response);
|
|
470
|
+
return data.map(convertTrade);
|
|
471
|
+
}
|
|
472
|
+
catch (error) {
|
|
473
|
+
throw new Error(`Failed to watch trades: ${error}`);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
386
476
|
// Trading Methods (require authentication)
|
|
387
477
|
/**
|
|
388
478
|
* Create a new order.
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
import * as runtime from '../runtime';
|
|
13
|
-
import type { CancelOrderRequest, CreateOrder200Response, CreateOrderRequest, FetchBalance200Response, FetchMarkets200Response, FetchMarketsRequest, FetchOHLCV200Response, FetchOHLCVRequest, FetchOpenOrders200Response, FetchOpenOrdersRequest, FetchOrderBook200Response, FetchOrderBookRequest, FetchPositions200Response, FetchPositionsRequest, FetchTrades200Response, FetchTradesRequest, GetMarketsBySlugRequest, HealthCheck200Response, SearchMarketsRequest } from '../models/index';
|
|
13
|
+
import type { CancelOrderRequest, CreateOrder200Response, CreateOrderRequest, FetchBalance200Response, FetchMarkets200Response, FetchMarketsRequest, FetchOHLCV200Response, FetchOHLCVRequest, FetchOpenOrders200Response, FetchOpenOrdersRequest, FetchOrderBook200Response, FetchOrderBookRequest, FetchPositions200Response, FetchPositionsRequest, FetchTrades200Response, FetchTradesRequest, GetMarketsBySlugRequest, HealthCheck200Response, SearchMarketsRequest, WatchOrderBookRequest, WatchTradesRequest } from '../models/index';
|
|
14
14
|
export interface CancelOrderOperationRequest {
|
|
15
15
|
exchange: CancelOrderOperationExchangeEnum;
|
|
16
16
|
cancelOrderRequest?: CancelOrderRequest;
|
|
@@ -59,6 +59,14 @@ export interface SearchMarketsOperationRequest {
|
|
|
59
59
|
exchange: SearchMarketsOperationExchangeEnum;
|
|
60
60
|
searchMarketsRequest?: SearchMarketsRequest;
|
|
61
61
|
}
|
|
62
|
+
export interface WatchOrderBookOperationRequest {
|
|
63
|
+
exchange: WatchOrderBookOperationExchangeEnum;
|
|
64
|
+
watchOrderBookRequest?: WatchOrderBookRequest;
|
|
65
|
+
}
|
|
66
|
+
export interface WatchTradesOperationRequest {
|
|
67
|
+
exchange: WatchTradesOperationExchangeEnum;
|
|
68
|
+
watchTradesRequest?: WatchTradesRequest;
|
|
69
|
+
}
|
|
62
70
|
/**
|
|
63
71
|
*
|
|
64
72
|
*/
|
|
@@ -169,6 +177,26 @@ export declare class DefaultApi extends runtime.BaseAPI {
|
|
|
169
177
|
* Search Markets
|
|
170
178
|
*/
|
|
171
179
|
searchMarkets(requestParameters: SearchMarketsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchMarkets200Response>;
|
|
180
|
+
/**
|
|
181
|
+
* Subscribe to real-time order book updates via WebSocket. Returns a promise that resolves with the next order book update. Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
182
|
+
* Watch Order Book (WebSocket Stream)
|
|
183
|
+
*/
|
|
184
|
+
watchOrderBookRaw(requestParameters: WatchOrderBookOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchOrderBook200Response>>;
|
|
185
|
+
/**
|
|
186
|
+
* Subscribe to real-time order book updates via WebSocket. Returns a promise that resolves with the next order book update. Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
187
|
+
* Watch Order Book (WebSocket Stream)
|
|
188
|
+
*/
|
|
189
|
+
watchOrderBook(requestParameters: WatchOrderBookOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchOrderBook200Response>;
|
|
190
|
+
/**
|
|
191
|
+
* Subscribe to real-time trade updates via WebSocket. Returns a promise that resolves with the next trade(s). Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
192
|
+
* Watch Trades (WebSocket Stream)
|
|
193
|
+
*/
|
|
194
|
+
watchTradesRaw(requestParameters: WatchTradesOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FetchTrades200Response>>;
|
|
195
|
+
/**
|
|
196
|
+
* Subscribe to real-time trade updates via WebSocket. Returns a promise that resolves with the next trade(s). Call repeatedly in a loop to stream updates (CCXT Pro pattern).
|
|
197
|
+
* Watch Trades (WebSocket Stream)
|
|
198
|
+
*/
|
|
199
|
+
watchTrades(requestParameters: WatchTradesOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FetchTrades200Response>;
|
|
172
200
|
}
|
|
173
201
|
/**
|
|
174
202
|
* @export
|
|
@@ -266,3 +294,19 @@ export declare const SearchMarketsOperationExchangeEnum: {
|
|
|
266
294
|
readonly Kalshi: "kalshi";
|
|
267
295
|
};
|
|
268
296
|
export type SearchMarketsOperationExchangeEnum = typeof SearchMarketsOperationExchangeEnum[keyof typeof SearchMarketsOperationExchangeEnum];
|
|
297
|
+
/**
|
|
298
|
+
* @export
|
|
299
|
+
*/
|
|
300
|
+
export declare const WatchOrderBookOperationExchangeEnum: {
|
|
301
|
+
readonly Polymarket: "polymarket";
|
|
302
|
+
readonly Kalshi: "kalshi";
|
|
303
|
+
};
|
|
304
|
+
export type WatchOrderBookOperationExchangeEnum = typeof WatchOrderBookOperationExchangeEnum[keyof typeof WatchOrderBookOperationExchangeEnum];
|
|
305
|
+
/**
|
|
306
|
+
* @export
|
|
307
|
+
*/
|
|
308
|
+
export declare const WatchTradesOperationExchangeEnum: {
|
|
309
|
+
readonly Polymarket: "polymarket";
|
|
310
|
+
readonly Kalshi: "kalshi";
|
|
311
|
+
};
|
|
312
|
+
export type WatchTradesOperationExchangeEnum = typeof WatchTradesOperationExchangeEnum[keyof typeof WatchTradesOperationExchangeEnum];
|