@catalyst-team/poly-sdk 0.4.0 → 0.4.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.
Files changed (264) 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/index.d.ts +15 -4
  29. package/dist/src/index.d.ts.map +1 -1
  30. package/dist/src/index.js +22 -2
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/insider-scan/index.d.ts +3 -0
  33. package/dist/src/insider-scan/index.d.ts.map +1 -0
  34. package/dist/src/insider-scan/index.js +3 -0
  35. package/dist/src/insider-scan/index.js.map +1 -0
  36. package/dist/src/insider-scan/insider-scan-service.d.ts +63 -0
  37. package/dist/src/insider-scan/insider-scan-service.d.ts.map +1 -0
  38. package/dist/src/insider-scan/insider-scan-service.js +153 -0
  39. package/dist/src/insider-scan/insider-scan-service.js.map +1 -0
  40. package/dist/src/insider-scan/types.d.ts +205 -0
  41. package/dist/src/insider-scan/types.d.ts.map +1 -0
  42. package/dist/src/insider-scan/types.js +7 -0
  43. package/dist/src/insider-scan/types.js.map +1 -0
  44. package/dist/src/services/market-service.d.ts +61 -0
  45. package/dist/src/services/market-service.d.ts.map +1 -1
  46. package/dist/src/services/market-service.js +58 -0
  47. package/dist/src/services/market-service.js.map +1 -1
  48. package/dist/src/services/onchain-service.d.ts +10 -2
  49. package/dist/src/services/onchain-service.d.ts.map +1 -1
  50. package/dist/src/services/onchain-service.js +8 -0
  51. package/dist/src/services/onchain-service.js.map +1 -1
  52. package/dist/src/services/smart-money-service.d.ts +420 -3
  53. package/dist/src/services/smart-money-service.d.ts.map +1 -1
  54. package/dist/src/services/smart-money-service.js +869 -3
  55. package/dist/src/services/smart-money-service.js.map +1 -1
  56. package/dist/src/services/trading-service.d.ts +5 -0
  57. package/dist/src/services/trading-service.d.ts.map +1 -1
  58. package/dist/src/services/trading-service.js +5 -0
  59. package/dist/src/services/trading-service.js.map +1 -1
  60. package/dist/src/services/wallet-service.d.ts +38 -2
  61. package/dist/src/services/wallet-service.d.ts.map +1 -1
  62. package/dist/src/services/wallet-service.js +72 -5
  63. package/dist/src/services/wallet-service.js.map +1 -1
  64. package/dist/src/signal/index.d.ts +8 -0
  65. package/dist/src/signal/index.d.ts.map +1 -0
  66. package/dist/src/signal/index.js +7 -0
  67. package/dist/src/signal/index.js.map +1 -0
  68. package/dist/src/signal/signal-service.d.ts +89 -0
  69. package/dist/src/signal/signal-service.d.ts.map +1 -0
  70. package/dist/src/signal/signal-service.js +226 -0
  71. package/dist/src/signal/signal-service.js.map +1 -0
  72. package/dist/src/signal/types.d.ts +280 -0
  73. package/dist/src/signal/types.d.ts.map +1 -0
  74. package/dist/src/signal/types.js +7 -0
  75. package/dist/src/signal/types.js.map +1 -0
  76. package/dist/src/wallet-report/index.d.ts +3 -0
  77. package/dist/src/wallet-report/index.d.ts.map +1 -0
  78. package/dist/src/wallet-report/index.js +3 -0
  79. package/dist/src/wallet-report/index.js.map +1 -0
  80. package/dist/src/wallet-report/types.d.ts +187 -0
  81. package/dist/src/wallet-report/types.d.ts.map +1 -0
  82. package/dist/src/wallet-report/types.js +7 -0
  83. package/dist/src/wallet-report/types.js.map +1 -0
  84. package/dist/src/wallet-report/wallet-report-service.d.ts +91 -0
  85. package/dist/src/wallet-report/wallet-report-service.d.ts.map +1 -0
  86. package/dist/src/wallet-report/wallet-report-service.js +208 -0
  87. package/dist/src/wallet-report/wallet-report-service.js.map +1 -0
  88. package/dist/src/wallets/hot-wallet-service.d.ts +162 -0
  89. package/dist/src/wallets/hot-wallet-service.d.ts.map +1 -0
  90. package/dist/src/wallets/hot-wallet-service.js +251 -0
  91. package/dist/src/wallets/hot-wallet-service.js.map +1 -0
  92. package/dist/src/wallets/index.d.ts +15 -0
  93. package/dist/src/wallets/index.d.ts.map +1 -0
  94. package/dist/src/wallets/index.js +26 -0
  95. package/dist/src/wallets/index.js.map +1 -0
  96. package/package.json +5 -5
  97. package/dist/__tests__/clob-api.test.d.ts +0 -5
  98. package/dist/__tests__/clob-api.test.d.ts.map +0 -1
  99. package/dist/__tests__/clob-api.test.js +0 -240
  100. package/dist/__tests__/clob-api.test.js.map +0 -1
  101. package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts +0 -12
  102. package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts.map +0 -1
  103. package/dist/__tests__/integration/arbitrage-service.integration.test.js +0 -267
  104. package/dist/__tests__/integration/arbitrage-service.integration.test.js.map +0 -1
  105. package/dist/__tests__/integration/bridge-client.integration.test.d.ts +0 -11
  106. package/dist/__tests__/integration/bridge-client.integration.test.d.ts.map +0 -1
  107. package/dist/__tests__/integration/bridge-client.integration.test.js +0 -260
  108. package/dist/__tests__/integration/bridge-client.integration.test.js.map +0 -1
  109. package/dist/__tests__/integration/clob-api.integration.test.d.ts +0 -13
  110. package/dist/__tests__/integration/clob-api.integration.test.d.ts.map +0 -1
  111. package/dist/__tests__/integration/clob-api.integration.test.js +0 -170
  112. package/dist/__tests__/integration/clob-api.integration.test.js.map +0 -1
  113. package/dist/__tests__/integration/ctf-client.integration.test.d.ts +0 -17
  114. package/dist/__tests__/integration/ctf-client.integration.test.d.ts.map +0 -1
  115. package/dist/__tests__/integration/ctf-client.integration.test.js +0 -234
  116. package/dist/__tests__/integration/ctf-client.integration.test.js.map +0 -1
  117. package/dist/__tests__/integration/data-api.integration.test.d.ts +0 -9
  118. package/dist/__tests__/integration/data-api.integration.test.d.ts.map +0 -1
  119. package/dist/__tests__/integration/data-api.integration.test.js +0 -164
  120. package/dist/__tests__/integration/data-api.integration.test.js.map +0 -1
  121. package/dist/__tests__/integration/gamma-api.integration.test.d.ts +0 -9
  122. package/dist/__tests__/integration/gamma-api.integration.test.d.ts.map +0 -1
  123. package/dist/__tests__/integration/gamma-api.integration.test.js +0 -170
  124. package/dist/__tests__/integration/gamma-api.integration.test.js.map +0 -1
  125. package/dist/__tests__/integration/market-service.integration.test.d.ts +0 -10
  126. package/dist/__tests__/integration/market-service.integration.test.d.ts.map +0 -1
  127. package/dist/__tests__/integration/market-service.integration.test.js +0 -173
  128. package/dist/__tests__/integration/market-service.integration.test.js.map +0 -1
  129. package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts +0 -10
  130. package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts.map +0 -1
  131. package/dist/__tests__/integration/realtime-service-v2.integration.test.js +0 -307
  132. package/dist/__tests__/integration/realtime-service-v2.integration.test.js.map +0 -1
  133. package/dist/__tests__/integration/trading-service.integration.test.d.ts +0 -10
  134. package/dist/__tests__/integration/trading-service.integration.test.d.ts.map +0 -1
  135. package/dist/__tests__/integration/trading-service.integration.test.js +0 -58
  136. package/dist/__tests__/integration/trading-service.integration.test.js.map +0 -1
  137. package/dist/__tests__/test-utils.d.ts +0 -92
  138. package/dist/__tests__/test-utils.d.ts.map +0 -1
  139. package/dist/__tests__/test-utils.js +0 -143
  140. package/dist/__tests__/test-utils.js.map +0 -1
  141. package/dist/clients/bridge-client.d.ts +0 -388
  142. package/dist/clients/bridge-client.d.ts.map +0 -1
  143. package/dist/clients/bridge-client.js +0 -587
  144. package/dist/clients/bridge-client.js.map +0 -1
  145. package/dist/clients/clob-api.d.ts +0 -391
  146. package/dist/clients/clob-api.d.ts.map +0 -1
  147. package/dist/clients/clob-api.js +0 -448
  148. package/dist/clients/clob-api.js.map +0 -1
  149. package/dist/clients/ctf-client.d.ts +0 -475
  150. package/dist/clients/ctf-client.d.ts.map +0 -1
  151. package/dist/clients/ctf-client.js +0 -915
  152. package/dist/clients/ctf-client.js.map +0 -1
  153. package/dist/clients/data-api.d.ts +0 -452
  154. package/dist/clients/data-api.d.ts.map +0 -1
  155. package/dist/clients/data-api.js +0 -637
  156. package/dist/clients/data-api.js.map +0 -1
  157. package/dist/clients/gamma-api.d.ts +0 -406
  158. package/dist/clients/gamma-api.d.ts.map +0 -1
  159. package/dist/clients/gamma-api.js +0 -354
  160. package/dist/clients/gamma-api.js.map +0 -1
  161. package/dist/clients/subgraph.d.ts +0 -196
  162. package/dist/clients/subgraph.d.ts.map +0 -1
  163. package/dist/clients/subgraph.js +0 -332
  164. package/dist/clients/subgraph.js.map +0 -1
  165. package/dist/clients/trading-client.d.ts +0 -252
  166. package/dist/clients/trading-client.d.ts.map +0 -1
  167. package/dist/clients/trading-client.js +0 -543
  168. package/dist/clients/trading-client.js.map +0 -1
  169. package/dist/clients/websocket-manager.d.ts +0 -103
  170. package/dist/clients/websocket-manager.d.ts.map +0 -1
  171. package/dist/clients/websocket-manager.js +0 -200
  172. package/dist/clients/websocket-manager.js.map +0 -1
  173. package/dist/core/cache-adapter-bridge.d.ts +0 -36
  174. package/dist/core/cache-adapter-bridge.d.ts.map +0 -1
  175. package/dist/core/cache-adapter-bridge.js +0 -81
  176. package/dist/core/cache-adapter-bridge.js.map +0 -1
  177. package/dist/core/cache.d.ts +0 -43
  178. package/dist/core/cache.d.ts.map +0 -1
  179. package/dist/core/cache.js +0 -76
  180. package/dist/core/cache.js.map +0 -1
  181. package/dist/core/errors.d.ts +0 -39
  182. package/dist/core/errors.d.ts.map +0 -1
  183. package/dist/core/errors.js +0 -86
  184. package/dist/core/errors.js.map +0 -1
  185. package/dist/core/rate-limiter.d.ts +0 -33
  186. package/dist/core/rate-limiter.d.ts.map +0 -1
  187. package/dist/core/rate-limiter.js +0 -82
  188. package/dist/core/rate-limiter.js.map +0 -1
  189. package/dist/core/types.d.ts +0 -506
  190. package/dist/core/types.d.ts.map +0 -1
  191. package/dist/core/types.js +0 -49
  192. package/dist/core/types.js.map +0 -1
  193. package/dist/core/types.test.d.ts +0 -7
  194. package/dist/core/types.test.d.ts.map +0 -1
  195. package/dist/core/types.test.js +0 -122
  196. package/dist/core/types.test.js.map +0 -1
  197. package/dist/core/unified-cache.d.ts +0 -63
  198. package/dist/core/unified-cache.d.ts.map +0 -1
  199. package/dist/core/unified-cache.js +0 -114
  200. package/dist/core/unified-cache.js.map +0 -1
  201. package/dist/index.d.ts +0 -159
  202. package/dist/index.d.ts.map +0 -1
  203. package/dist/index.js +0 -262
  204. package/dist/index.js.map +0 -1
  205. package/dist/services/arbitrage-service.d.ts +0 -409
  206. package/dist/services/arbitrage-service.d.ts.map +0 -1
  207. package/dist/services/arbitrage-service.js +0 -1450
  208. package/dist/services/arbitrage-service.js.map +0 -1
  209. package/dist/services/authorization-service.d.ts +0 -97
  210. package/dist/services/authorization-service.d.ts.map +0 -1
  211. package/dist/services/authorization-service.js +0 -279
  212. package/dist/services/authorization-service.js.map +0 -1
  213. package/dist/services/binance-service.d.ts +0 -154
  214. package/dist/services/binance-service.d.ts.map +0 -1
  215. package/dist/services/binance-service.js +0 -266
  216. package/dist/services/binance-service.js.map +0 -1
  217. package/dist/services/dip-arb-service.d.ts +0 -209
  218. package/dist/services/dip-arb-service.d.ts.map +0 -1
  219. package/dist/services/dip-arb-service.js +0 -1602
  220. package/dist/services/dip-arb-service.js.map +0 -1
  221. package/dist/services/dip-arb-types.d.ts +0 -553
  222. package/dist/services/dip-arb-types.d.ts.map +0 -1
  223. package/dist/services/dip-arb-types.js +0 -164
  224. package/dist/services/dip-arb-types.js.map +0 -1
  225. package/dist/services/market-service.d.ts +0 -367
  226. package/dist/services/market-service.d.ts.map +0 -1
  227. package/dist/services/market-service.js +0 -1187
  228. package/dist/services/market-service.js.map +0 -1
  229. package/dist/services/onchain-service.d.ts +0 -309
  230. package/dist/services/onchain-service.d.ts.map +0 -1
  231. package/dist/services/onchain-service.js +0 -417
  232. package/dist/services/onchain-service.js.map +0 -1
  233. package/dist/services/realtime-service-v2.d.ts +0 -362
  234. package/dist/services/realtime-service-v2.d.ts.map +0 -1
  235. package/dist/services/realtime-service-v2.js +0 -858
  236. package/dist/services/realtime-service-v2.js.map +0 -1
  237. package/dist/services/realtime-service.d.ts +0 -82
  238. package/dist/services/realtime-service.d.ts.map +0 -1
  239. package/dist/services/realtime-service.js +0 -182
  240. package/dist/services/realtime-service.js.map +0 -1
  241. package/dist/services/smart-money-service.d.ts +0 -352
  242. package/dist/services/smart-money-service.d.ts.map +0 -1
  243. package/dist/services/smart-money-service.js +0 -582
  244. package/dist/services/smart-money-service.js.map +0 -1
  245. package/dist/services/swap-service.d.ts +0 -217
  246. package/dist/services/swap-service.d.ts.map +0 -1
  247. package/dist/services/swap-service.js +0 -695
  248. package/dist/services/swap-service.js.map +0 -1
  249. package/dist/services/trading-service.d.ts +0 -177
  250. package/dist/services/trading-service.d.ts.map +0 -1
  251. package/dist/services/trading-service.js +0 -422
  252. package/dist/services/trading-service.js.map +0 -1
  253. package/dist/services/wallet-service.d.ts +0 -316
  254. package/dist/services/wallet-service.d.ts.map +0 -1
  255. package/dist/services/wallet-service.js +0 -681
  256. package/dist/services/wallet-service.js.map +0 -1
  257. package/dist/utils/price-utils.d.ts +0 -153
  258. package/dist/utils/price-utils.d.ts.map +0 -1
  259. package/dist/utils/price-utils.js +0 -236
  260. package/dist/utils/price-utils.js.map +0 -1
  261. package/dist/utils/price-utils.test.d.ts +0 -5
  262. package/dist/utils/price-utils.test.d.ts.map +0 -1
  263. package/dist/utils/price-utils.test.js +0 -192
  264. package/dist/utils/price-utils.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-money-service.d.ts","sourceRoot":"","sources":["../../src/services/smart-money-service.ts"],"names":[],"mappings":"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"}
