@catalyst-team/poly-sdk 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/LICENSE +1 -1
  2. package/README.en.md +502 -0
  3. package/README.md +6 -1
  4. package/README.zh-CN.md +502 -0
  5. package/dist/__tests__/clob-api.test.d.ts +5 -0
  6. package/dist/__tests__/clob-api.test.d.ts.map +1 -0
  7. package/dist/__tests__/clob-api.test.js +240 -0
  8. package/dist/__tests__/clob-api.test.js.map +1 -0
  9. package/dist/__tests__/integration/bridge-client.integration.test.d.ts +11 -0
  10. package/dist/__tests__/integration/bridge-client.integration.test.d.ts.map +1 -0
  11. package/dist/__tests__/integration/bridge-client.integration.test.js +260 -0
  12. package/dist/__tests__/integration/bridge-client.integration.test.js.map +1 -0
  13. package/dist/__tests__/integration/clob-api.integration.test.d.ts +13 -0
  14. package/dist/__tests__/integration/clob-api.integration.test.d.ts.map +1 -0
  15. package/dist/__tests__/integration/clob-api.integration.test.js +170 -0
  16. package/dist/__tests__/integration/clob-api.integration.test.js.map +1 -0
  17. package/dist/__tests__/integration/ctf-client.integration.test.d.ts +17 -0
  18. package/dist/__tests__/integration/ctf-client.integration.test.d.ts.map +1 -0
  19. package/dist/__tests__/integration/ctf-client.integration.test.js +234 -0
  20. package/dist/__tests__/integration/ctf-client.integration.test.js.map +1 -0
  21. package/dist/__tests__/integration/data-api.integration.test.d.ts +9 -0
  22. package/dist/__tests__/integration/data-api.integration.test.d.ts.map +1 -0
  23. package/dist/__tests__/integration/data-api.integration.test.js +161 -0
  24. package/dist/__tests__/integration/data-api.integration.test.js.map +1 -0
  25. package/dist/__tests__/integration/gamma-api.integration.test.d.ts +9 -0
  26. package/dist/__tests__/integration/gamma-api.integration.test.d.ts.map +1 -0
  27. package/dist/__tests__/integration/gamma-api.integration.test.js +170 -0
  28. package/dist/__tests__/integration/gamma-api.integration.test.js.map +1 -0
  29. package/dist/__tests__/test-utils.d.ts +92 -0
  30. package/dist/__tests__/test-utils.d.ts.map +1 -0
  31. package/dist/__tests__/test-utils.js +143 -0
  32. package/dist/__tests__/test-utils.js.map +1 -0
  33. package/dist/clients/bridge-client.d.ts +388 -0
  34. package/dist/clients/bridge-client.d.ts.map +1 -0
  35. package/dist/clients/bridge-client.js +587 -0
  36. package/dist/clients/bridge-client.js.map +1 -0
  37. package/dist/clients/clob-api.d.ts +318 -0
  38. package/dist/clients/clob-api.d.ts.map +1 -0
  39. package/dist/clients/clob-api.js +388 -0
  40. package/dist/clients/clob-api.js.map +1 -0
  41. package/dist/clients/ctf-client.d.ts +473 -0
  42. package/dist/clients/ctf-client.d.ts.map +1 -0
  43. package/dist/clients/ctf-client.js +915 -0
  44. package/dist/clients/ctf-client.js.map +1 -0
  45. package/dist/clients/data-api.d.ts +134 -0
  46. package/dist/clients/data-api.d.ts.map +1 -0
  47. package/dist/clients/data-api.js +265 -0
  48. package/dist/clients/data-api.js.map +1 -0
  49. package/dist/clients/gamma-api.d.ts +401 -0
  50. package/dist/clients/gamma-api.d.ts.map +1 -0
  51. package/dist/clients/gamma-api.js +352 -0
  52. package/dist/clients/gamma-api.js.map +1 -0
  53. package/dist/clients/trading-client.d.ts +252 -0
  54. package/dist/clients/trading-client.d.ts.map +1 -0
  55. package/dist/clients/trading-client.js +543 -0
  56. package/dist/clients/trading-client.js.map +1 -0
  57. package/dist/clients/websocket-manager.d.ts +100 -0
  58. package/dist/clients/websocket-manager.d.ts.map +1 -0
  59. package/dist/clients/websocket-manager.js +193 -0
  60. package/dist/clients/websocket-manager.js.map +1 -0
  61. package/dist/core/cache-adapter-bridge.d.ts +36 -0
  62. package/dist/core/cache-adapter-bridge.d.ts.map +1 -0
  63. package/dist/core/cache-adapter-bridge.js +81 -0
  64. package/dist/core/cache-adapter-bridge.js.map +1 -0
  65. package/dist/core/cache.d.ts +40 -0
  66. package/dist/core/cache.d.ts.map +1 -0
  67. package/dist/core/cache.js +71 -0
  68. package/dist/core/cache.js.map +1 -0
  69. package/dist/core/errors.d.ts +38 -0
  70. package/dist/core/errors.d.ts.map +1 -0
  71. package/dist/core/errors.js +84 -0
  72. package/dist/core/errors.js.map +1 -0
  73. package/dist/core/rate-limiter.d.ts +31 -0
  74. package/dist/core/rate-limiter.d.ts.map +1 -0
  75. package/dist/core/rate-limiter.js +70 -0
  76. package/dist/core/rate-limiter.js.map +1 -0
  77. package/{src/core/types.ts → dist/core/types.d.ts} +169 -215
  78. package/dist/core/types.d.ts.map +1 -0
  79. package/dist/core/types.js +19 -0
  80. package/dist/core/types.js.map +1 -0
  81. package/dist/core/unified-cache.d.ts +63 -0
  82. package/dist/core/unified-cache.d.ts.map +1 -0
  83. package/dist/core/unified-cache.js +114 -0
  84. package/dist/core/unified-cache.js.map +1 -0
  85. package/dist/index.d.ts +93 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +255 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/services/arbitrage-service.d.ts +408 -0
  90. package/dist/services/arbitrage-service.d.ts.map +1 -0
  91. package/dist/services/arbitrage-service.js +1422 -0
  92. package/dist/services/arbitrage-service.js.map +1 -0
  93. package/dist/services/authorization-service.d.ts +97 -0
  94. package/dist/services/authorization-service.d.ts.map +1 -0
  95. package/dist/services/authorization-service.js +279 -0
  96. package/dist/services/authorization-service.js.map +1 -0
  97. package/dist/services/market-service.d.ts +108 -0
  98. package/dist/services/market-service.d.ts.map +1 -0
  99. package/dist/services/market-service.js +458 -0
  100. package/dist/services/market-service.js.map +1 -0
  101. package/dist/services/realtime-service.d.ts +82 -0
  102. package/dist/services/realtime-service.d.ts.map +1 -0
  103. package/dist/services/realtime-service.js +150 -0
  104. package/dist/services/realtime-service.js.map +1 -0
  105. package/dist/services/swap-service.d.ts +217 -0
  106. package/dist/services/swap-service.d.ts.map +1 -0
  107. package/dist/services/swap-service.js +695 -0
  108. package/dist/services/swap-service.js.map +1 -0
  109. package/dist/services/wallet-service.d.ts +94 -0
  110. package/dist/services/wallet-service.d.ts.map +1 -0
  111. package/dist/services/wallet-service.js +173 -0
  112. package/dist/services/wallet-service.js.map +1 -0
  113. package/dist/utils/price-utils.d.ts +153 -0
  114. package/dist/utils/price-utils.d.ts.map +1 -0
  115. package/dist/utils/price-utils.js +236 -0
  116. package/dist/utils/price-utils.js.map +1 -0
  117. package/package.json +7 -2
  118. package/docs/00-design.md +0 -760
  119. package/docs/02-API.md +0 -1148
  120. package/docs/arbitrage.md +0 -754
  121. package/docs/reports/smart-money-analysis-2025-12-23-cn.md +0 -840
  122. package/examples/01-basic-usage.ts +0 -68
  123. package/examples/02-smart-money.ts +0 -95
  124. package/examples/03-market-analysis.ts +0 -108
  125. package/examples/04-kline-aggregation.ts +0 -158
  126. package/examples/05-follow-wallet-strategy.ts +0 -156
  127. package/examples/06-services-demo.ts +0 -124
  128. package/examples/07-realtime-websocket.ts +0 -117
  129. package/examples/08-trading-orders.ts +0 -278
  130. package/examples/09-rewards-tracking.ts +0 -187
  131. package/examples/10-ctf-operations.ts +0 -336
  132. package/examples/11-live-arbitrage-scan.ts +0 -221
  133. package/examples/12-trending-arb-monitor.ts +0 -406
  134. package/examples/13-arbitrage-service.ts +0 -211
  135. package/examples/README.md +0 -179
  136. package/scripts/README.md +0 -163
  137. package/scripts/approvals/approve-erc1155.ts +0 -129
  138. package/scripts/approvals/approve-neg-risk-erc1155.ts +0 -149
  139. package/scripts/approvals/approve-neg-risk.ts +0 -102
  140. package/scripts/approvals/check-all-allowances.ts +0 -150
  141. package/scripts/approvals/check-allowance.ts +0 -129
  142. package/scripts/approvals/check-ctf-approval.ts +0 -158
  143. package/scripts/arb/faze-bo3-arb.ts +0 -385
  144. package/scripts/arb/settle-position.ts +0 -190
  145. package/scripts/arb/token-rebalancer.ts +0 -420
  146. package/scripts/datas/001-report.md +0 -486
  147. package/scripts/datas/clone-modal-screenshot.png +0 -0
  148. package/scripts/deposit/deposit-native-usdc.ts +0 -179
  149. package/scripts/deposit/deposit-usdc.ts +0 -155
  150. package/scripts/deposit/swap-usdc-to-usdce.ts +0 -375
  151. package/scripts/research/research-markets.ts +0 -166
  152. package/scripts/trading/check-orders.ts +0 -50
  153. package/scripts/trading/sell-nvidia-positions.ts +0 -206
  154. package/scripts/trading/test-order.ts +0 -172
  155. package/scripts/verify/test-approve-trading.ts +0 -98
  156. package/scripts/verify/test-provider-fix.ts +0 -43
  157. package/scripts/verify/test-search-mcp.ts +0 -113
  158. package/scripts/verify/verify-all-apis.ts +0 -160
  159. package/scripts/wallet/check-wallet-balances.ts +0 -75
  160. package/scripts/wallet/test-wallet-operations.ts +0 -191
  161. package/scripts/wallet/verify-wallet-tools.ts +0 -124
  162. package/src/__tests__/clob-api.test.ts +0 -301
  163. package/src/__tests__/integration/bridge-client.integration.test.ts +0 -314
  164. package/src/__tests__/integration/clob-api.integration.test.ts +0 -218
  165. package/src/__tests__/integration/ctf-client.integration.test.ts +0 -331
  166. package/src/__tests__/integration/data-api.integration.test.ts +0 -194
  167. package/src/__tests__/integration/gamma-api.integration.test.ts +0 -206
  168. package/src/__tests__/test-utils.ts +0 -170
  169. package/src/clients/bridge-client.ts +0 -841
  170. package/src/clients/clob-api.ts +0 -629
  171. package/src/clients/ctf-client.ts +0 -1216
  172. package/src/clients/data-api.ts +0 -469
  173. package/src/clients/gamma-api.ts +0 -597
  174. package/src/clients/trading-client.ts +0 -749
  175. package/src/clients/websocket-manager.ts +0 -267
  176. package/src/core/cache-adapter-bridge.ts +0 -94
  177. package/src/core/cache.ts +0 -85
  178. package/src/core/errors.ts +0 -117
  179. package/src/core/rate-limiter.ts +0 -74
  180. package/src/core/unified-cache.ts +0 -153
  181. package/src/index.ts +0 -461
  182. package/src/services/arbitrage-service.ts +0 -1807
  183. package/src/services/authorization-service.ts +0 -357
  184. package/src/services/market-service.ts +0 -544
  185. package/src/services/realtime-service.ts +0 -196
  186. package/src/services/swap-service.ts +0 -896
  187. package/src/services/wallet-service.ts +0 -259
  188. package/src/utils/price-utils.ts +0 -307
  189. package/tsconfig.json +0 -8
  190. package/vitest.config.ts +0 -19
  191. package/vitest.integration.config.ts +0 -18
