@catalyst-team/poly-sdk 0.4.5 → 0.4.7
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 +18 -9
- package/README.zh-CN.md +18 -9
- package/dist/src/clients/bridge-client.d.ts +131 -1
- package/dist/src/clients/bridge-client.d.ts.map +1 -1
- package/dist/src/clients/bridge-client.js +143 -0
- package/dist/src/clients/bridge-client.js.map +1 -1
- package/dist/src/clients/data-api.d.ts +25 -0
- package/dist/src/clients/data-api.d.ts.map +1 -1
- package/dist/src/clients/data-api.js +57 -0
- package/dist/src/clients/data-api.js.map +1 -1
- package/dist/src/core/types.d.ts +55 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +7 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/realtime/index.d.ts +18 -0
- package/dist/src/realtime/index.d.ts.map +1 -0
- package/dist/src/realtime/index.js +14 -0
- package/dist/src/realtime/index.js.map +1 -0
- package/dist/src/realtime/realtime-data-client.d.ts +274 -0
- package/dist/src/realtime/realtime-data-client.d.ts.map +1 -0
- package/dist/src/realtime/realtime-data-client.js +771 -0
- package/dist/src/realtime/realtime-data-client.js.map +1 -0
- package/dist/src/realtime/types.d.ts +485 -0
- package/dist/src/realtime/types.d.ts.map +1 -0
- package/dist/src/realtime/types.js +36 -0
- package/dist/src/realtime/types.js.map +1 -0
- package/dist/src/services/arbitrage-service.d.ts.map +1 -1
- package/dist/src/services/arbitrage-service.js +2 -1
- package/dist/src/services/arbitrage-service.js.map +1 -1
- package/dist/src/services/dip-arb-service.d.ts.map +1 -1
- package/dist/src/services/dip-arb-service.js +3 -19
- package/dist/src/services/dip-arb-service.js.map +1 -1
- package/dist/src/services/market-service.d.ts +93 -11
- package/dist/src/services/market-service.d.ts.map +1 -1
- package/dist/src/services/market-service.js +189 -22
- package/dist/src/services/market-service.js.map +1 -1
- package/dist/src/services/order-handle.test.d.ts +15 -0
- package/dist/src/services/order-handle.test.d.ts.map +1 -0
- package/dist/src/services/order-handle.test.js +333 -0
- package/dist/src/services/order-handle.test.js.map +1 -0
- package/dist/src/services/order-manager.d.ts +325 -10
- package/dist/src/services/order-manager.d.ts.map +1 -1
- package/dist/src/services/order-manager.js +633 -32
- package/dist/src/services/order-manager.js.map +1 -1
- package/dist/src/services/order-manager.test.d.ts +2 -0
- package/dist/src/services/order-manager.test.d.ts.map +1 -1
- package/dist/src/services/order-manager.test.js +274 -0
- package/dist/src/services/order-manager.test.js.map +1 -1
- package/dist/src/services/realtime-service-v2.d.ts +122 -6
- package/dist/src/services/realtime-service-v2.d.ts.map +1 -1
- package/dist/src/services/realtime-service-v2.js +475 -70
- package/dist/src/services/realtime-service-v2.js.map +1 -1
- package/dist/src/services/trading-service.d.ts +129 -1
- package/dist/src/services/trading-service.d.ts.map +1 -1
- package/dist/src/services/trading-service.js +198 -5
- package/dist/src/services/trading-service.js.map +1 -1
- package/package.json +1 -2
- package/dist/src/services/ctf-detector.d.ts +0 -215
- package/dist/src/services/ctf-detector.d.ts.map +0 -1
- package/dist/src/services/ctf-detector.js +0 -420
- package/dist/src/services/ctf-detector.js.map +0 -1
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - rfq: request_*, quote_*
|
|
14
14
|
*/
|
|
15
15
|
import { EventEmitter } from 'events';
|
|
16
|
-
import { type ClobApiKeyCreds } from '
|
|
16
|
+
import { type ClobApiKeyCreds } from '../realtime/index.js';
|
|
17
17
|
import type { PriceUpdate, BookUpdate, Orderbook } from '../core/types.js';
|
|
18
18
|
export interface RealtimeServiceConfig {
|
|
19
19
|
/** Auto-reconnect on disconnect (default: true) */
|
|
@@ -47,6 +47,8 @@ export interface LastTradeInfo {
|
|
|
47
47
|
side: 'BUY' | 'SELL';
|
|
48
48
|
size: number;
|
|
49
49
|
timestamp: number;
|
|
50
|
+
/** Fee rate in basis points (e.g., 200 = 2%) */
|
|
51
|
+
feeRateBps?: number;
|
|
50
52
|
}
|
|
51
53
|
export interface PriceChange {
|
|
52
54
|
assetId: string;
|
|
@@ -62,12 +64,24 @@ export interface TickSizeChange {
|
|
|
62
64
|
newTickSize: string;
|
|
63
65
|
timestamp: number;
|
|
64
66
|
}
|
|
67
|
+
export interface BestBidAsk {
|
|
68
|
+
assetId: string;
|
|
69
|
+
market: string;
|
|
70
|
+
bestBid: number;
|
|
71
|
+
bestAsk: number;
|
|
72
|
+
spread: number;
|
|
73
|
+
timestamp: number;
|
|
74
|
+
}
|
|
65
75
|
export interface MarketEvent {
|
|
66
76
|
conditionId: string;
|
|
67
77
|
type: 'created' | 'resolved';
|
|
68
78
|
data: Record<string, unknown>;
|
|
69
79
|
timestamp: number;
|
|
70
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* User order from USER_ORDER WebSocket event
|
|
83
|
+
* Field names match Polymarket API: https://docs.polymarket.com/developers/CLOB/websocket/user-channel
|
|
84
|
+
*/
|
|
71
85
|
export interface UserOrder {
|
|
72
86
|
orderId: string;
|
|
73
87
|
market: string;
|
|
@@ -75,10 +89,22 @@ export interface UserOrder {
|
|
|
75
89
|
side: 'BUY' | 'SELL';
|
|
76
90
|
price: number;
|
|
77
91
|
originalSize: number;
|
|
78
|
-
|
|
92
|
+
sizeMatched: number;
|
|
79
93
|
eventType: 'PLACEMENT' | 'UPDATE' | 'CANCELLATION';
|
|
80
94
|
timestamp: number;
|
|
81
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Maker order info from USER_TRADE WebSocket event
|
|
98
|
+
* Field names match Polymarket API: https://docs.polymarket.com/developers/CLOB/websocket/user-channel
|
|
99
|
+
*/
|
|
100
|
+
export interface MakerOrderInfo {
|
|
101
|
+
orderId: string;
|
|
102
|
+
matchedAmount: number;
|
|
103
|
+
price: number;
|
|
104
|
+
assetId?: string;
|
|
105
|
+
outcome?: string;
|
|
106
|
+
owner?: string;
|
|
107
|
+
}
|
|
82
108
|
export interface UserTrade {
|
|
83
109
|
tradeId: string;
|
|
84
110
|
market: string;
|
|
@@ -89,6 +115,10 @@ export interface UserTrade {
|
|
|
89
115
|
status: 'MATCHED' | 'MINED' | 'CONFIRMED' | 'RETRYING' | 'FAILED';
|
|
90
116
|
timestamp: number;
|
|
91
117
|
transactionHash?: string;
|
|
118
|
+
/** Taker's order ID - use this to link trade to order */
|
|
119
|
+
takerOrderId?: string;
|
|
120
|
+
/** Maker orders involved in this trade */
|
|
121
|
+
makerOrders?: MakerOrderInfo[];
|
|
92
122
|
}
|
|
93
123
|
/**
|
|
94
124
|
* Activity trade from WebSocket
|
|
@@ -187,6 +217,7 @@ export interface MarketDataHandlers {
|
|
|
187
217
|
onPriceChange?: (change: PriceChange) => void;
|
|
188
218
|
onLastTrade?: (trade: LastTradeInfo) => void;
|
|
189
219
|
onTickSizeChange?: (change: TickSizeChange) => void;
|
|
220
|
+
onBestBidAsk?: (bestBidAsk: BestBidAsk) => void;
|
|
190
221
|
onMarketEvent?: (event: MarketEvent) => void;
|
|
191
222
|
onError?: (error: Error) => void;
|
|
192
223
|
}
|
|
@@ -209,11 +240,25 @@ export interface EquityPriceHandlers {
|
|
|
209
240
|
}
|
|
210
241
|
export declare class RealtimeServiceV2 extends EventEmitter {
|
|
211
242
|
private client;
|
|
243
|
+
/** Separate client for user channel (uses USER endpoint) */
|
|
244
|
+
private userClient;
|
|
245
|
+
/** Separate client for crypto prices (uses LIVE_DATA endpoint) */
|
|
246
|
+
private cryptoClient;
|
|
212
247
|
private config;
|
|
213
248
|
private subscriptions;
|
|
214
249
|
private subscriptionIdCounter;
|
|
215
250
|
private connected;
|
|
251
|
+
private userConnected;
|
|
252
|
+
private cryptoConnected;
|
|
253
|
+
private connectResolve?;
|
|
254
|
+
private subscriptionRefreshTimer;
|
|
255
|
+
private pendingRefreshSubIds;
|
|
256
|
+
private connectionGeneration;
|
|
257
|
+
private subscriptionGenerations;
|
|
216
258
|
private subscriptionMessages;
|
|
259
|
+
private userCredentials;
|
|
260
|
+
private accumulatedMarketTokenIds;
|
|
261
|
+
private marketSubscriptionBatchTimer;
|
|
217
262
|
private priceCache;
|
|
218
263
|
private bookCache;
|
|
219
264
|
private lastTradeCache;
|
|
@@ -221,11 +266,12 @@ export declare class RealtimeServiceV2 extends EventEmitter {
|
|
|
221
266
|
/**
|
|
222
267
|
* Connect to WebSocket server
|
|
223
268
|
*/
|
|
224
|
-
connect():
|
|
269
|
+
connect(): Promise<void>;
|
|
225
270
|
/**
|
|
226
271
|
* Disconnect from WebSocket server
|
|
227
272
|
*/
|
|
228
273
|
disconnect(): void;
|
|
274
|
+
private cancelMarketSubscriptionBatch;
|
|
229
275
|
/**
|
|
230
276
|
* Check if connected
|
|
231
277
|
*/
|
|
@@ -234,8 +280,23 @@ export declare class RealtimeServiceV2 extends EventEmitter {
|
|
|
234
280
|
* Subscribe to market data (orderbook, prices, trades)
|
|
235
281
|
* @param tokenIds - Array of token IDs to subscribe to
|
|
236
282
|
* @param handlers - Event handlers
|
|
283
|
+
*
|
|
284
|
+
* IMPORTANT: This method uses an accumulation strategy. Instead of sending
|
|
285
|
+
* separate subscription messages for each market, we accumulate all token IDs
|
|
286
|
+
* and send a single merged subscription. This prevents the server from
|
|
287
|
+
* overwriting previous subscriptions (which happens when multiple messages
|
|
288
|
+
* have the same topic+type but different filters).
|
|
237
289
|
*/
|
|
238
290
|
subscribeMarkets(tokenIds: string[], handlers?: MarketDataHandlers): MarketSubscription;
|
|
291
|
+
/**
|
|
292
|
+
* Schedule a merged market subscription update.
|
|
293
|
+
* Debounces multiple rapid subscription changes into a single WebSocket message.
|
|
294
|
+
*/
|
|
295
|
+
private scheduleMergedMarketSubscription;
|
|
296
|
+
/**
|
|
297
|
+
* Send a single merged subscription containing all accumulated market token IDs.
|
|
298
|
+
*/
|
|
299
|
+
private sendMergedMarketSubscription;
|
|
239
300
|
/**
|
|
240
301
|
* Subscribe to a single market (YES + NO tokens)
|
|
241
302
|
* Also emits derived price updates compatible with old API
|
|
@@ -257,6 +318,10 @@ export declare class RealtimeServiceV2 extends EventEmitter {
|
|
|
257
318
|
}): Subscription;
|
|
258
319
|
/**
|
|
259
320
|
* Subscribe to user order and trade events
|
|
321
|
+
*
|
|
322
|
+
* User channel requires a separate WebSocket endpoint (USER endpoint).
|
|
323
|
+
* Subscription format: { type: 'USER', auth: { apiKey, secret, passphrase } }
|
|
324
|
+
*
|
|
260
325
|
* @param credentials - CLOB API credentials
|
|
261
326
|
* @param handlers - Event handlers
|
|
262
327
|
*/
|
|
@@ -277,14 +342,21 @@ export declare class RealtimeServiceV2 extends EventEmitter {
|
|
|
277
342
|
*/
|
|
278
343
|
subscribeAllActivity(handlers?: ActivityHandlers): Subscription;
|
|
279
344
|
/**
|
|
280
|
-
* Subscribe to crypto price updates
|
|
281
|
-
*
|
|
345
|
+
* Subscribe to crypto price updates (Binance)
|
|
346
|
+
*
|
|
347
|
+
* Uses lowercase symbols: 'btcusdt', 'ethusdt', 'solusdt', 'xrpusdt'
|
|
348
|
+
*
|
|
349
|
+
* @param symbols - Array of lowercase Binance symbols (e.g., ['btcusdt', 'ethusdt'])
|
|
282
350
|
* @param handlers - Event handlers
|
|
283
351
|
*/
|
|
284
352
|
subscribeCryptoPrices(symbols: string[], handlers?: CryptoPriceHandlers): Subscription;
|
|
285
353
|
/**
|
|
286
354
|
* Subscribe to Chainlink crypto prices
|
|
287
|
-
*
|
|
355
|
+
*
|
|
356
|
+
* Uses lowercase slash-separated symbols: 'btc/usd', 'eth/usd', 'sol/usd', 'xrp/usd'
|
|
357
|
+
*
|
|
358
|
+
* @param symbols - Array of lowercase Chainlink symbols (e.g., ['btc/usd', 'eth/usd'])
|
|
359
|
+
* @param handlers - Event handlers
|
|
288
360
|
*/
|
|
289
361
|
subscribeCryptoChainlinkPrices(symbols: string[], handlers?: CryptoPriceHandlers): Subscription;
|
|
290
362
|
/**
|
|
@@ -334,10 +406,54 @@ export declare class RealtimeServiceV2 extends EventEmitter {
|
|
|
334
406
|
* Unsubscribe from all
|
|
335
407
|
*/
|
|
336
408
|
unsubscribeAll(): void;
|
|
409
|
+
/**
|
|
410
|
+
* Schedule a subscription refresh after a short delay.
|
|
411
|
+
*
|
|
412
|
+
* Problem: When subscriptions are sent right after connection, the server sometimes
|
|
413
|
+
* only sends the initial snapshot but no subsequent updates. This appears to be a
|
|
414
|
+
* server-side timing issue where the subscription "window" closes before updates flow.
|
|
415
|
+
*
|
|
416
|
+
* Solution: Re-send the subscription after 3 seconds. Polymarket's server apparently
|
|
417
|
+
* accepts duplicate subscriptions and refreshes the stream. Unsubscribe doesn't work
|
|
418
|
+
* (returns "Invalid request body"), so we just re-subscribe.
|
|
419
|
+
*
|
|
420
|
+
* Important: We do NOT cancel existing timers. If multiple subscriptions are added
|
|
421
|
+
* within the 3-second window, they all get added to pendingRefreshSubIds and will
|
|
422
|
+
* be refreshed together when the first timer fires. This ensures all markets get
|
|
423
|
+
* refreshed, not just the last one.
|
|
424
|
+
*/
|
|
425
|
+
private scheduleSubscriptionRefresh;
|
|
426
|
+
private cancelSubscriptionRefresh;
|
|
337
427
|
private handleConnect;
|
|
338
428
|
private handleStatusChange;
|
|
429
|
+
private handleUserConnect;
|
|
430
|
+
private handleUserChannelMessage;
|
|
431
|
+
private handleCryptoConnect;
|
|
432
|
+
private handleCryptoMessage;
|
|
339
433
|
private handleMessage;
|
|
434
|
+
/**
|
|
435
|
+
* Handle market channel messages
|
|
436
|
+
* @see https://docs.polymarket.com/developers/CLOB/websocket/market-channel
|
|
437
|
+
*
|
|
438
|
+
* Market channel events:
|
|
439
|
+
* - book: Orderbook snapshot - triggered on subscribe or when trades affect orderbook
|
|
440
|
+
* - price_change: Price level change - triggered when order placed or cancelled
|
|
441
|
+
* - last_trade_price: Trade execution - triggered when maker/taker orders match
|
|
442
|
+
* - tick_size_change: Tick size adjustment - triggered when price > 0.96 or < 0.04
|
|
443
|
+
* - best_bid_ask: Best prices update (feature-flagged) - triggered on best price change
|
|
444
|
+
* - new_market: Market created (feature-flagged) - triggered on market creation
|
|
445
|
+
* - market_resolved: Market resolved (feature-flagged) - triggered on market resolution
|
|
446
|
+
*/
|
|
340
447
|
private handleMarketMessage;
|
|
448
|
+
/**
|
|
449
|
+
* Handle user channel messages
|
|
450
|
+
* @see https://docs.polymarket.com/developers/CLOB/websocket/user-channel
|
|
451
|
+
*
|
|
452
|
+
* User channel events:
|
|
453
|
+
* - order: Emitted when order placed (PLACEMENT), partially matched (UPDATE), or cancelled (CANCELLATION)
|
|
454
|
+
* - trade: Emitted when market order matches, limit order included in trade, or status changes
|
|
455
|
+
* Status values: MATCHED, MINED, CONFIRMED, RETRYING, FAILED
|
|
456
|
+
*/
|
|
341
457
|
private handleUserMessage;
|
|
342
458
|
private handleActivityMessage;
|
|
343
459
|
private handleCryptoPriceMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-service-v2.d.ts","sourceRoot":"","sources":["../../../src/services/realtime-service-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAGL,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"realtime-service-v2.d.ts","sourceRoot":"","sources":["../../../src/services/realtime-service-v2.ts"],"names":[],"mappings":"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"}
|