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