@@ -1,196 +0,0 @@
1
- /**
2
- * Realtime Service
3
- *
4
- * High-level wrapper for WebSocket subscriptions:
5
- * - Market subscription management
6
- * - Price caching and access
7
- * - Event handler registration
8
- */
9
-
10
- import { WebSocketManager } from '../clients/websocket-manager.js';
11
- import type { PriceUpdate, BookUpdate } from '../core/types.js';
12
-
13
- export interface Subscription {
14
- id: string;
15
- assetIds: string[];
16
- unsubscribe: () => Promise<void>;
17
- }
18
-
19
- export interface MarketSubscriptionHandlers {
20
- onPriceUpdate?: (update: PriceUpdate) => void;
21
- onBookUpdate?: (update: BookUpdate) => void;
22
- onLastTrade?: (trade: { assetId: string; price: number; side: 'BUY' | 'SELL'; size: number; timestamp: number }) => void;
23
- onError?: (error: Error) => void;
24
- }
25
-
26
- export class RealtimeService {
27
- private wsManager: WebSocketManager;
28
- private subscriptions: Map<string, Subscription> = new Map();
29
- private subscriptionIdCounter = 0;
30
-
31
- constructor(wsManager?: WebSocketManager) {
32
- this.wsManager = wsManager || new WebSocketManager();
33
- }
34
-
35
- // ===== Market Subscriptions =====
36
-
37
- /**
38
- * Subscribe to market price updates
39
- * @param assetIds - Token IDs to subscribe to
40
- * @param handlers - Event handlers
41
- * @returns Subscription object with unsubscribe method
42
- */
43
- async subscribeMarkets(
44
- assetIds: string[],
45
- handlers: MarketSubscriptionHandlers
46
- ): Promise<Subscription> {
47
- const subscriptionId = `sub_${++this.subscriptionIdCounter}`;
48
-
49
- // Register event handlers (filtered by assetIds)
50
- const priceHandler = (update: PriceUpdate) => {
51
- if (assetIds.includes(update.assetId)) {
52
- handlers.onPriceUpdate?.(update);
53
- }
54
- };
55
-
56
- const bookHandler = (update: BookUpdate) => {
57
- if (assetIds.includes(update.assetId)) {
58
- handlers.onBookUpdate?.(update);
59
- }
60
- };
61
-
62
- const tradeHandler = (trade: { assetId: string; price: number; side: 'BUY' | 'SELL'; size: number; timestamp: number }) => {
63
- if (assetIds.includes(trade.assetId)) {
64
- handlers.onLastTrade?.(trade);
65
- }
66
- };
67
-
68
- const errorHandler = (error: Error) => {
69
- handlers.onError?.(error);
70
- };
71
-
72
- // Attach listeners
73
- this.wsManager.on('priceUpdate', priceHandler);
74
- this.wsManager.on('bookUpdate', bookHandler);
75
- this.wsManager.on('lastTrade', tradeHandler);
76
- this.wsManager.on('error', errorHandler);
77
-
78
- // Subscribe to WebSocket
79
- await this.wsManager.subscribe(assetIds);
80
-
81
- // Create subscription object
82
- const subscription: Subscription = {
83
- id: subscriptionId,
84
- assetIds,
85
- unsubscribe: async () => {
86
- this.wsManager.off('priceUpdate', priceHandler);
87
- this.wsManager.off('bookUpdate', bookHandler);
88
- this.wsManager.off('lastTrade', tradeHandler);
89
- this.wsManager.off('error', errorHandler);
90
- await this.wsManager.unsubscribe(assetIds);
91
- this.subscriptions.delete(subscriptionId);
92
- },
93
- };
94
-
95
- this.subscriptions.set(subscriptionId, subscription);
96
- return subscription;
97
- }
98
-
99
- /**
100
- * Subscribe to a single market (both YES and NO tokens)
101
- * @param yesTokenId - YES token ID
102
- * @param noTokenId - NO token ID
103
- * @param handlers - Event handlers
104
- */
105
- async subscribeMarket(
106
- yesTokenId: string,
107
- noTokenId: string,
108
- handlers: MarketSubscriptionHandlers & {
109
- onPairUpdate?: (update: { yes: PriceUpdate; no: PriceUpdate; spread: number }) => void;
110
- }
111
- ): Promise<Subscription> {
112
- let lastYesUpdate: PriceUpdate | undefined;
113
- let lastNoUpdate: PriceUpdate | undefined;
114
-
115
- const checkPairUpdate = () => {
116
- if (lastYesUpdate && lastNoUpdate && handlers.onPairUpdate) {
117
- handlers.onPairUpdate({
118
- yes: lastYesUpdate,
119
- no: lastNoUpdate,
120
- spread: lastYesUpdate.price + lastNoUpdate.price,
121
- });
122
- }
123
- };
124
-
125
- return this.subscribeMarkets([yesTokenId, noTokenId], {
126
- onPriceUpdate: (update) => {
127
- if (update.assetId === yesTokenId) {
128
- lastYesUpdate = update;
129
- } else if (update.assetId === noTokenId) {
130
- lastNoUpdate = update;
131
- }
132
- handlers.onPriceUpdate?.(update);
133
- checkPairUpdate();
134
- },
135
- onBookUpdate: handlers.onBookUpdate,
136
- onLastTrade: handlers.onLastTrade,
137
- onError: handlers.onError,
138
- });
139
- }
140
-
141
- // ===== Price Access =====
142
-
143
- /**
144
- * Get cached price for an asset
145
- */
146
- getPrice(assetId: string): PriceUpdate | undefined {
147
- return this.wsManager.getPrice(assetId);
148
- }
149
-
150
- /**
151
- * Get all cached prices
152
- */
153
- getAllPrices(): Map<string, PriceUpdate> {
154
- return this.wsManager.getAllPrices();
155
- }
156
-
157
- /**
158
- * Get cached order book for an asset
159
- */
160
- getBook(assetId: string): BookUpdate | undefined {
161
- return this.wsManager.getBook(assetId);
162
- }
163
-
164
- // ===== State Management =====
165
-
166
- /**
167
- * Get all active subscriptions
168
- */
169
- getActiveSubscriptions(): Subscription[] {
170
- return Array.from(this.subscriptions.values());
171
- }
172
-
173
- /**
174
- * Get subscription by ID
175
- */
176
- getSubscription(id: string): Subscription | undefined {
177
- return this.subscriptions.get(id);
178
- }
179
-
180
- /**
181
- * Unsubscribe from all markets
182
- */
183
- async unsubscribeAll(): Promise<void> {
184
- for (const sub of this.subscriptions.values()) {
185
- await sub.unsubscribe();
186
- }
187
- this.subscriptions.clear();
188
- }
189
-
190
- /**
191
- * Get WebSocket manager for advanced usage
192
- */
193
- getWebSocketManager(): WebSocketManager {
194
- return this.wsManager;
195
- }
196
- }