pmxt-core 2.5.0 → 2.6.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/BaseExchange.d.ts +17 -0
- package/dist/BaseExchange.js +15 -0
- package/dist/exchanges/baozi/index.d.ts +15 -0
- package/dist/exchanges/baozi/index.js +15 -0
- package/dist/exchanges/kalshi/index.d.ts +15 -0
- package/dist/exchanges/kalshi/index.js +15 -0
- package/dist/exchanges/limitless/index.d.ts +15 -0
- package/dist/exchanges/limitless/index.js +15 -0
- package/dist/exchanges/myriad/index.d.ts +15 -0
- package/dist/exchanges/myriad/index.js +15 -0
- package/dist/exchanges/polymarket/index.d.ts +15 -0
- package/dist/exchanges/polymarket/index.js +15 -0
- package/dist/exchanges/probable/index.d.ts +15 -0
- package/dist/exchanges/probable/index.js +15 -0
- package/dist/server/app.js +14 -0
- package/package.json +3 -3
package/dist/BaseExchange.d.ts
CHANGED
|
@@ -94,6 +94,22 @@ export type EventFilterCriteria = {
|
|
|
94
94
|
};
|
|
95
95
|
};
|
|
96
96
|
export type EventFilterFunction = (event: UnifiedEvent) => boolean;
|
|
97
|
+
export type ExchangeCapability = true | false | 'emulated';
|
|
98
|
+
export interface ExchangeHas {
|
|
99
|
+
fetchMarkets: ExchangeCapability;
|
|
100
|
+
fetchEvents: ExchangeCapability;
|
|
101
|
+
fetchOHLCV: ExchangeCapability;
|
|
102
|
+
fetchOrderBook: ExchangeCapability;
|
|
103
|
+
fetchTrades: ExchangeCapability;
|
|
104
|
+
createOrder: ExchangeCapability;
|
|
105
|
+
cancelOrder: ExchangeCapability;
|
|
106
|
+
fetchOrder: ExchangeCapability;
|
|
107
|
+
fetchOpenOrders: ExchangeCapability;
|
|
108
|
+
fetchPositions: ExchangeCapability;
|
|
109
|
+
fetchBalance: ExchangeCapability;
|
|
110
|
+
watchOrderBook: ExchangeCapability;
|
|
111
|
+
watchTrades: ExchangeCapability;
|
|
112
|
+
}
|
|
97
113
|
export interface ExchangeCredentials {
|
|
98
114
|
apiKey?: string;
|
|
99
115
|
apiSecret?: string;
|
|
@@ -104,6 +120,7 @@ export interface ExchangeCredentials {
|
|
|
104
120
|
}
|
|
105
121
|
export declare abstract class PredictionMarketExchange {
|
|
106
122
|
protected credentials?: ExchangeCredentials;
|
|
123
|
+
readonly has: ExchangeHas;
|
|
107
124
|
constructor(credentials?: ExchangeCredentials);
|
|
108
125
|
abstract get name(): string;
|
|
109
126
|
/**
|
package/dist/BaseExchange.js
CHANGED
|
@@ -8,6 +8,21 @@ const errors_1 = require("./errors");
|
|
|
8
8
|
// ----------------------------------------------------------------------------
|
|
9
9
|
class PredictionMarketExchange {
|
|
10
10
|
credentials;
|
|
11
|
+
has = {
|
|
12
|
+
fetchMarkets: false,
|
|
13
|
+
fetchEvents: false,
|
|
14
|
+
fetchOHLCV: false,
|
|
15
|
+
fetchOrderBook: false,
|
|
16
|
+
fetchTrades: false,
|
|
17
|
+
createOrder: false,
|
|
18
|
+
cancelOrder: false,
|
|
19
|
+
fetchOrder: false,
|
|
20
|
+
fetchOpenOrders: false,
|
|
21
|
+
fetchPositions: false,
|
|
22
|
+
fetchBalance: false,
|
|
23
|
+
watchOrderBook: false,
|
|
24
|
+
watchTrades: false,
|
|
25
|
+
};
|
|
11
26
|
constructor(credentials) {
|
|
12
27
|
this.credentials = credentials;
|
|
13
28
|
}
|
|
@@ -5,6 +5,21 @@ export interface BaoziExchangeOptions {
|
|
|
5
5
|
rpcUrl?: string;
|
|
6
6
|
}
|
|
7
7
|
export declare class BaoziExchange extends PredictionMarketExchange {
|
|
8
|
+
readonly has: {
|
|
9
|
+
fetchMarkets: true;
|
|
10
|
+
fetchEvents: true;
|
|
11
|
+
fetchOHLCV: "emulated";
|
|
12
|
+
fetchOrderBook: "emulated";
|
|
13
|
+
fetchTrades: "emulated";
|
|
14
|
+
createOrder: true;
|
|
15
|
+
cancelOrder: false;
|
|
16
|
+
fetchOrder: true;
|
|
17
|
+
fetchOpenOrders: "emulated";
|
|
18
|
+
fetchPositions: true;
|
|
19
|
+
fetchBalance: true;
|
|
20
|
+
watchOrderBook: true;
|
|
21
|
+
watchTrades: false;
|
|
22
|
+
};
|
|
8
23
|
private auth?;
|
|
9
24
|
private connection;
|
|
10
25
|
private ws?;
|
|
@@ -14,6 +14,21 @@ const websocket_1 = require("./websocket");
|
|
|
14
14
|
const errors_2 = require("./errors");
|
|
15
15
|
const utils_1 = require("./utils");
|
|
16
16
|
class BaoziExchange extends BaseExchange_1.PredictionMarketExchange {
|
|
17
|
+
has = {
|
|
18
|
+
fetchMarkets: true,
|
|
19
|
+
fetchEvents: true,
|
|
20
|
+
fetchOHLCV: 'emulated',
|
|
21
|
+
fetchOrderBook: 'emulated',
|
|
22
|
+
fetchTrades: 'emulated',
|
|
23
|
+
createOrder: true,
|
|
24
|
+
cancelOrder: false,
|
|
25
|
+
fetchOrder: true,
|
|
26
|
+
fetchOpenOrders: 'emulated',
|
|
27
|
+
fetchPositions: true,
|
|
28
|
+
fetchBalance: true,
|
|
29
|
+
watchOrderBook: true,
|
|
30
|
+
watchTrades: false,
|
|
31
|
+
};
|
|
17
32
|
auth;
|
|
18
33
|
connection;
|
|
19
34
|
ws;
|
|
@@ -7,6 +7,21 @@ export interface KalshiExchangeOptions {
|
|
|
7
7
|
websocket?: KalshiWebSocketConfig;
|
|
8
8
|
}
|
|
9
9
|
export declare class KalshiExchange extends PredictionMarketExchange {
|
|
10
|
+
readonly has: {
|
|
11
|
+
fetchMarkets: true;
|
|
12
|
+
fetchEvents: true;
|
|
13
|
+
fetchOHLCV: true;
|
|
14
|
+
fetchOrderBook: true;
|
|
15
|
+
fetchTrades: true;
|
|
16
|
+
createOrder: true;
|
|
17
|
+
cancelOrder: true;
|
|
18
|
+
fetchOrder: true;
|
|
19
|
+
fetchOpenOrders: true;
|
|
20
|
+
fetchPositions: true;
|
|
21
|
+
fetchBalance: true;
|
|
22
|
+
watchOrderBook: true;
|
|
23
|
+
watchTrades: true;
|
|
24
|
+
};
|
|
10
25
|
private auth?;
|
|
11
26
|
private wsConfig?;
|
|
12
27
|
constructor(options?: ExchangeCredentials | KalshiExchangeOptions);
|
|
@@ -16,6 +16,21 @@ const websocket_1 = require("./websocket");
|
|
|
16
16
|
const errors_1 = require("./errors");
|
|
17
17
|
const errors_2 = require("../../errors");
|
|
18
18
|
class KalshiExchange extends BaseExchange_1.PredictionMarketExchange {
|
|
19
|
+
has = {
|
|
20
|
+
fetchMarkets: true,
|
|
21
|
+
fetchEvents: true,
|
|
22
|
+
fetchOHLCV: true,
|
|
23
|
+
fetchOrderBook: true,
|
|
24
|
+
fetchTrades: true,
|
|
25
|
+
createOrder: true,
|
|
26
|
+
cancelOrder: true,
|
|
27
|
+
fetchOrder: true,
|
|
28
|
+
fetchOpenOrders: true,
|
|
29
|
+
fetchPositions: true,
|
|
30
|
+
fetchBalance: true,
|
|
31
|
+
watchOrderBook: true,
|
|
32
|
+
watchTrades: true,
|
|
33
|
+
};
|
|
19
34
|
auth;
|
|
20
35
|
wsConfig;
|
|
21
36
|
constructor(options) {
|
|
@@ -7,6 +7,21 @@ export interface LimitlessExchangeOptions {
|
|
|
7
7
|
websocket?: LimitlessWebSocketConfig;
|
|
8
8
|
}
|
|
9
9
|
export declare class LimitlessExchange extends PredictionMarketExchange {
|
|
10
|
+
readonly has: {
|
|
11
|
+
fetchMarkets: true;
|
|
12
|
+
fetchEvents: true;
|
|
13
|
+
fetchOHLCV: true;
|
|
14
|
+
fetchOrderBook: true;
|
|
15
|
+
fetchTrades: true;
|
|
16
|
+
createOrder: true;
|
|
17
|
+
cancelOrder: true;
|
|
18
|
+
fetchOrder: false;
|
|
19
|
+
fetchOpenOrders: true;
|
|
20
|
+
fetchPositions: true;
|
|
21
|
+
fetchBalance: true;
|
|
22
|
+
watchOrderBook: true;
|
|
23
|
+
watchTrades: true;
|
|
24
|
+
};
|
|
10
25
|
private auth?;
|
|
11
26
|
private client?;
|
|
12
27
|
private wsConfig?;
|
|
@@ -16,6 +16,21 @@ const errors_2 = require("../../errors");
|
|
|
16
16
|
const sdk_1 = require("@limitless-exchange/sdk");
|
|
17
17
|
const ethers_1 = require("ethers");
|
|
18
18
|
class LimitlessExchange extends BaseExchange_1.PredictionMarketExchange {
|
|
19
|
+
has = {
|
|
20
|
+
fetchMarkets: true,
|
|
21
|
+
fetchEvents: true,
|
|
22
|
+
fetchOHLCV: true,
|
|
23
|
+
fetchOrderBook: true,
|
|
24
|
+
fetchTrades: true,
|
|
25
|
+
createOrder: true,
|
|
26
|
+
cancelOrder: true,
|
|
27
|
+
fetchOrder: false,
|
|
28
|
+
fetchOpenOrders: true,
|
|
29
|
+
fetchPositions: true,
|
|
30
|
+
fetchBalance: true,
|
|
31
|
+
watchOrderBook: true,
|
|
32
|
+
watchTrades: true,
|
|
33
|
+
};
|
|
19
34
|
auth;
|
|
20
35
|
client;
|
|
21
36
|
wsConfig;
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { PredictionMarketExchange, MarketFilterParams, HistoryFilterParams, OHLCVParams, TradesParams, ExchangeCredentials, EventFetchParams } from '../../BaseExchange';
|
|
2
2
|
import { UnifiedMarket, UnifiedEvent, PriceCandle, OrderBook, Trade, Balance, Order, Position, CreateOrderParams } from '../../types';
|
|
3
3
|
export declare class MyriadExchange extends PredictionMarketExchange {
|
|
4
|
+
readonly has: {
|
|
5
|
+
fetchMarkets: true;
|
|
6
|
+
fetchEvents: true;
|
|
7
|
+
fetchOHLCV: true;
|
|
8
|
+
fetchOrderBook: "emulated";
|
|
9
|
+
fetchTrades: true;
|
|
10
|
+
createOrder: "emulated";
|
|
11
|
+
cancelOrder: false;
|
|
12
|
+
fetchOrder: false;
|
|
13
|
+
fetchOpenOrders: "emulated";
|
|
14
|
+
fetchPositions: true;
|
|
15
|
+
fetchBalance: "emulated";
|
|
16
|
+
watchOrderBook: "emulated";
|
|
17
|
+
watchTrades: "emulated";
|
|
18
|
+
};
|
|
4
19
|
private auth?;
|
|
5
20
|
private ws?;
|
|
6
21
|
constructor(credentials?: ExchangeCredentials);
|
|
@@ -17,6 +17,21 @@ const errors_1 = require("./errors");
|
|
|
17
17
|
const errors_2 = require("../../errors");
|
|
18
18
|
const utils_1 = require("./utils");
|
|
19
19
|
class MyriadExchange extends BaseExchange_1.PredictionMarketExchange {
|
|
20
|
+
has = {
|
|
21
|
+
fetchMarkets: true,
|
|
22
|
+
fetchEvents: true,
|
|
23
|
+
fetchOHLCV: true,
|
|
24
|
+
fetchOrderBook: 'emulated',
|
|
25
|
+
fetchTrades: true,
|
|
26
|
+
createOrder: 'emulated',
|
|
27
|
+
cancelOrder: false,
|
|
28
|
+
fetchOrder: false,
|
|
29
|
+
fetchOpenOrders: 'emulated',
|
|
30
|
+
fetchPositions: true,
|
|
31
|
+
fetchBalance: 'emulated',
|
|
32
|
+
watchOrderBook: 'emulated',
|
|
33
|
+
watchTrades: 'emulated',
|
|
34
|
+
};
|
|
20
35
|
auth;
|
|
21
36
|
ws;
|
|
22
37
|
constructor(credentials) {
|
|
@@ -7,6 +7,21 @@ export interface PolymarketExchangeOptions {
|
|
|
7
7
|
websocket?: PolymarketWebSocketConfig;
|
|
8
8
|
}
|
|
9
9
|
export declare class PolymarketExchange extends PredictionMarketExchange {
|
|
10
|
+
readonly has: {
|
|
11
|
+
fetchMarkets: true;
|
|
12
|
+
fetchEvents: true;
|
|
13
|
+
fetchOHLCV: true;
|
|
14
|
+
fetchOrderBook: true;
|
|
15
|
+
fetchTrades: true;
|
|
16
|
+
createOrder: true;
|
|
17
|
+
cancelOrder: true;
|
|
18
|
+
fetchOrder: true;
|
|
19
|
+
fetchOpenOrders: true;
|
|
20
|
+
fetchPositions: true;
|
|
21
|
+
fetchBalance: true;
|
|
22
|
+
watchOrderBook: true;
|
|
23
|
+
watchTrades: true;
|
|
24
|
+
};
|
|
10
25
|
private auth?;
|
|
11
26
|
private wsConfig?;
|
|
12
27
|
constructor(options?: ExchangeCredentials | PolymarketExchangeOptions);
|
|
@@ -14,6 +14,21 @@ const websocket_1 = require("./websocket");
|
|
|
14
14
|
const errors_1 = require("./errors");
|
|
15
15
|
const errors_2 = require("../../errors");
|
|
16
16
|
class PolymarketExchange extends BaseExchange_1.PredictionMarketExchange {
|
|
17
|
+
has = {
|
|
18
|
+
fetchMarkets: true,
|
|
19
|
+
fetchEvents: true,
|
|
20
|
+
fetchOHLCV: true,
|
|
21
|
+
fetchOrderBook: true,
|
|
22
|
+
fetchTrades: true,
|
|
23
|
+
createOrder: true,
|
|
24
|
+
cancelOrder: true,
|
|
25
|
+
fetchOrder: true,
|
|
26
|
+
fetchOpenOrders: true,
|
|
27
|
+
fetchPositions: true,
|
|
28
|
+
fetchBalance: true,
|
|
29
|
+
watchOrderBook: true,
|
|
30
|
+
watchTrades: true,
|
|
31
|
+
};
|
|
17
32
|
auth;
|
|
18
33
|
wsConfig;
|
|
19
34
|
constructor(options) {
|
|
@@ -2,6 +2,21 @@ import { PredictionMarketExchange, MarketFetchParams, EventFetchParams, Exchange
|
|
|
2
2
|
import { UnifiedMarket, UnifiedEvent, OrderBook, PriceCandle, Trade, Order, Position, Balance, CreateOrderParams } from '../../types';
|
|
3
3
|
import { ProbableWebSocketConfig } from './websocket';
|
|
4
4
|
export declare class ProbableExchange extends PredictionMarketExchange {
|
|
5
|
+
readonly has: {
|
|
6
|
+
fetchMarkets: true;
|
|
7
|
+
fetchEvents: true;
|
|
8
|
+
fetchOHLCV: true;
|
|
9
|
+
fetchOrderBook: true;
|
|
10
|
+
fetchTrades: true;
|
|
11
|
+
createOrder: true;
|
|
12
|
+
cancelOrder: true;
|
|
13
|
+
fetchOrder: true;
|
|
14
|
+
fetchOpenOrders: true;
|
|
15
|
+
fetchPositions: true;
|
|
16
|
+
fetchBalance: true;
|
|
17
|
+
watchOrderBook: true;
|
|
18
|
+
watchTrades: false;
|
|
19
|
+
};
|
|
5
20
|
private auth?;
|
|
6
21
|
private ws?;
|
|
7
22
|
private wsConfig?;
|
|
@@ -15,6 +15,21 @@ const errors_2 = require("../../errors");
|
|
|
15
15
|
const clob_1 = require("@prob/clob");
|
|
16
16
|
const BSC_USDT_ADDRESS = '0x55d398326f99059fF775485246999027B3197955';
|
|
17
17
|
class ProbableExchange extends BaseExchange_1.PredictionMarketExchange {
|
|
18
|
+
has = {
|
|
19
|
+
fetchMarkets: true,
|
|
20
|
+
fetchEvents: true,
|
|
21
|
+
fetchOHLCV: true,
|
|
22
|
+
fetchOrderBook: true,
|
|
23
|
+
fetchTrades: true,
|
|
24
|
+
createOrder: true,
|
|
25
|
+
cancelOrder: true,
|
|
26
|
+
fetchOrder: true,
|
|
27
|
+
fetchOpenOrders: true,
|
|
28
|
+
fetchPositions: true,
|
|
29
|
+
fetchBalance: true,
|
|
30
|
+
watchOrderBook: true,
|
|
31
|
+
watchTrades: false,
|
|
32
|
+
};
|
|
18
33
|
auth;
|
|
19
34
|
ws;
|
|
20
35
|
wsConfig;
|
package/dist/server/app.js
CHANGED
|
@@ -39,6 +39,20 @@ async function startServer(port, accessToken) {
|
|
|
39
39
|
}
|
|
40
40
|
next();
|
|
41
41
|
});
|
|
42
|
+
// Capability map endpoint: GET /api/:exchange/has
|
|
43
|
+
app.get('/api/:exchange/has', (req, res, next) => {
|
|
44
|
+
try {
|
|
45
|
+
const exchangeName = req.params.exchange.toLowerCase();
|
|
46
|
+
if (!defaultExchanges[exchangeName]) {
|
|
47
|
+
defaultExchanges[exchangeName] = createExchange(exchangeName);
|
|
48
|
+
}
|
|
49
|
+
const exchange = defaultExchanges[exchangeName];
|
|
50
|
+
res.json({ success: true, data: exchange.has });
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
next(error);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
42
56
|
// API endpoint: POST /api/:exchange/:method
|
|
43
57
|
// Body: { args: any[], credentials?: ExchangeCredentials }
|
|
44
58
|
app.post('/api/:exchange/:method', async (req, res, next) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pmxt-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "pmxt is a unified prediction market data API. The ccxt for prediction markets.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"test": "jest -c jest.config.js",
|
|
30
30
|
"server": "tsx watch src/server/index.ts",
|
|
31
31
|
"server:prod": "node dist/server/index.js",
|
|
32
|
-
"generate:sdk:python": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g python -o ../sdks/python/generated --package-name pmxt_internal --additional-properties=projectName=pmxt-internal,packageVersion=2.
|
|
33
|
-
"generate:sdk:typescript": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g typescript-fetch -o ../sdks/typescript/generated --additional-properties=npmName=pmxtjs,npmVersion=2.
|
|
32
|
+
"generate:sdk:python": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g python -o ../sdks/python/generated --package-name pmxt_internal --additional-properties=projectName=pmxt-internal,packageVersion=2.6.0,library=urllib3",
|
|
33
|
+
"generate:sdk:typescript": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g typescript-fetch -o ../sdks/typescript/generated --additional-properties=npmName=pmxtjs,npmVersion=2.6.0,supportsES6=true,typescriptThreePlus=true && node ../sdks/typescript/scripts/fix-generated.js",
|
|
34
34
|
"extract:jsdoc": "node ../scripts/extract-jsdoc.js",
|
|
35
35
|
"generate:docs": "npm run extract:jsdoc && node ../scripts/generate-api-docs.js",
|
|
36
36
|
"generate:sdk:all": "npm run generate:sdk:python && npm run generate:sdk:typescript && npm run generate:docs"
|