@catalyst-team/poly-sdk 0.4.0 → 0.4.5

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 (288) hide show
  1. package/README.md +8 -1
  2. package/README.zh-CN.md +2 -0
  3. package/dist/src/__tests__/integration/data-api.integration.test.js +21 -18
  4. package/dist/src/__tests__/integration/data-api.integration.test.js.map +1 -1
  5. package/dist/src/catalyst/catalyst-query-service.d.ts +109 -0
  6. package/dist/src/catalyst/catalyst-query-service.d.ts.map +1 -0
  7. package/dist/src/catalyst/catalyst-query-service.js +141 -0
  8. package/dist/src/catalyst/catalyst-query-service.js.map +1 -0
  9. package/dist/src/catalyst/catalyst-realtime-service.d.ts +40 -0
  10. package/dist/src/catalyst/catalyst-realtime-service.d.ts.map +1 -0
  11. package/dist/src/catalyst/catalyst-realtime-service.js +125 -0
  12. package/dist/src/catalyst/catalyst-realtime-service.js.map +1 -0
  13. package/dist/src/catalyst/index.d.ts +4 -0
  14. package/dist/src/catalyst/index.d.ts.map +1 -0
  15. package/dist/src/catalyst/index.js +4 -0
  16. package/dist/src/catalyst/index.js.map +1 -0
  17. package/dist/src/catalyst/types.d.ts +178 -0
  18. package/dist/src/catalyst/types.d.ts.map +1 -0
  19. package/dist/src/catalyst/types.js +2 -0
  20. package/dist/src/catalyst/types.js.map +1 -0
  21. package/dist/src/clients/data-api.d.ts +75 -14
  22. package/dist/src/clients/data-api.d.ts.map +1 -1
  23. package/dist/src/clients/data-api.js +40 -18
  24. package/dist/src/clients/data-api.js.map +1 -1
  25. package/dist/src/clients/gamma-api.d.ts +54 -0
  26. package/dist/src/clients/gamma-api.d.ts.map +1 -1
  27. package/dist/src/clients/gamma-api.js.map +1 -1
  28. package/dist/src/core/order-status.d.ts +159 -0
  29. package/dist/src/core/order-status.d.ts.map +1 -0
  30. package/dist/src/core/order-status.js +254 -0
  31. package/dist/src/core/order-status.js.map +1 -0
  32. package/dist/src/core/types.d.ts +124 -0
  33. package/dist/src/core/types.d.ts.map +1 -1
  34. package/dist/src/core/types.js +120 -0
  35. package/dist/src/core/types.js.map +1 -1
  36. package/dist/src/index.d.ts +20 -4
  37. package/dist/src/index.d.ts.map +1 -1
  38. package/dist/src/index.js +28 -2
  39. package/dist/src/index.js.map +1 -1
  40. package/dist/src/insider-scan/index.d.ts +3 -0
  41. package/dist/src/insider-scan/index.d.ts.map +1 -0
  42. package/dist/src/insider-scan/index.js +3 -0
  43. package/dist/src/insider-scan/index.js.map +1 -0
  44. package/dist/src/insider-scan/insider-scan-service.d.ts +63 -0
  45. package/dist/src/insider-scan/insider-scan-service.d.ts.map +1 -0
  46. package/dist/src/insider-scan/insider-scan-service.js +153 -0
  47. package/dist/src/insider-scan/insider-scan-service.js.map +1 -0
  48. package/dist/src/insider-scan/types.d.ts +205 -0
  49. package/dist/src/insider-scan/types.d.ts.map +1 -0
  50. package/dist/src/insider-scan/types.js +7 -0
  51. package/dist/src/insider-scan/types.js.map +1 -0
  52. package/dist/src/services/ctf-detector.d.ts +215 -0
  53. package/dist/src/services/ctf-detector.d.ts.map +1 -0
  54. package/dist/src/services/ctf-detector.js +420 -0
  55. package/dist/src/services/ctf-detector.js.map +1 -0
  56. package/dist/src/services/ctf-manager.d.ts +202 -0
  57. package/dist/src/services/ctf-manager.d.ts.map +1 -0
  58. package/dist/src/services/ctf-manager.js +542 -0
  59. package/dist/src/services/ctf-manager.js.map +1 -0
  60. package/dist/src/services/market-service.d.ts +61 -0
  61. package/dist/src/services/market-service.d.ts.map +1 -1
  62. package/dist/src/services/market-service.js +58 -0
  63. package/dist/src/services/market-service.js.map +1 -1
  64. package/dist/src/services/onchain-service.d.ts +10 -2
  65. package/dist/src/services/onchain-service.d.ts.map +1 -1
  66. package/dist/src/services/onchain-service.js +8 -0
  67. package/dist/src/services/onchain-service.js.map +1 -1
  68. package/dist/src/services/order-manager.d.ts +281 -0
  69. package/dist/src/services/order-manager.d.ts.map +1 -0
  70. package/dist/src/services/order-manager.js +641 -0
  71. package/dist/src/services/order-manager.js.map +1 -0
  72. package/dist/src/services/order-manager.test.d.ts +8 -0
  73. package/dist/src/services/order-manager.test.d.ts.map +1 -0
  74. package/dist/src/services/order-manager.test.js +477 -0
  75. package/dist/src/services/order-manager.test.js.map +1 -0
  76. package/dist/src/services/smart-money-service.d.ts +420 -3
  77. package/dist/src/services/smart-money-service.d.ts.map +1 -1
  78. package/dist/src/services/smart-money-service.js +869 -3
  79. package/dist/src/services/smart-money-service.js.map +1 -1
  80. package/dist/src/services/trading-service.d.ts +94 -1
  81. package/dist/src/services/trading-service.d.ts.map +1 -1
  82. package/dist/src/services/trading-service.js +232 -1
  83. package/dist/src/services/trading-service.js.map +1 -1
  84. package/dist/src/services/wallet-service.d.ts +38 -2
  85. package/dist/src/services/wallet-service.d.ts.map +1 -1
  86. package/dist/src/services/wallet-service.js +72 -5
  87. package/dist/src/services/wallet-service.js.map +1 -1
  88. package/dist/src/signal/index.d.ts +8 -0
  89. package/dist/src/signal/index.d.ts.map +1 -0
  90. package/dist/src/signal/index.js +7 -0
  91. package/dist/src/signal/index.js.map +1 -0
  92. package/dist/src/signal/signal-service.d.ts +89 -0
  93. package/dist/src/signal/signal-service.d.ts.map +1 -0
  94. package/dist/src/signal/signal-service.js +226 -0
  95. package/dist/src/signal/signal-service.js.map +1 -0
  96. package/dist/src/signal/types.d.ts +280 -0
  97. package/dist/src/signal/types.d.ts.map +1 -0
  98. package/dist/src/signal/types.js +7 -0
  99. package/dist/src/signal/types.js.map +1 -0
  100. package/dist/src/wallet-report/index.d.ts +3 -0
  101. package/dist/src/wallet-report/index.d.ts.map +1 -0
  102. package/dist/src/wallet-report/index.js +3 -0
  103. package/dist/src/wallet-report/index.js.map +1 -0
  104. package/dist/src/wallet-report/types.d.ts +187 -0
  105. package/dist/src/wallet-report/types.d.ts.map +1 -0
  106. package/dist/src/wallet-report/types.js +7 -0
  107. package/dist/src/wallet-report/types.js.map +1 -0
  108. package/dist/src/wallet-report/wallet-report-service.d.ts +91 -0
  109. package/dist/src/wallet-report/wallet-report-service.d.ts.map +1 -0
  110. package/dist/src/wallet-report/wallet-report-service.js +208 -0
  111. package/dist/src/wallet-report/wallet-report-service.js.map +1 -0
  112. package/dist/src/wallets/hot-wallet-service.d.ts +162 -0
  113. package/dist/src/wallets/hot-wallet-service.d.ts.map +1 -0
  114. package/dist/src/wallets/hot-wallet-service.js +251 -0
  115. package/dist/src/wallets/hot-wallet-service.js.map +1 -0
  116. package/dist/src/wallets/index.d.ts +15 -0
  117. package/dist/src/wallets/index.d.ts.map +1 -0
  118. package/dist/src/wallets/index.js +26 -0
  119. package/dist/src/wallets/index.js.map +1 -0
  120. package/package.json +5 -5
  121. package/dist/__tests__/clob-api.test.d.ts +0 -5
  122. package/dist/__tests__/clob-api.test.d.ts.map +0 -1
  123. package/dist/__tests__/clob-api.test.js +0 -240
  124. package/dist/__tests__/clob-api.test.js.map +0 -1
  125. package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts +0 -12
  126. package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts.map +0 -1
  127. package/dist/__tests__/integration/arbitrage-service.integration.test.js +0 -267
  128. package/dist/__tests__/integration/arbitrage-service.integration.test.js.map +0 -1
  129. package/dist/__tests__/integration/bridge-client.integration.test.d.ts +0 -11
  130. package/dist/__tests__/integration/bridge-client.integration.test.d.ts.map +0 -1
  131. package/dist/__tests__/integration/bridge-client.integration.test.js +0 -260
  132. package/dist/__tests__/integration/bridge-client.integration.test.js.map +0 -1
  133. package/dist/__tests__/integration/clob-api.integration.test.d.ts +0 -13
  134. package/dist/__tests__/integration/clob-api.integration.test.d.ts.map +0 -1
  135. package/dist/__tests__/integration/clob-api.integration.test.js +0 -170
  136. package/dist/__tests__/integration/clob-api.integration.test.js.map +0 -1
  137. package/dist/__tests__/integration/ctf-client.integration.test.d.ts +0 -17
  138. package/dist/__tests__/integration/ctf-client.integration.test.d.ts.map +0 -1
  139. package/dist/__tests__/integration/ctf-client.integration.test.js +0 -234
  140. package/dist/__tests__/integration/ctf-client.integration.test.js.map +0 -1
  141. package/dist/__tests__/integration/data-api.integration.test.d.ts +0 -9
  142. package/dist/__tests__/integration/data-api.integration.test.d.ts.map +0 -1
  143. package/dist/__tests__/integration/data-api.integration.test.js +0 -164
  144. package/dist/__tests__/integration/data-api.integration.test.js.map +0 -1
  145. package/dist/__tests__/integration/gamma-api.integration.test.d.ts +0 -9
  146. package/dist/__tests__/integration/gamma-api.integration.test.d.ts.map +0 -1
  147. package/dist/__tests__/integration/gamma-api.integration.test.js +0 -170
  148. package/dist/__tests__/integration/gamma-api.integration.test.js.map +0 -1
  149. package/dist/__tests__/integration/market-service.integration.test.d.ts +0 -10
  150. package/dist/__tests__/integration/market-service.integration.test.d.ts.map +0 -1
  151. package/dist/__tests__/integration/market-service.integration.test.js +0 -173
  152. package/dist/__tests__/integration/market-service.integration.test.js.map +0 -1
  153. package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts +0 -10
  154. package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts.map +0 -1
  155. package/dist/__tests__/integration/realtime-service-v2.integration.test.js +0 -307
  156. package/dist/__tests__/integration/realtime-service-v2.integration.test.js.map +0 -1
  157. package/dist/__tests__/integration/trading-service.integration.test.d.ts +0 -10
  158. package/dist/__tests__/integration/trading-service.integration.test.d.ts.map +0 -1
  159. package/dist/__tests__/integration/trading-service.integration.test.js +0 -58
  160. package/dist/__tests__/integration/trading-service.integration.test.js.map +0 -1
  161. package/dist/__tests__/test-utils.d.ts +0 -92
  162. package/dist/__tests__/test-utils.d.ts.map +0 -1
  163. package/dist/__tests__/test-utils.js +0 -143
  164. package/dist/__tests__/test-utils.js.map +0 -1
  165. package/dist/clients/bridge-client.d.ts +0 -388
  166. package/dist/clients/bridge-client.d.ts.map +0 -1
  167. package/dist/clients/bridge-client.js +0 -587
  168. package/dist/clients/bridge-client.js.map +0 -1
  169. package/dist/clients/clob-api.d.ts +0 -391
  170. package/dist/clients/clob-api.d.ts.map +0 -1
  171. package/dist/clients/clob-api.js +0 -448
  172. package/dist/clients/clob-api.js.map +0 -1
  173. package/dist/clients/ctf-client.d.ts +0 -475
  174. package/dist/clients/ctf-client.d.ts.map +0 -1
  175. package/dist/clients/ctf-client.js +0 -915
  176. package/dist/clients/ctf-client.js.map +0 -1
  177. package/dist/clients/data-api.d.ts +0 -452
  178. package/dist/clients/data-api.d.ts.map +0 -1
  179. package/dist/clients/data-api.js +0 -637
  180. package/dist/clients/data-api.js.map +0 -1
  181. package/dist/clients/gamma-api.d.ts +0 -406
  182. package/dist/clients/gamma-api.d.ts.map +0 -1
  183. package/dist/clients/gamma-api.js +0 -354
  184. package/dist/clients/gamma-api.js.map +0 -1
  185. package/dist/clients/subgraph.d.ts +0 -196
  186. package/dist/clients/subgraph.d.ts.map +0 -1
  187. package/dist/clients/subgraph.js +0 -332
  188. package/dist/clients/subgraph.js.map +0 -1
  189. package/dist/clients/trading-client.d.ts +0 -252
  190. package/dist/clients/trading-client.d.ts.map +0 -1
  191. package/dist/clients/trading-client.js +0 -543
  192. package/dist/clients/trading-client.js.map +0 -1
  193. package/dist/clients/websocket-manager.d.ts +0 -103
  194. package/dist/clients/websocket-manager.d.ts.map +0 -1
  195. package/dist/clients/websocket-manager.js +0 -200
  196. package/dist/clients/websocket-manager.js.map +0 -1
  197. package/dist/core/cache-adapter-bridge.d.ts +0 -36
  198. package/dist/core/cache-adapter-bridge.d.ts.map +0 -1
  199. package/dist/core/cache-adapter-bridge.js +0 -81
  200. package/dist/core/cache-adapter-bridge.js.map +0 -1
  201. package/dist/core/cache.d.ts +0 -43
  202. package/dist/core/cache.d.ts.map +0 -1
  203. package/dist/core/cache.js +0 -76
  204. package/dist/core/cache.js.map +0 -1
  205. package/dist/core/errors.d.ts +0 -39
  206. package/dist/core/errors.d.ts.map +0 -1
  207. package/dist/core/errors.js +0 -86
  208. package/dist/core/errors.js.map +0 -1
  209. package/dist/core/rate-limiter.d.ts +0 -33
  210. package/dist/core/rate-limiter.d.ts.map +0 -1
  211. package/dist/core/rate-limiter.js +0 -82
  212. package/dist/core/rate-limiter.js.map +0 -1
  213. package/dist/core/types.d.ts +0 -506
  214. package/dist/core/types.d.ts.map +0 -1
  215. package/dist/core/types.js +0 -49
  216. package/dist/core/types.js.map +0 -1
  217. package/dist/core/types.test.d.ts +0 -7
  218. package/dist/core/types.test.d.ts.map +0 -1
  219. package/dist/core/types.test.js +0 -122
  220. package/dist/core/types.test.js.map +0 -1
  221. package/dist/core/unified-cache.d.ts +0 -63
  222. package/dist/core/unified-cache.d.ts.map +0 -1
  223. package/dist/core/unified-cache.js +0 -114
  224. package/dist/core/unified-cache.js.map +0 -1
  225. package/dist/index.d.ts +0 -159
  226. package/dist/index.d.ts.map +0 -1
  227. package/dist/index.js +0 -262
  228. package/dist/index.js.map +0 -1
  229. package/dist/services/arbitrage-service.d.ts +0 -409
  230. package/dist/services/arbitrage-service.d.ts.map +0 -1
  231. package/dist/services/arbitrage-service.js +0 -1450
  232. package/dist/services/arbitrage-service.js.map +0 -1
  233. package/dist/services/authorization-service.d.ts +0 -97
  234. package/dist/services/authorization-service.d.ts.map +0 -1
  235. package/dist/services/authorization-service.js +0 -279
  236. package/dist/services/authorization-service.js.map +0 -1
  237. package/dist/services/binance-service.d.ts +0 -154
  238. package/dist/services/binance-service.d.ts.map +0 -1
  239. package/dist/services/binance-service.js +0 -266
  240. package/dist/services/binance-service.js.map +0 -1
  241. package/dist/services/dip-arb-service.d.ts +0 -209
  242. package/dist/services/dip-arb-service.d.ts.map +0 -1
  243. package/dist/services/dip-arb-service.js +0 -1602
  244. package/dist/services/dip-arb-service.js.map +0 -1
  245. package/dist/services/dip-arb-types.d.ts +0 -553
  246. package/dist/services/dip-arb-types.d.ts.map +0 -1
  247. package/dist/services/dip-arb-types.js +0 -164
  248. package/dist/services/dip-arb-types.js.map +0 -1
  249. package/dist/services/market-service.d.ts +0 -367
  250. package/dist/services/market-service.d.ts.map +0 -1
  251. package/dist/services/market-service.js +0 -1187
  252. package/dist/services/market-service.js.map +0 -1
  253. package/dist/services/onchain-service.d.ts +0 -309
  254. package/dist/services/onchain-service.d.ts.map +0 -1
  255. package/dist/services/onchain-service.js +0 -417
  256. package/dist/services/onchain-service.js.map +0 -1
  257. package/dist/services/realtime-service-v2.d.ts +0 -362
  258. package/dist/services/realtime-service-v2.d.ts.map +0 -1
  259. package/dist/services/realtime-service-v2.js +0 -858
  260. package/dist/services/realtime-service-v2.js.map +0 -1
  261. package/dist/services/realtime-service.d.ts +0 -82
  262. package/dist/services/realtime-service.d.ts.map +0 -1
  263. package/dist/services/realtime-service.js +0 -182
  264. package/dist/services/realtime-service.js.map +0 -1
  265. package/dist/services/smart-money-service.d.ts +0 -352
  266. package/dist/services/smart-money-service.d.ts.map +0 -1
  267. package/dist/services/smart-money-service.js +0 -582
  268. package/dist/services/smart-money-service.js.map +0 -1
  269. package/dist/services/swap-service.d.ts +0 -217
  270. package/dist/services/swap-service.d.ts.map +0 -1
  271. package/dist/services/swap-service.js +0 -695
  272. package/dist/services/swap-service.js.map +0 -1
  273. package/dist/services/trading-service.d.ts +0 -177
  274. package/dist/services/trading-service.d.ts.map +0 -1
  275. package/dist/services/trading-service.js +0 -422
  276. package/dist/services/trading-service.js.map +0 -1
  277. package/dist/services/wallet-service.d.ts +0 -316
  278. package/dist/services/wallet-service.d.ts.map +0 -1
  279. package/dist/services/wallet-service.js +0 -681
  280. package/dist/services/wallet-service.js.map +0 -1
  281. package/dist/utils/price-utils.d.ts +0 -153
  282. package/dist/utils/price-utils.d.ts.map +0 -1
  283. package/dist/utils/price-utils.js +0 -236
  284. package/dist/utils/price-utils.js.map +0 -1
  285. package/dist/utils/price-utils.test.d.ts +0 -5
  286. package/dist/utils/price-utils.test.d.ts.map +0 -1
  287. package/dist/utils/price-utils.test.js +0 -192
  288. package/dist/utils/price-utils.test.js.map +0 -1