@@ -1,582 +0,0 @@
1
- /**
2
- * SmartMoneyService
3
- *
4
- * 聪明钱监控和自动跟单服务
5
- *
6
- * 核心功能:
7
- * 1. 监听指定地址的交易 - subscribeSmartMoneyTrades()
8
- * 2. 自动跟单 - startAutoCopyTrading()
9
- * 3. 聪明钱信息获取 - getSmartMoneyList(), getSmartMoneyInfo()
10
- *
11
- * ============================================================================
12
- * 设计决策
13
- * ============================================================================
14
- *
15
- * ## 监控方式
16
- * 使用 Activity WebSocket,延迟 < 100ms,实测验证有效。
17
- *
18
- * ## 下单方式
19
- * | 方式 | 使用场景 | 特点 |
20
- * |------|---------|------|
21
- * | FOK | 小额跟单 | 全部成交或取消 |
22
- * | FAK | 大额跟单 | 部分成交也接受 |
23
- *
24
- * ## 重要限制
25
- * ⚠️ Activity WebSocket 不会广播用户自己的交易!
26
- * 验证跟单结果请使用 TradingService.getTrades()
27
- */
28
- // ============================================================================
29
- // SmartMoneyService
30
- // ============================================================================
31
- export class SmartMoneyService {
32
- walletService;
33
- realtimeService;
34
- tradingService;
35
- config;
36
- smartMoneyCache = new Map();
37
- smartMoneySet = new Set();
38
- cacheTimestamp = 0;
39
- activeSubscription = null;
40
- tradeHandlers = new Set();
41
- constructor(walletService, realtimeService, tradingService, config = {}) {
42
- this.walletService = walletService;
43
- this.realtimeService = realtimeService;
44
- this.tradingService = tradingService;
45
- this.config = {
46
- minPnl: config.minPnl ?? 1000,
47
- cacheTtl: config.cacheTtl ?? 300000,
48
- };
49
- }
50
- // ============================================================================
51
- // Smart Money Info
52
- // ============================================================================
53
- /**
54
- * Get list of Smart Money wallets from leaderboard
55
- */
56
- async getSmartMoneyList(limit = 100) {
57
- if (this.isCacheValid()) {
58
- return Array.from(this.smartMoneyCache.values());
59
- }
60
- const leaderboardPage = await this.walletService.getLeaderboard(0, limit);
61
- const entries = leaderboardPage.entries;
62
- const smartMoneyList = [];
63
- for (let i = 0; i < entries.length; i++) {
64
- const trader = entries[i];
65
- if (trader.pnl < this.config.minPnl)
66
- continue;
67
- const wallet = {
68
- address: trader.address.toLowerCase(),
69
- name: trader.userName,
70
- pnl: trader.pnl,
71
- volume: trader.volume,
72
- score: Math.min(100, Math.round((trader.pnl / 100000) * 50 + (trader.volume / 1000000) * 50)),
73
- rank: trader.rank ?? i + 1,
74
- };
75
- smartMoneyList.push(wallet);
76
- this.smartMoneyCache.set(wallet.address, wallet);
77
- this.smartMoneySet.add(wallet.address);
78
- }
79
- this.cacheTimestamp = Date.now();
80
- return smartMoneyList;
81
- }
82
- /**
83
- * Check if an address is Smart Money
84
- */
85
- async isSmartMoney(address) {
86
- const normalized = address.toLowerCase();
87
- if (this.isCacheValid()) {
88
- return this.smartMoneySet.has(normalized);
89
- }
90
- await this.getSmartMoneyList();
91
- return this.smartMoneySet.has(normalized);
92
- }
93
- /**
94
- * Get Smart Money info for an address
95
- */
96
- async getSmartMoneyInfo(address) {
97
- const normalized = address.toLowerCase();
98
- if (this.isCacheValid() && this.smartMoneyCache.has(normalized)) {
99
- return this.smartMoneyCache.get(normalized);
100
- }
101
- await this.getSmartMoneyList();
102
- return this.smartMoneyCache.get(normalized) || null;
103
- }
104
- // ============================================================================
105
- // Trade Subscription - 监听交易
106
- // ============================================================================
107
- /**
108
- * Subscribe to trades from specific addresses
109
- *
110
- * @example
111
- * ```typescript
112
- * const sub = smartMoneyService.subscribeSmartMoneyTrades(
113
- * (trade) => {
114
- * console.log(`${trade.traderName} ${trade.side} ${trade.size} @ ${trade.price}`);
115
- * },
116
- * { filterAddresses: ['0x1234...', '0x5678...'] }
117
- * );
118
- *
119
- * // Stop listening
120
- * sub.unsubscribe();
121
- * ```
122
- */
123
- subscribeSmartMoneyTrades(onTrade, options = {}) {
124
- this.tradeHandlers.add(onTrade);
125
- // Ensure cache is populated
126
- this.getSmartMoneyList().catch(() => { });
127
- // Start subscription if not active
128
- if (!this.activeSubscription) {
129
- this.activeSubscription = this.realtimeService.subscribeAllActivity({
130
- onTrade: (activityTrade) => {
131
- this.handleActivityTrade(activityTrade, options);
132
- },
133
- onError: (error) => {
134
- console.error('[SmartMoneyService] Subscription error:', error);
135
- },
136
- });
137
- }
138
- return {
139
- id: `smart_money_${Date.now()}`,
140
- unsubscribe: () => {
141
- this.tradeHandlers.delete(onTrade);
142
- if (this.tradeHandlers.size === 0 && this.activeSubscription) {
143
- this.activeSubscription.unsubscribe();
144
- this.activeSubscription = null;
145
- }
146
- },
147
- };
148
- }
149
- async handleActivityTrade(trade, options) {
150
- const rawAddress = trade.trader?.address;
151
- if (!rawAddress)
152
- return;
153
- const traderAddress = rawAddress.toLowerCase();
154
- // Address filter
155
- if (options.filterAddresses && options.filterAddresses.length > 0) {
156
- const normalized = options.filterAddresses.map(a => a.toLowerCase());
157
- if (!normalized.includes(traderAddress))
158
- return;
159
- }
160
- // Size filter
161
- if (options.minSize && trade.size < options.minSize)
162
- return;
163
- // Smart Money filter
164
- const isSmartMoney = this.smartMoneySet.has(traderAddress);
165
- if (options.smartMoneyOnly && !isSmartMoney)
166
- return;
167
- const smartMoneyTrade = {
168
- traderAddress,
169
- traderName: trade.trader?.name,
170
- conditionId: trade.conditionId,
171
- marketSlug: trade.marketSlug,
172
- side: trade.side,
173
- size: trade.size,
174
- price: trade.price,
175
- tokenId: trade.asset,
176
- outcome: trade.outcome,
177
- txHash: trade.transactionHash,
178
- timestamp: trade.timestamp,
179
- isSmartMoney,
180
- smartMoneyInfo: this.smartMoneyCache.get(traderAddress),
181
- };
182
- for (const handler of this.tradeHandlers) {
183
- try {
184
- handler(smartMoneyTrade);
185
- }
186
- catch (error) {
187
- console.error('[SmartMoneyService] Handler error:', error);
188
- }
189
- }
190
- }
191
- // ============================================================================
192
- // Auto Copy Trading - 自动跟单
193
- // ============================================================================
194
- /**
195
- * Start auto copy trading - 自动跟单
196
- *
197
- * @example
198
- * ```typescript
199
- * const sub = await smartMoneyService.startAutoCopyTrading({
200
- * targetAddresses: ['0x1234...'],
201
- * // 或者跟踪排行榜前N名
202
- * topN: 10,
203
- *
204
- * sizeScale: 0.1, // 10%
205
- * maxSizePerTrade: 50, // $50
206
- * maxSlippage: 0.03, // 3%
207
- * orderType: 'FOK',
208
- *
209
- * dryRun: true, // 测试模式
210
- *
211
- * onTrade: (trade, result) => console.log(result),
212
- * });
213
- *
214
- * // 停止
215
- * sub.stop();
216
- * ```
217
- */
218
- async startAutoCopyTrading(options) {
219
- const startTime = Date.now();
220
- // Build target list
221
- let targetAddresses = [];
222
- if (options.targetAddresses?.length) {
223
- targetAddresses = options.targetAddresses.map(a => a.toLowerCase());
224
- }
225
- if (options.topN && options.topN > 0) {
226
- const smartMoneyList = await this.getSmartMoneyList(options.topN);
227
- const topAddresses = smartMoneyList.map(w => w.address);
228
- targetAddresses = [...new Set([...targetAddresses, ...topAddresses])];
229
- }
230
- if (targetAddresses.length === 0) {
231
- throw new Error('No target addresses. Use targetAddresses or topN.');
232
- }
233
- // Stats
234
- const stats = {
235
- startTime,
236
- tradesDetected: 0,
237
- tradesExecuted: 0,
238
- tradesSkipped: 0,
239
- tradesFailed: 0,
240
- totalUsdcSpent: 0,
241
- };
242
- // Config
243
- const sizeScale = options.sizeScale ?? 0.1;
244
- const maxSizePerTrade = options.maxSizePerTrade ?? 50;
245
- const maxSlippage = options.maxSlippage ?? 0.03;
246
- const orderType = options.orderType ?? 'FOK';
247
- const minTradeSize = options.minTradeSize ?? 10;
248
- const sideFilter = options.sideFilter;
249
- const delay = options.delay ?? 0;
250
- const dryRun = options.dryRun ?? false;
251
- // Subscribe
252
- const subscription = this.subscribeSmartMoneyTrades(async (trade) => {
253
- stats.tradesDetected++;
254
- try {
255
- // Check target
256
- if (!targetAddresses.includes(trade.traderAddress.toLowerCase())) {
257
- return;
258
- }
259
- // Filters
260
- const tradeValue = trade.size * trade.price;
261
- if (tradeValue < minTradeSize) {
262
- stats.tradesSkipped++;
263
- return;
264
- }
265
- if (sideFilter && trade.side !== sideFilter) {
266
- stats.tradesSkipped++;
267
- return;
268
- }
269
- // Calculate size
270
- let copySize = trade.size * sizeScale;
271
- let copyValue = copySize * trade.price;
272
- // Enforce max size
273
- if (copyValue > maxSizePerTrade) {
274
- copySize = maxSizePerTrade / trade.price;
275
- copyValue = maxSizePerTrade;
276
- }
277
- // Polymarket minimum order is $1
278
- const MIN_ORDER_SIZE = 1;
279
- if (copyValue < MIN_ORDER_SIZE) {
280
- stats.tradesSkipped++;
281
- return;
282
- }
283
- // Delay
284
- if (delay > 0) {
285
- await new Promise(resolve => setTimeout(resolve, delay));
286
- }
287
- // Token
288
- const tokenId = trade.tokenId;
289
- if (!tokenId) {
290
- stats.tradesSkipped++;
291
- return;
292
- }
293
- // Price with slippage
294
- const slippagePrice = trade.side === 'BUY'
295
- ? trade.price * (1 + maxSlippage)
296
- : trade.price * (1 - maxSlippage);
297
- const usdcAmount = copyValue; // Already calculated above
298
- // Execute
299
- let result;
300
- if (dryRun) {
301
- result = { success: true, orderId: `dry_run_${Date.now()}` };
302
- console.log('[DRY RUN]', {
303
- trader: trade.traderAddress.slice(0, 10),
304
- side: trade.side,
305
- market: trade.marketSlug,
306
- copy: { size: copySize.toFixed(2), usdc: usdcAmount.toFixed(2) },
307
- });
308
- }
309
- else {
310
- result = await this.tradingService.createMarketOrder({
311
- tokenId,
312
- side: trade.side,
313
- amount: usdcAmount,
314
- price: slippagePrice,
315
- orderType,
316
- });
317
- }
318
- if (result.success) {
319
- stats.tradesExecuted++;
320
- stats.totalUsdcSpent += usdcAmount;
321
- }
322
- else {
323
- stats.tradesFailed++;
324
- }
325
- options.onTrade?.(trade, result);
326
- }
327
- catch (error) {
328
- stats.tradesFailed++;
329
- options.onError?.(error instanceof Error ? error : new Error(String(error)));
330
- }
331
- }, { filterAddresses: targetAddresses, minSize: minTradeSize });
332
- return {
333
- id: subscription.id,
334
- targetAddresses,
335
- startTime,
336
- isActive: true,
337
- stats,
338
- stop: () => subscription.unsubscribe(),
339
- getStats: () => ({ ...stats }),
340
- };
341
- }
342
- // ============================================================================
343
- // Leaderboard - 排行榜
344
- // ============================================================================
345
- /**
346
- * Get leaderboard by time period
347
- *
348
- * @example
349
- * ```typescript
350
- * // Get weekly top 100 by PnL
351
- * const leaderboard = await sdk.smartMoney.getLeaderboard({
352
- * period: 'week',
353
- * limit: 100,
354
- * sortBy: 'pnl'
355
- * });
356
- * ```
357
- */
358
- async getLeaderboard(options = {}) {
359
- const period = options.period ?? 'week';
360
- const limit = Math.min(options.limit ?? 50, 500);
361
- const sortBy = options.sortBy ?? 'pnl';
362
- const offset = Math.min(options.offset ?? 0, 10000);
363
- const entries = await this.walletService.getLeaderboardByPeriod(period, limit, sortBy, 'OVERALL', offset);
364
- return entries.map(e => ({
365
- address: e.address,
366
- rank: e.rank,
367
- pnl: e.pnl,
368
- volume: e.volume,
369
- tradeCount: e.tradeCount,
370
- userName: e.userName,
371
- profileImage: e.profileImage,
372
- }));
373
- }
374
- // ============================================================================
375
- // Wallet Report - 钱包报告
376
- // ============================================================================
377
- /**
378
- * Generate comprehensive wallet report
379
- *
380
- * @example
381
- * ```typescript
382
- * const report = await sdk.smartMoney.getWalletReport('0x...');
383
- * console.log(report.overview.totalPnL);
384
- * console.log(report.rankings.weekly?.rank);
385
- * ```
386
- */
387
- async getWalletReport(address) {
388
- // Fetch all data in parallel
389
- const [profile, positions, activitySummary, dailyPnl, weeklyPnl, monthlyPnl, allTimePnl,] = await Promise.all([
390
- this.walletService.getWalletProfile(address),
391
- this.walletService.getWalletPositions(address),
392
- this.walletService.getWalletActivity(address, 100),
393
- this.walletService.getUserPeriodPnl(address, 'day').catch(() => null),
394
- this.walletService.getUserPeriodPnl(address, 'week').catch(() => null),
395
- this.walletService.getUserPeriodPnl(address, 'month').catch(() => null),
396
- this.walletService.getUserPeriodPnl(address, 'all').catch(() => null),
397
- ]);
398
- // Calculate performance metrics
399
- const winningPositions = positions.filter(p => (p.cashPnl ?? 0) > 0);
400
- const losingPositions = positions.filter(p => (p.cashPnl ?? 0) < 0);
401
- // Use initialValue (cost basis) instead of currentValue (which is 0 for settled markets)
402
- const avgPositionSize = positions.length > 0
403
- ? positions.reduce((sum, p) => sum + (p.initialValue ?? (p.size * p.avgPrice)), 0) / positions.length
404
- : 0;
405
- const avgWinAmount = winningPositions.length > 0
406
- ? winningPositions.reduce((sum, p) => sum + (p.cashPnl ?? 0), 0) / winningPositions.length
407
- : 0;
408
- const avgLossAmount = losingPositions.length > 0
409
- ? Math.abs(losingPositions.reduce((sum, p) => sum + (p.cashPnl ?? 0), 0) / losingPositions.length)
410
- : 0;
411
- const uniqueMarkets = new Set(positions.map(p => p.conditionId)).size;
412
- // Category analysis
413
- const categoryStats = this.analyzeCategories(positions);
414
- // Recent trades
415
- const trades = activitySummary.activities.filter(a => a.type === 'TRADE');
416
- const recentTrades = trades.slice(0, 10);
417
- // Build rankings
418
- const toRanking = (entry) => {
419
- if (!entry)
420
- return null;
421
- return { rank: entry.rank, pnl: entry.pnl, volume: entry.volume };
422
- };
423
- return {
424
- address,
425
- generatedAt: new Date(),
426
- overview: {
427
- totalPnL: profile.totalPnL,
428
- realizedPnL: profile.realizedPnL,
429
- unrealizedPnL: profile.unrealizedPnL,
430
- positionCount: positions.length,
431
- tradeCount: profile.tradeCount,
432
- smartScore: profile.smartScore,
433
- lastActiveAt: profile.lastActiveAt,
434
- },
435
- rankings: {
436
- daily: toRanking(dailyPnl),
437
- weekly: toRanking(weeklyPnl),
438
- monthly: toRanking(monthlyPnl),
439
- allTime: toRanking(allTimePnl),
440
- },
441
- performance: {
442
- winRate: positions.length > 0 ? (winningPositions.length / positions.length) * 100 : 0,
443
- winCount: winningPositions.length,
444
- lossCount: losingPositions.length,
445
- avgPositionSize,
446
- avgWinAmount,
447
- avgLossAmount,
448
- uniqueMarkets,
449
- },
450
- categoryBreakdown: categoryStats,
451
- topPositions: positions
452
- .sort((a, b) => Math.abs(b.cashPnl ?? 0) - Math.abs(a.cashPnl ?? 0))
453
- .slice(0, 10)
454
- .map(p => ({
455
- market: p.title,
456
- slug: p.slug,
457
- outcome: p.outcome,
458
- size: p.size,
459
- avgPrice: p.avgPrice,
460
- currentPrice: p.curPrice,
461
- pnl: p.cashPnl ?? 0,
462
- percentPnl: p.percentPnl,
463
- })),
464
- recentTrades: recentTrades.map(t => ({
465
- timestamp: t.timestamp,
466
- side: t.side,
467
- size: t.size,
468
- price: t.price,
469
- usdcSize: t.usdcSize,
470
- // Include market info for display
471
- title: t.title,
472
- slug: t.slug,
473
- outcome: t.outcome,
474
- conditionId: t.conditionId,
475
- })),
476
- activitySummary: {
477
- totalBuys: activitySummary.summary.totalBuys,
478
- totalSells: activitySummary.summary.totalSells,
479
- buyVolume: activitySummary.summary.buyVolume,
480
- sellVolume: activitySummary.summary.sellVolume,
481
- activeMarketsCount: activitySummary.summary.activeMarkets.length,
482
- },
483
- };
484
- }
485
- /**
486
- * Analyze position categories based on title keywords
487
- */
488
- analyzeCategories(positions) {
489
- const categoryStats = {};
490
- for (const pos of positions) {
491
- const title = (pos.title || '').toLowerCase();
492
- let category = 'other';
493
- if (title.includes('trump') || title.includes('biden') || title.includes('election') || title.includes('president') || title.includes('congress')) {
494
- category = 'politics';
495
- }
496
- else if (title.includes('bitcoin') || title.includes('btc') || title.includes('eth') || title.includes('crypto') || title.includes('solana')) {
497
- category = 'crypto';
498
- }
499
- else if (title.includes('nba') || title.includes('nfl') || title.includes('soccer') || title.includes('football') || title.includes('ufc') || title.includes('mlb')) {
500
- category = 'sports';
501
- }
502
- else if (title.includes('fed') || title.includes('inflation') || title.includes('gdp') || title.includes('interest rate') || title.includes('unemployment')) {
503
- category = 'economy';
504
- }
505
- else if (title.includes('ai') || title.includes('openai') || title.includes('google') || title.includes('apple') || title.includes('tesla')) {
506
- category = 'tech';
507
- }
508
- if (!categoryStats[category]) {
509
- categoryStats[category] = { count: 0, totalPnl: 0 };
510
- }
511
- categoryStats[category].count++;
512
- categoryStats[category].totalPnl += (pos.cashPnl ?? 0);
513
- }
514
- return Object.entries(categoryStats)
515
- .map(([category, stats]) => ({
516
- category,
517
- positionCount: stats.count,
518
- totalPnl: stats.totalPnl,
519
- }))
520
- .sort((a, b) => b.positionCount - a.positionCount);
521
- }
522
- // ============================================================================
523
- // Wallet Comparison - 钱包对比
524
- // ============================================================================
525
- /**
526
- * Compare multiple wallets
527
- *
528
- * @example
529
- * ```typescript
530
- * const comparison = await sdk.smartMoney.compareWallets(
531
- * ['0x111...', '0x222...', '0x333...'],
532
- * { period: 'week' }
533
- * );
534
- * ```
535
- */
536
- async compareWallets(addresses, options = {}) {
537
- const period = options.period ?? 'week';
538
- // Fetch data for all wallets in parallel
539
- const results = await Promise.all(addresses.map(async (address) => {
540
- const [periodPnl, positions] = await Promise.all([
541
- this.walletService.getUserPeriodPnl(address, period).catch(() => null),
542
- this.walletService.getWalletPositions(address).catch(() => []),
543
- ]);
544
- const winningPositions = positions.filter(p => (p.cashPnl ?? 0) > 0);
545
- const winRate = positions.length > 0
546
- ? (winningPositions.length / positions.length) * 100
547
- : 0;
548
- return {
549
- address,
550
- userName: periodPnl?.userName,
551
- rank: periodPnl?.rank ?? null,
552
- pnl: periodPnl?.pnl ?? 0,
553
- volume: periodPnl?.volume ?? 0,
554
- positionCount: positions.length,
555
- winRate,
556
- };
557
- }));
558
- // Sort by PnL descending
559
- results.sort((a, b) => b.pnl - a.pnl);
560
- return {
561
- period,
562
- generatedAt: new Date(),
563
- wallets: results,
564
- };
565
- }
566
- // ============================================================================
567
- // Utilities
568
- // ============================================================================
569
- isCacheValid() {
570
- return Date.now() - this.cacheTimestamp < this.config.cacheTtl && this.smartMoneyCache.size > 0;
571
- }
572
- disconnect() {
573
- if (this.activeSubscription) {
574
- this.activeSubscription.unsubscribe();
575
- this.activeSubscription = null;
576
- }
577
- this.tradeHandlers.clear();
578
- this.smartMoneyCache.clear();
579
- this.smartMoneySet.clear();
580
- }
581
- }
582
- //# sourceMappingURL=smart-money-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-money-service.js","sourceRoot":"","sources":["../../src/services/smart-money-service.ts"],"names":[],"mappings":"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"}