@@ -1,307 +0,0 @@
1
- /**
2
- * RealtimeServiceV2 Integration Tests
3
- *
4
- * Tests the new RealtimeServiceV2 that uses @polymarket/real-time-data-client.
5
- * These tests make REAL WebSocket connections to Polymarket.
6
- *
7
- * Run with: pnpm test:integration
8
- */
9
- import { describe, it, expect, beforeAll, afterEach } from 'vitest';
10
- import { RealtimeServiceV2 } from '../../services/realtime-service-v2.js';
11
- describe('RealtimeServiceV2 Integration', () => {
12
- let service;
13
- let testYesTokenId;
14
- let testNoTokenId;
15
- let testConditionId;
16
- beforeAll(async () => {
17
- // Find a liquid market for testing
18
- const response = await fetch('https://gamma-api.polymarket.com/markets?active=true&limit=1&order=volume24hr&ascending=false');
19
- const markets = await response.json();
20
- if (markets.length === 0) {
21
- throw new Error('No active markets found for testing');
22
- }
23
- testConditionId = markets[0].conditionId;
24
- console.log(`Using test market: "${markets[0].question.slice(0, 50)}..."`);
25
- // Get token IDs from CLOB API
26
- const clobResponse = await fetch(`https://clob.polymarket.com/markets/${testConditionId}`);
27
- const clobMarket = await clobResponse.json();
28
- const yesToken = clobMarket.tokens.find(t => t.outcome === 'Yes');
29
- const noToken = clobMarket.tokens.find(t => t.outcome === 'No');
30
- if (!yesToken || !noToken) {
31
- throw new Error('Market does not have YES/NO tokens');
32
- }
33
- testYesTokenId = yesToken.token_id;
34
- testNoTokenId = noToken.token_id;
35
- console.log(`YES token: ${testYesTokenId.slice(0, 20)}...`);
36
- console.log(`NO token: ${testNoTokenId.slice(0, 20)}...`);
37
- }, 60000);
38
- afterEach(async () => {
39
- // Clean up service after each test
40
- if (service) {
41
- service.disconnect();
42
- }
43
- });
44
- describe('Connection', () => {
45
- it('should connect to WebSocket server', async () => {
46
- service = new RealtimeServiceV2({ debug: false });
47
- const connectedPromise = new Promise((resolve, reject) => {
48
- const timeout = setTimeout(() => reject(new Error('Connection timeout')), 15000);
49
- service.once('connected', () => {
50
- clearTimeout(timeout);
51
- resolve();
52
- });
53
- });
54
- service.connect();
55
- await connectedPromise;
56
- expect(service.isConnected()).toBe(true);
57
- console.log('✓ Connected to WebSocket server');
58
- }, 30000);
59
- it('should disconnect gracefully', async () => {
60
- service = new RealtimeServiceV2({ debug: false });
61
- const connectedPromise = new Promise((resolve) => {
62
- service.once('connected', resolve);
63
- });
64
- service.connect();
65
- await connectedPromise;
66
- expect(service.isConnected()).toBe(true);
67
- service.disconnect();
68
- expect(service.isConnected()).toBe(false);
69
- console.log('✓ Disconnected gracefully');
70
- }, 30000);
71
- });
72
- describe('Market Subscriptions', () => {
73
- it('should receive orderbook updates', async () => {
74
- service = new RealtimeServiceV2({ debug: true }); // Enable debug for troubleshooting
75
- const connectedPromise = new Promise((resolve, reject) => {
76
- const timeout = setTimeout(() => reject(new Error('Connection timeout')), 20000);
77
- service.once('connected', () => {
78
- clearTimeout(timeout);
79
- resolve();
80
- });
81
- });
82
- service.connect();
83
- await connectedPromise;
84
- // Give the connection a moment to stabilize
85
- await new Promise(resolve => setTimeout(resolve, 1000));
86
- // Subscribe and wait for orderbook update
87
- const orderbookPromise = new Promise((resolve, reject) => {
88
- const timeout = setTimeout(() => {
89
- // If no update received, this is acceptable - WebSocket may not send data immediately
90
- console.log('No orderbook update received within timeout (WebSocket may need more time)');
91
- reject(new Error('Orderbook timeout - WebSocket subscription may not have triggered data'));
92
- }, 45000);
93
- service.subscribeMarkets([testYesTokenId], {
94
- onOrderbook: (book) => {
95
- clearTimeout(timeout);
96
- resolve(book);
97
- },
98
- onError: (error) => {
99
- clearTimeout(timeout);
100
- reject(error);
101
- },
102
- });
103
- });
104
- try {
105
- const book = await orderbookPromise;
106
- // Verify orderbook structure
107
- expect(book.assetId).toBe(testYesTokenId);
108
- expect(Array.isArray(book.bids)).toBe(true);
109
- expect(Array.isArray(book.asks)).toBe(true);
110
- expect(typeof book.timestamp).toBe('number');
111
- expect(typeof book.tickSize).toBe('string');
112
- console.log(`✓ Received orderbook: ${book.bids.length} bids, ${book.asks.length} asks`);
113
- }
114
- catch (error) {
115
- // WebSocket data may not arrive within timeout in test environment
116
- console.log(`Note: ${error.message}`);
117
- console.log('✓ WebSocket connection works, but no data received (may require market activity)');
118
- }
119
- }, 60000);
120
- it('should calculate derived prices from orderbook', async () => {
121
- service = new RealtimeServiceV2({ debug: false });
122
- const connectedPromise = new Promise((resolve, reject) => {
123
- const timeout = setTimeout(() => reject(new Error('Connection timeout')), 20000);
124
- service.once('connected', () => {
125
- clearTimeout(timeout);
126
- resolve();
127
- });
128
- });
129
- service.connect();
130
- await connectedPromise;
131
- await new Promise(resolve => setTimeout(resolve, 1000));
132
- // Subscribe to market and wait for price update
133
- const pricePromise = new Promise((resolve) => {
134
- const timeout = setTimeout(() => resolve(null), 30000);
135
- service.subscribeMarket(testYesTokenId, testNoTokenId, {
136
- onPriceUpdate: (update) => {
137
- clearTimeout(timeout);
138
- resolve(update);
139
- },
140
- });
141
- });
142
- const price = await pricePromise;
143
- if (price) {
144
- // Verify price structure
145
- expect(typeof price.assetId).toBe('string');
146
- expect(typeof price.price).toBe('number');
147
- expect(price.price).toBeGreaterThanOrEqual(0);
148
- expect(price.price).toBeLessThanOrEqual(1);
149
- expect(typeof price.midpoint).toBe('number');
150
- expect(typeof price.spread).toBe('number');
151
- console.log(`✓ Received price update: price=${price.price.toFixed(4)}, spread=${price.spread.toFixed(4)}`);
152
- }
153
- else {
154
- console.log('✓ WebSocket connected (no price data within timeout - may need market activity)');
155
- }
156
- }, 60000);
157
- it('should emit pair updates for YES/NO subscriptions', async () => {
158
- service = new RealtimeServiceV2({ debug: false });
159
- const connectedPromise = new Promise((resolve, reject) => {
160
- const timeout = setTimeout(() => reject(new Error('Connection timeout')), 20000);
161
- service.once('connected', () => {
162
- clearTimeout(timeout);
163
- resolve();
164
- });
165
- });
166
- service.connect();
167
- await connectedPromise;
168
- await new Promise(resolve => setTimeout(resolve, 1000));
169
- // Subscribe to both tokens and wait for pair update
170
- const pairPromise = new Promise((resolve) => {
171
- const timeout = setTimeout(() => resolve(null), 30000);
172
- service.subscribeMarket(testYesTokenId, testNoTokenId, {
173
- onPairUpdate: (update) => {
174
- clearTimeout(timeout);
175
- resolve(update);
176
- },
177
- });
178
- });
179
- const pair = await pairPromise;
180
- if (pair) {
181
- // Verify pair update structure
182
- expect(pair.yes).toBeDefined();
183
- expect(pair.no).toBeDefined();
184
- expect(typeof pair.spread).toBe('number');
185
- expect(pair.yes.price).toBeGreaterThanOrEqual(0);
186
- expect(pair.yes.price).toBeLessThanOrEqual(1);
187
- expect(pair.no.price).toBeGreaterThanOrEqual(0);
188
- expect(pair.no.price).toBeLessThanOrEqual(1);
189
- console.log(`✓ Received pair update: YES=${pair.yes.price.toFixed(4)}, NO=${pair.no.price.toFixed(4)}, spread=${pair.spread.toFixed(4)}`);
190
- }
191
- else {
192
- console.log('✓ WebSocket connected (no pair update within timeout - may need both sides to have activity)');
193
- }
194
- }, 60000);
195
- });
196
- describe('Cache Access', () => {
197
- it('should cache orderbook data when received', async () => {
198
- service = new RealtimeServiceV2({ debug: false });
199
- const connectedPromise = new Promise((resolve, reject) => {
200
- const timeout = setTimeout(() => reject(new Error('Connection timeout')), 20000);
201
- service.once('connected', () => {
202
- clearTimeout(timeout);
203
- resolve();
204
- });
205
- });
206
- service.connect();
207
- await connectedPromise;
208
- await new Promise(resolve => setTimeout(resolve, 1000));
209
- // Subscribe and wait for orderbook to be cached
210
- const orderbookReceived = new Promise((resolve) => {
211
- const timeout = setTimeout(() => resolve(false), 30000);
212
- service.subscribeMarkets([testYesTokenId], {
213
- onOrderbook: () => {
214
- clearTimeout(timeout);
215
- resolve(true);
216
- },
217
- });
218
- });
219
- const received = await orderbookReceived;
220
- if (received) {
221
- // Verify cache contains the orderbook
222
- const cachedBook = service.getBook(testYesTokenId);
223
- expect(cachedBook).toBeDefined();
224
- expect(cachedBook.assetId).toBe(testYesTokenId);
225
- expect(Array.isArray(cachedBook.bids)).toBe(true);
226
- expect(Array.isArray(cachedBook.asks)).toBe(true);
227
- console.log(`✓ Cached orderbook: ${cachedBook.bids.length} bids, ${cachedBook.asks.length} asks`);
228
- }
229
- else {
230
- console.log('✓ Cache mechanism available (no data received within timeout)');
231
- }
232
- }, 60000);
233
- it('should cache derived prices when received', async () => {
234
- service = new RealtimeServiceV2({ debug: false });
235
- const connectedPromise = new Promise((resolve, reject) => {
236
- const timeout = setTimeout(() => reject(new Error('Connection timeout')), 20000);
237
- service.once('connected', () => {
238
- clearTimeout(timeout);
239
- resolve();
240
- });
241
- });
242
- service.connect();
243
- await connectedPromise;
244
- await new Promise(resolve => setTimeout(resolve, 1000));
245
- // Subscribe and wait for price to be cached
246
- const priceReceived = new Promise((resolve) => {
247
- const timeout = setTimeout(() => resolve(false), 30000);
248
- service.subscribeMarket(testYesTokenId, testNoTokenId, {
249
- onPriceUpdate: () => {
250
- clearTimeout(timeout);
251
- resolve(true);
252
- },
253
- });
254
- });
255
- const received = await priceReceived;
256
- if (received) {
257
- // Verify cache contains the price
258
- const cachedPrice = service.getPrice(testYesTokenId);
259
- expect(cachedPrice).toBeDefined();
260
- expect(typeof cachedPrice.price).toBe('number');
261
- expect(cachedPrice.price).toBeGreaterThanOrEqual(0);
262
- expect(cachedPrice.price).toBeLessThanOrEqual(1);
263
- console.log(`✓ Cached price: ${cachedPrice.price.toFixed(4)}`);
264
- }
265
- else {
266
- console.log('✓ Cache mechanism available (no price received within timeout)');
267
- }
268
- }, 60000);
269
- });
270
- describe('Subscription Management', () => {
271
- it('should track active subscriptions', async () => {
272
- service = new RealtimeServiceV2({ debug: false });
273
- const connectedPromise = new Promise((resolve) => {
274
- service.once('connected', resolve);
275
- });
276
- service.connect();
277
- await connectedPromise;
278
- // No subscriptions initially
279
- expect(service.getActiveSubscriptions().length).toBe(0);
280
- // Add subscription
281
- const sub = service.subscribeMarkets([testYesTokenId], {});
282
- expect(service.getActiveSubscriptions().length).toBe(1);
283
- expect(service.getActiveSubscriptions()[0].id).toBe(sub.id);
284
- // Unsubscribe
285
- sub.unsubscribe();
286
- expect(service.getActiveSubscriptions().length).toBe(0);
287
- console.log('✓ Subscription management works correctly');
288
- }, 30000);
289
- it('should unsubscribe all at once', async () => {
290
- service = new RealtimeServiceV2({ debug: false });
291
- const connectedPromise = new Promise((resolve) => {
292
- service.once('connected', resolve);
293
- });
294
- service.connect();
295
- await connectedPromise;
296
- // Add multiple subscriptions
297
- service.subscribeMarkets([testYesTokenId], {});
298
- service.subscribeMarkets([testNoTokenId], {});
299
- expect(service.getActiveSubscriptions().length).toBe(2);
300
- // Unsubscribe all
301
- service.unsubscribeAll();
302
- expect(service.getActiveSubscriptions().length).toBe(0);
303
- console.log('✓ Unsubscribe all works correctly');
304
- }, 30000);
305
- });
306
- });
307
- //# sourceMappingURL=realtime-service-v2.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"realtime-service-v2.integration.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/realtime-service-v2.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * TradingService Integration Tests
3
- *
4
- * Tests the TradingService for trading operations.
5
- * Note: Market data methods have been moved to MarketService.
6
- *
7
- * Run with: pnpm test:integration
8
- */
9
- export {};
10
- //# sourceMappingURL=trading-service.integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trading-service.integration.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/trading-service.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1,58 +0,0 @@
1
- /**
2
- * TradingService Integration Tests
3
- *
4
- * Tests the TradingService for trading operations.
5
- * Note: Market data methods have been moved to MarketService.
6
- *
7
- * Run with: pnpm test:integration
8
- */
9
- import { describe, it, expect, beforeAll } from 'vitest';
10
- import { TradingService } from '../../services/trading-service.js';
11
- import { RateLimiter } from '../../core/rate-limiter.js';
12
- import { createUnifiedCache } from '../../core/unified-cache.js';
13
- describe('TradingService Integration', () => {
14
- let service;
15
- let testYesTokenId;
16
- beforeAll(async () => {
17
- // Create service with a dummy private key for read-only operations
18
- service = new TradingService(new RateLimiter(), createUnifiedCache(), {
19
- privateKey: '0x' + '1'.repeat(64), // Dummy key for read-only
20
- });
21
- // Initialize the service
22
- await service.initialize();
23
- // Find a liquid market for testing via Gamma API
24
- const response = await fetch('https://gamma-api.polymarket.com/markets?active=true&limit=1&order=volume24hr&ascending=false');
25
- const markets = (await response.json());
26
- if (markets.length === 0) {
27
- throw new Error('No markets found for testing');
28
- }
29
- // Parse clobTokenIds (Gamma API returns it as JSON string)
30
- const clobTokenIds = JSON.parse(markets[0].clobTokenIds);
31
- if (!clobTokenIds || clobTokenIds.length === 0) {
32
- throw new Error('No token IDs found in market');
33
- }
34
- // First token is typically the YES token
35
- testYesTokenId = clobTokenIds[0];
36
- }, 60000);
37
- describe('getTickSize', () => {
38
- it('should return valid tick size', async () => {
39
- const tickSize = await service.getTickSize(testYesTokenId);
40
- expect(typeof tickSize).toBe('string');
41
- expect(['0.01', '0.001', '0.0001']).toContain(tickSize);
42
- console.log(`✓ getTickSize: ${tickSize}`);
43
- }, 30000);
44
- });
45
- describe('service state', () => {
46
- it('should report initialized status', () => {
47
- expect(service.isInitialized()).toBe(true);
48
- });
49
- it('should have a wallet address', () => {
50
- const address = service.getAddress();
51
- expect(typeof address).toBe('string');
52
- expect(address.startsWith('0x')).toBe(true);
53
- expect(address.length).toBe(42);
54
- console.log(`✓ Wallet address: ${address.slice(0, 10)}...`);
55
- });
56
- });
57
- });
58
- //# sourceMappingURL=trading-service.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trading-service.integration.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/trading-service.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Test Utilities for poly-sdk
3
- *
4
- * Provides mock implementations and test helpers for unit testing.
5
- */
6
- export declare const mockClobMarket: {
7
- conditionId: string;
8
- question: string;
9
- description: string;
10
- marketSlug: string;
11
- tokens: {
12
- tokenId: string;
13
- outcome: string;
14
- price: number;
15
- }[];
16
- acceptingOrders: boolean;
17
- endDateIso: string;
18
- active: boolean;
19
- closed: boolean;
20
- };
21
- export declare const mockOrderbook: {
22
- bids: {
23
- price: number;
24
- size: number;
25
- }[];
26
- asks: {
27
- price: number;
28
- size: number;
29
- }[];
30
- timestamp: number;
31
- };
32
- export declare const mockNoOrderbook: {
33
- bids: {
34
- price: number;
35
- size: number;
36
- }[];
37
- asks: {
38
- price: number;
39
- size: number;
40
- }[];
41
- timestamp: number;
42
- };
43
- export declare const mockGammaMarket: {
44
- id: string;
45
- conditionId: string;
46
- slug: string;
47
- question: string;
48
- outcomes: string[];
49
- outcomePrices: number[];
50
- volume: number;
51
- volume24hr: number;
52
- liquidity: number;
53
- spread: number;
54
- endDate: Date;
55
- active: boolean;
56
- closed: boolean;
57
- };
58
- export declare const mockPosition: {
59
- asset: string;
60
- conditionId: string;
61
- outcome: string;
62
- outcomeIndex: number;
63
- size: number;
64
- avgPrice: number;
65
- curPrice: number;
66
- cashPnl: number;
67
- percentPnl: number;
68
- title: string;
69
- };
70
- export declare class MockRateLimiter {
71
- execute<T>(_apiType: string, fn: () => Promise<T>): Promise<T>;
72
- }
73
- export declare class MockCache {
74
- private cache;
75
- getOrSet<T>(key: string, ttl: number, fn: () => Promise<T>): Promise<T>;
76
- clear(): void;
77
- }
78
- export declare function createMockFetch(responses: Record<string, unknown>): import("vitest").Mock<(url: string) => Promise<{
79
- ok: boolean;
80
- status: number;
81
- json: () => Promise<unknown>;
82
- }>>;
83
- export declare function expectOrderbookSorted(orderbook: {
84
- bids: Array<{
85
- price: number;
86
- }>;
87
- asks: Array<{
88
- price: number;
89
- }>;
90
- }): void;
91
- export declare function waitFor(ms: number): Promise<void>;
92
- //# sourceMappingURL=test-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/__tests__/test-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAqB1B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;CAYzB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAc3B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;CAWxB,CAAC;AAIF,qBAAa,eAAe;IACpB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAGrE;AAID,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAA0D;IAEjE,QAAQ,CAAC,CAAC,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC;IAUb,KAAK,IAAI,IAAI;CAGd;AAID,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BACvC,MAAM;;;;IAoBhC;AAID,wBAAgB,qBAAqB,CAAC,SAAS,EAAE;IAC/C,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/B,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChC,GAAG,IAAI,CAaP;AAID,wBAAsB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvD"}
@@ -1,143 +0,0 @@
1
- /**
2
- * Test Utilities for poly-sdk
3
- *
4
- * Provides mock implementations and test helpers for unit testing.
5
- */
6
- import { vi } from 'vitest';
7
- // ===== Mock Data =====
8
- export const mockClobMarket = {
9
- conditionId: '0x82ace55cdcba920112a2b3548f21e6e117730144db4dd580456aaecf1a2ad751',
10
- question: 'Will BTC reach $100k by end of 2024?',
11
- description: 'This market resolves YES if Bitcoin reaches $100,000 USD.',
12
- marketSlug: 'will-btc-reach-100k',
13
- tokens: [
14
- {
15
- tokenId: '21742633143463906290569050155826241533067272736897614950488156847949938836455',
16
- outcome: 'Yes',
17
- price: 0.65,
18
- },
19
- {
20
- tokenId: '79707176503087022804581743747659199568535926050896809695934676056217229461419',
21
- outcome: 'No',
22
- price: 0.35,
23
- },
24
- ],
25
- acceptingOrders: true,
26
- endDateIso: '2024-12-31T23:59:59Z',
27
- active: true,
28
- closed: false,
29
- };
30
- export const mockOrderbook = {
31
- bids: [
32
- { price: 0.55, size: 1000 },
33
- { price: 0.54, size: 500 },
34
- { price: 0.53, size: 750 },
35
- ],
36
- asks: [
37
- { price: 0.57, size: 800 },
38
- { price: 0.58, size: 600 },
39
- { price: 0.59, size: 400 },
40
- ],
41
- timestamp: Date.now(),
42
- };
43
- export const mockNoOrderbook = {
44
- bids: [
45
- { price: 0.43, size: 900 },
46
- { price: 0.42, size: 450 },
47
- ],
48
- asks: [
49
- { price: 0.45, size: 700 },
50
- { price: 0.46, size: 500 },
51
- ],
52
- timestamp: Date.now(),
53
- };
54
- export const mockGammaMarket = {
55
- id: '12345',
56
- conditionId: '0x82ace55cdcba920112a2b3548f21e6e117730144db4dd580456aaecf1a2ad751',
57
- slug: 'will-btc-reach-100k',
58
- question: 'Will BTC reach $100k by end of 2024?',
59
- outcomes: ['Yes', 'No'],
60
- outcomePrices: [0.65, 0.35],
61
- volume: 5000000,
62
- volume24hr: 250000,
63
- liquidity: 100000,
64
- spread: 0.02,
65
- endDate: new Date('2024-12-31T23:59:59Z'),
66
- active: true,
67
- closed: false,
68
- };
69
- export const mockPosition = {
70
- asset: '21742633143463906290569050155826241533067272736897614950488156847949938836455',
71
- conditionId: '0x82ace55cdcba920112a2b3548f21e6e117730144db4dd580456aaecf1a2ad751',
72
- outcome: 'Yes',
73
- outcomeIndex: 0,
74
- size: 100,
75
- avgPrice: 0.50,
76
- curPrice: 0.65,
77
- cashPnl: 15,
78
- percentPnl: 0.30,
79
- title: 'Will BTC reach $100k?',
80
- };
81
- // ===== Mock RateLimiter =====
82
- export class MockRateLimiter {
83
- async execute(_apiType, fn) {
84
- return fn();
85
- }
86
- }
87
- // ===== Mock Cache =====
88
- export class MockCache {
89
- cache = new Map();
90
- async getOrSet(key, ttl, fn) {
91
- const cached = this.cache.get(key);
92
- if (cached && cached.expires > Date.now()) {
93
- return cached.value;
94
- }
95
- const value = await fn();
96
- this.cache.set(key, { value, expires: Date.now() + ttl });
97
- return value;
98
- }
99
- clear() {
100
- this.cache.clear();
101
- }
102
- }
103
- // ===== Mock Fetch =====
104
- export function createMockFetch(responses) {
105
- return vi.fn(async (url) => {
106
- const urlObj = new URL(url);
107
- const path = urlObj.pathname;
108
- for (const [pattern, response] of Object.entries(responses)) {
109
- if (path.includes(pattern)) {
110
- return {
111
- ok: true,
112
- status: 200,
113
- json: async () => response,
114
- };
115
- }
116
- }
117
- return {
118
- ok: false,
119
- status: 404,
120
- json: async () => ({ error: 'Not found' }),
121
- };
122
- });
123
- }
124
- // ===== Assertion Helpers =====
125
- export function expectOrderbookSorted(orderbook) {
126
- // Bids should be descending
127
- for (let i = 1; i < orderbook.bids.length; i++) {
128
- if (orderbook.bids[i].price > orderbook.bids[i - 1].price) {
129
- throw new Error('Bids are not sorted descending');
130
- }
131
- }
132
- // Asks should be ascending
133
- for (let i = 1; i < orderbook.asks.length; i++) {
134
- if (orderbook.asks[i].price < orderbook.asks[i - 1].price) {
135
- throw new Error('Asks are not sorted ascending');
136
- }
137
- }
138
- }
139
- // ===== Time Helpers =====
140
- export async function waitFor(ms) {
141
- return new Promise((resolve) => setTimeout(resolve, ms));
142
- }
143
- //# sourceMappingURL=test-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/__tests__/test-utils.ts"],"names":[],"mappings":"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"}