@catalyst-team/poly-sdk 0.3.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 (317) hide show
  1. package/README.md +133 -1
  2. package/README.zh-CN.md +2 -0
  3. package/dist/scripts/dip-arb/auto-trade.d.ts +20 -0
  4. package/dist/scripts/dip-arb/auto-trade.d.ts.map +1 -0
  5. package/dist/scripts/dip-arb/auto-trade.js +373 -0
  6. package/dist/scripts/dip-arb/auto-trade.js.map +1 -0
  7. package/dist/scripts/dip-arb/example-basic.d.ts +30 -0
  8. package/dist/scripts/dip-arb/example-basic.d.ts.map +1 -0
  9. package/dist/scripts/dip-arb/example-basic.js +222 -0
  10. package/dist/scripts/dip-arb/example-basic.js.map +1 -0
  11. package/dist/scripts/dip-arb/redeem-positions.d.ts +11 -0
  12. package/dist/scripts/dip-arb/redeem-positions.d.ts.map +1 -0
  13. package/dist/scripts/dip-arb/redeem-positions.js +201 -0
  14. package/dist/scripts/dip-arb/redeem-positions.js.map +1 -0
  15. package/dist/scripts/dip-arb/scan-markets.d.ts +6 -0
  16. package/dist/scripts/dip-arb/scan-markets.d.ts.map +1 -0
  17. package/dist/scripts/dip-arb/scan-markets.js +73 -0
  18. package/dist/scripts/dip-arb/scan-markets.js.map +1 -0
  19. package/dist/src/__tests__/integration/arbitrage-service.integration.test.d.ts.map +1 -0
  20. package/dist/src/__tests__/integration/arbitrage-service.integration.test.js.map +1 -0
  21. package/dist/src/__tests__/integration/bridge-client.integration.test.d.ts.map +1 -0
  22. package/dist/src/__tests__/integration/bridge-client.integration.test.js.map +1 -0
  23. package/dist/src/__tests__/integration/ctf-client.integration.test.d.ts.map +1 -0
  24. package/dist/src/__tests__/integration/ctf-client.integration.test.js.map +1 -0
  25. package/dist/src/__tests__/integration/data-api.integration.test.d.ts.map +1 -0
  26. package/dist/{__tests__ → src/__tests__}/integration/data-api.integration.test.js +21 -18
  27. package/dist/src/__tests__/integration/data-api.integration.test.js.map +1 -0
  28. package/dist/src/__tests__/integration/gamma-api.integration.test.d.ts.map +1 -0
  29. package/dist/src/__tests__/integration/gamma-api.integration.test.js.map +1 -0
  30. package/dist/src/__tests__/integration/market-service.integration.test.d.ts.map +1 -0
  31. package/dist/{__tests__ → src/__tests__}/integration/market-service.integration.test.js +7 -0
  32. package/dist/src/__tests__/integration/market-service.integration.test.js.map +1 -0
  33. package/dist/src/__tests__/integration/realtime-service-v2.integration.test.d.ts.map +1 -0
  34. package/dist/src/__tests__/integration/realtime-service-v2.integration.test.js.map +1 -0
  35. package/dist/src/__tests__/integration/trading-service.integration.test.d.ts.map +1 -0
  36. package/dist/src/__tests__/integration/trading-service.integration.test.js.map +1 -0
  37. package/dist/src/__tests__/test-utils.d.ts.map +1 -0
  38. package/dist/src/__tests__/test-utils.js.map +1 -0
  39. package/dist/src/catalyst/catalyst-query-service.d.ts +109 -0
  40. package/dist/src/catalyst/catalyst-query-service.d.ts.map +1 -0
  41. package/dist/src/catalyst/catalyst-query-service.js +141 -0
  42. package/dist/src/catalyst/catalyst-query-service.js.map +1 -0
  43. package/dist/src/catalyst/catalyst-realtime-service.d.ts +40 -0
  44. package/dist/src/catalyst/catalyst-realtime-service.d.ts.map +1 -0
  45. package/dist/src/catalyst/catalyst-realtime-service.js +125 -0
  46. package/dist/src/catalyst/catalyst-realtime-service.js.map +1 -0
  47. package/dist/src/catalyst/index.d.ts +4 -0
  48. package/dist/src/catalyst/index.d.ts.map +1 -0
  49. package/dist/src/catalyst/index.js +4 -0
  50. package/dist/src/catalyst/index.js.map +1 -0
  51. package/dist/src/catalyst/types.d.ts +178 -0
  52. package/dist/src/catalyst/types.d.ts.map +1 -0
  53. package/dist/src/catalyst/types.js +2 -0
  54. package/dist/src/catalyst/types.js.map +1 -0
  55. package/dist/src/clients/bridge-client.d.ts.map +1 -0
  56. package/dist/src/clients/bridge-client.js.map +1 -0
  57. package/dist/{clients → src/clients}/ctf-client.d.ts +6 -4
  58. package/dist/src/clients/ctf-client.d.ts.map +1 -0
  59. package/dist/src/clients/ctf-client.js.map +1 -0
  60. package/dist/{clients → src/clients}/data-api.d.ts +94 -20
  61. package/dist/src/clients/data-api.d.ts.map +1 -0
  62. package/dist/{clients → src/clients}/data-api.js +119 -52
  63. package/dist/src/clients/data-api.js.map +1 -0
  64. package/dist/{clients → src/clients}/gamma-api.d.ts +74 -0
  65. package/dist/src/clients/gamma-api.d.ts.map +1 -0
  66. package/dist/{clients → src/clients}/gamma-api.js +7 -0
  67. package/dist/src/clients/gamma-api.js.map +1 -0
  68. package/dist/src/clients/subgraph.d.ts.map +1 -0
  69. package/dist/src/clients/subgraph.js.map +1 -0
  70. package/dist/src/core/cache-adapter-bridge.d.ts.map +1 -0
  71. package/dist/src/core/cache-adapter-bridge.js.map +1 -0
  72. package/dist/{core → src/core}/cache.d.ts +2 -0
  73. package/dist/src/core/cache.d.ts.map +1 -0
  74. package/dist/{core → src/core}/cache.js +4 -0
  75. package/dist/src/core/cache.js.map +1 -0
  76. package/dist/src/core/errors.d.ts.map +1 -0
  77. package/dist/src/core/errors.js.map +1 -0
  78. package/dist/{core → src/core}/rate-limiter.d.ts +2 -1
  79. package/dist/src/core/rate-limiter.d.ts.map +1 -0
  80. package/dist/{core → src/core}/rate-limiter.js +7 -0
  81. package/dist/src/core/rate-limiter.js.map +1 -0
  82. package/dist/{core → src/core}/types.d.ts +105 -1
  83. package/dist/src/core/types.d.ts.map +1 -0
  84. package/dist/src/core/types.js +49 -0
  85. package/dist/src/core/types.js.map +1 -0
  86. package/dist/src/core/types.test.d.ts.map +1 -0
  87. package/dist/src/core/types.test.js.map +1 -0
  88. package/dist/src/core/unified-cache.d.ts.map +1 -0
  89. package/dist/src/core/unified-cache.js.map +1 -0
  90. package/dist/{index.d.ts → src/index.d.ts} +24 -5
  91. package/dist/src/index.d.ts.map +1 -0
  92. package/dist/{index.js → src/index.js} +38 -4
  93. package/dist/src/index.js.map +1 -0
  94. package/dist/src/insider-scan/index.d.ts +3 -0
  95. package/dist/src/insider-scan/index.d.ts.map +1 -0
  96. package/dist/src/insider-scan/index.js +3 -0
  97. package/dist/src/insider-scan/index.js.map +1 -0
  98. package/dist/src/insider-scan/insider-scan-service.d.ts +63 -0
  99. package/dist/src/insider-scan/insider-scan-service.d.ts.map +1 -0
  100. package/dist/src/insider-scan/insider-scan-service.js +153 -0
  101. package/dist/src/insider-scan/insider-scan-service.js.map +1 -0
  102. package/dist/src/insider-scan/types.d.ts +205 -0
  103. package/dist/src/insider-scan/types.d.ts.map +1 -0
  104. package/dist/src/insider-scan/types.js +7 -0
  105. package/dist/src/insider-scan/types.js.map +1 -0
  106. package/dist/src/services/arbitrage-service.d.ts.map +1 -0
  107. package/dist/{services → src/services}/arbitrage-service.js +14 -4
  108. package/dist/src/services/arbitrage-service.js.map +1 -0
  109. package/dist/src/services/authorization-service.d.ts.map +1 -0
  110. package/dist/src/services/authorization-service.js.map +1 -0
  111. package/dist/src/services/binance-service.d.ts +154 -0
  112. package/dist/src/services/binance-service.d.ts.map +1 -0
  113. package/dist/src/services/binance-service.js +266 -0
  114. package/dist/src/services/binance-service.js.map +1 -0
  115. package/dist/src/services/dip-arb-service.d.ts +245 -0
  116. package/dist/src/services/dip-arb-service.d.ts.map +1 -0
  117. package/dist/src/services/dip-arb-service.js +1865 -0
  118. package/dist/src/services/dip-arb-service.js.map +1 -0
  119. package/dist/src/services/dip-arb-types.d.ts +553 -0
  120. package/dist/src/services/dip-arb-types.d.ts.map +1 -0
  121. package/dist/src/services/dip-arb-types.js +164 -0
  122. package/dist/src/services/dip-arb-types.js.map +1 -0
  123. package/dist/src/services/market-service.d.ts +431 -0
  124. package/dist/src/services/market-service.d.ts.map +1 -0
  125. package/dist/{services → src/services}/market-service.js +501 -17
  126. package/dist/src/services/market-service.js.map +1 -0
  127. package/dist/{services → src/services}/onchain-service.d.ts +10 -2
  128. package/dist/src/services/onchain-service.d.ts.map +1 -0
  129. package/dist/{services → src/services}/onchain-service.js +8 -0
  130. package/dist/src/services/onchain-service.js.map +1 -0
  131. package/dist/{services → src/services}/realtime-service-v2.d.ts +6 -0
  132. package/dist/src/services/realtime-service-v2.d.ts.map +1 -0
  133. package/dist/{services → src/services}/realtime-service-v2.js +44 -8
  134. package/dist/src/services/realtime-service-v2.js.map +1 -0
  135. package/dist/src/services/smart-money-service.d.ts +769 -0
  136. package/dist/src/services/smart-money-service.d.ts.map +1 -0
  137. package/dist/src/services/smart-money-service.js +1448 -0
  138. package/dist/src/services/smart-money-service.js.map +1 -0
  139. package/dist/src/services/swap-service.d.ts.map +1 -0
  140. package/dist/src/services/swap-service.js.map +1 -0
  141. package/dist/{services → src/services}/trading-service.d.ts +26 -0
  142. package/dist/src/services/trading-service.d.ts.map +1 -0
  143. package/dist/{services → src/services}/trading-service.js +72 -1
  144. package/dist/src/services/trading-service.js.map +1 -0
  145. package/dist/{services → src/services}/wallet-service.d.ts +81 -4
  146. package/dist/src/services/wallet-service.d.ts.map +1 -0
  147. package/dist/{services → src/services}/wallet-service.js +126 -8
  148. package/dist/src/services/wallet-service.js.map +1 -0
  149. package/dist/src/signal/index.d.ts +8 -0
  150. package/dist/src/signal/index.d.ts.map +1 -0
  151. package/dist/src/signal/index.js +7 -0
  152. package/dist/src/signal/index.js.map +1 -0
  153. package/dist/src/signal/signal-service.d.ts +89 -0
  154. package/dist/src/signal/signal-service.d.ts.map +1 -0
  155. package/dist/src/signal/signal-service.js +226 -0
  156. package/dist/src/signal/signal-service.js.map +1 -0
  157. package/dist/src/signal/types.d.ts +280 -0
  158. package/dist/src/signal/types.d.ts.map +1 -0
  159. package/dist/src/signal/types.js +7 -0
  160. package/dist/src/signal/types.js.map +1 -0
  161. package/dist/src/utils/price-utils.d.ts.map +1 -0
  162. package/dist/src/utils/price-utils.js.map +1 -0
  163. package/dist/src/utils/price-utils.test.d.ts.map +1 -0
  164. package/dist/src/utils/price-utils.test.js.map +1 -0
  165. package/dist/src/wallet-report/index.d.ts +3 -0
  166. package/dist/src/wallet-report/index.d.ts.map +1 -0
  167. package/dist/src/wallet-report/index.js +3 -0
  168. package/dist/src/wallet-report/index.js.map +1 -0
  169. package/dist/src/wallet-report/types.d.ts +187 -0
  170. package/dist/src/wallet-report/types.d.ts.map +1 -0
  171. package/dist/src/wallet-report/types.js +7 -0
  172. package/dist/src/wallet-report/types.js.map +1 -0
  173. package/dist/src/wallet-report/wallet-report-service.d.ts +91 -0
  174. package/dist/src/wallet-report/wallet-report-service.d.ts.map +1 -0
  175. package/dist/src/wallet-report/wallet-report-service.js +208 -0
  176. package/dist/src/wallet-report/wallet-report-service.js.map +1 -0
  177. package/dist/src/wallets/hot-wallet-service.d.ts +162 -0
  178. package/dist/src/wallets/hot-wallet-service.d.ts.map +1 -0
  179. package/dist/src/wallets/hot-wallet-service.js +251 -0
  180. package/dist/src/wallets/hot-wallet-service.js.map +1 -0
  181. package/dist/src/wallets/index.d.ts +15 -0
  182. package/dist/src/wallets/index.d.ts.map +1 -0
  183. package/dist/src/wallets/index.js +26 -0
  184. package/dist/src/wallets/index.js.map +1 -0
  185. package/package.json +7 -7
  186. package/dist/__tests__/clob-api.test.d.ts +0 -5
  187. package/dist/__tests__/clob-api.test.d.ts.map +0 -1
  188. package/dist/__tests__/clob-api.test.js +0 -240
  189. package/dist/__tests__/clob-api.test.js.map +0 -1
  190. package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts.map +0 -1
  191. package/dist/__tests__/integration/arbitrage-service.integration.test.js.map +0 -1
  192. package/dist/__tests__/integration/bridge-client.integration.test.d.ts.map +0 -1
  193. package/dist/__tests__/integration/bridge-client.integration.test.js.map +0 -1
  194. package/dist/__tests__/integration/clob-api.integration.test.d.ts +0 -13
  195. package/dist/__tests__/integration/clob-api.integration.test.d.ts.map +0 -1
  196. package/dist/__tests__/integration/clob-api.integration.test.js +0 -170
  197. package/dist/__tests__/integration/clob-api.integration.test.js.map +0 -1
  198. package/dist/__tests__/integration/ctf-client.integration.test.d.ts.map +0 -1
  199. package/dist/__tests__/integration/ctf-client.integration.test.js.map +0 -1
  200. package/dist/__tests__/integration/data-api.integration.test.d.ts.map +0 -1
  201. package/dist/__tests__/integration/data-api.integration.test.js.map +0 -1
  202. package/dist/__tests__/integration/gamma-api.integration.test.d.ts.map +0 -1
  203. package/dist/__tests__/integration/gamma-api.integration.test.js.map +0 -1
  204. package/dist/__tests__/integration/market-service.integration.test.d.ts.map +0 -1
  205. package/dist/__tests__/integration/market-service.integration.test.js.map +0 -1
  206. package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts.map +0 -1
  207. package/dist/__tests__/integration/realtime-service-v2.integration.test.js.map +0 -1
  208. package/dist/__tests__/integration/trading-service.integration.test.d.ts.map +0 -1
  209. package/dist/__tests__/integration/trading-service.integration.test.js.map +0 -1
  210. package/dist/__tests__/test-utils.d.ts.map +0 -1
  211. package/dist/__tests__/test-utils.js.map +0 -1
  212. package/dist/clients/bridge-client.d.ts.map +0 -1
  213. package/dist/clients/bridge-client.js.map +0 -1
  214. package/dist/clients/clob-api.d.ts +0 -391
  215. package/dist/clients/clob-api.d.ts.map +0 -1
  216. package/dist/clients/clob-api.js +0 -448
  217. package/dist/clients/clob-api.js.map +0 -1
  218. package/dist/clients/ctf-client.d.ts.map +0 -1
  219. package/dist/clients/ctf-client.js.map +0 -1
  220. package/dist/clients/data-api.d.ts.map +0 -1
  221. package/dist/clients/data-api.js.map +0 -1
  222. package/dist/clients/gamma-api.d.ts.map +0 -1
  223. package/dist/clients/gamma-api.js.map +0 -1
  224. package/dist/clients/subgraph.d.ts.map +0 -1
  225. package/dist/clients/subgraph.js.map +0 -1
  226. package/dist/clients/trading-client.d.ts +0 -252
  227. package/dist/clients/trading-client.d.ts.map +0 -1
  228. package/dist/clients/trading-client.js +0 -543
  229. package/dist/clients/trading-client.js.map +0 -1
  230. package/dist/clients/websocket-manager.d.ts +0 -103
  231. package/dist/clients/websocket-manager.d.ts.map +0 -1
  232. package/dist/clients/websocket-manager.js +0 -200
  233. package/dist/clients/websocket-manager.js.map +0 -1
  234. package/dist/core/cache-adapter-bridge.d.ts.map +0 -1
  235. package/dist/core/cache-adapter-bridge.js.map +0 -1
  236. package/dist/core/cache.d.ts.map +0 -1
  237. package/dist/core/cache.js.map +0 -1
  238. package/dist/core/errors.d.ts.map +0 -1
  239. package/dist/core/errors.js.map +0 -1
  240. package/dist/core/rate-limiter.d.ts.map +0 -1
  241. package/dist/core/rate-limiter.js.map +0 -1
  242. package/dist/core/types.d.ts.map +0 -1
  243. package/dist/core/types.js +0 -19
  244. package/dist/core/types.js.map +0 -1
  245. package/dist/core/types.test.d.ts.map +0 -1
  246. package/dist/core/types.test.js.map +0 -1
  247. package/dist/core/unified-cache.d.ts.map +0 -1
  248. package/dist/core/unified-cache.js.map +0 -1
  249. package/dist/index.d.ts.map +0 -1
  250. package/dist/index.js.map +0 -1
  251. package/dist/services/arbitrage-service.d.ts.map +0 -1
  252. package/dist/services/arbitrage-service.js.map +0 -1
  253. package/dist/services/authorization-service.d.ts.map +0 -1
  254. package/dist/services/authorization-service.js.map +0 -1
  255. package/dist/services/market-service.d.ts +0 -208
  256. package/dist/services/market-service.d.ts.map +0 -1
  257. package/dist/services/market-service.js.map +0 -1
  258. package/dist/services/onchain-service.d.ts.map +0 -1
  259. package/dist/services/onchain-service.js.map +0 -1
  260. package/dist/services/realtime-service-v2.d.ts.map +0 -1
  261. package/dist/services/realtime-service-v2.js.map +0 -1
  262. package/dist/services/realtime-service.d.ts +0 -82
  263. package/dist/services/realtime-service.d.ts.map +0 -1
  264. package/dist/services/realtime-service.js +0 -182
  265. package/dist/services/realtime-service.js.map +0 -1
  266. package/dist/services/smart-money-service.d.ts +0 -196
  267. package/dist/services/smart-money-service.d.ts.map +0 -1
  268. package/dist/services/smart-money-service.js +0 -358
  269. package/dist/services/smart-money-service.js.map +0 -1
  270. package/dist/services/swap-service.d.ts.map +0 -1
  271. package/dist/services/swap-service.js.map +0 -1
  272. package/dist/services/trading-service.d.ts.map +0 -1
  273. package/dist/services/trading-service.js.map +0 -1
  274. package/dist/services/wallet-service.d.ts.map +0 -1
  275. package/dist/services/wallet-service.js.map +0 -1
  276. package/dist/utils/price-utils.d.ts.map +0 -1
  277. package/dist/utils/price-utils.js.map +0 -1
  278. package/dist/utils/price-utils.test.d.ts.map +0 -1
  279. package/dist/utils/price-utils.test.js.map +0 -1
  280. /package/dist/{__tests__ → src/__tests__}/integration/arbitrage-service.integration.test.d.ts +0 -0
  281. /package/dist/{__tests__ → src/__tests__}/integration/arbitrage-service.integration.test.js +0 -0
  282. /package/dist/{__tests__ → src/__tests__}/integration/bridge-client.integration.test.d.ts +0 -0
  283. /package/dist/{__tests__ → src/__tests__}/integration/bridge-client.integration.test.js +0 -0
  284. /package/dist/{__tests__ → src/__tests__}/integration/ctf-client.integration.test.d.ts +0 -0
  285. /package/dist/{__tests__ → src/__tests__}/integration/ctf-client.integration.test.js +0 -0
  286. /package/dist/{__tests__ → src/__tests__}/integration/data-api.integration.test.d.ts +0 -0
  287. /package/dist/{__tests__ → src/__tests__}/integration/gamma-api.integration.test.d.ts +0 -0
  288. /package/dist/{__tests__ → src/__tests__}/integration/gamma-api.integration.test.js +0 -0
  289. /package/dist/{__tests__ → src/__tests__}/integration/market-service.integration.test.d.ts +0 -0
  290. /package/dist/{__tests__ → src/__tests__}/integration/realtime-service-v2.integration.test.d.ts +0 -0
  291. /package/dist/{__tests__ → src/__tests__}/integration/realtime-service-v2.integration.test.js +0 -0
  292. /package/dist/{__tests__ → src/__tests__}/integration/trading-service.integration.test.d.ts +0 -0
  293. /package/dist/{__tests__ → src/__tests__}/integration/trading-service.integration.test.js +0 -0
  294. /package/dist/{__tests__ → src/__tests__}/test-utils.d.ts +0 -0
  295. /package/dist/{__tests__ → src/__tests__}/test-utils.js +0 -0
  296. /package/dist/{clients → src/clients}/bridge-client.d.ts +0 -0
  297. /package/dist/{clients → src/clients}/bridge-client.js +0 -0
  298. /package/dist/{clients → src/clients}/ctf-client.js +0 -0
  299. /package/dist/{clients → src/clients}/subgraph.d.ts +0 -0
  300. /package/dist/{clients → src/clients}/subgraph.js +0 -0
  301. /package/dist/{core → src/core}/cache-adapter-bridge.d.ts +0 -0
  302. /package/dist/{core → src/core}/cache-adapter-bridge.js +0 -0
  303. /package/dist/{core → src/core}/errors.d.ts +0 -0
  304. /package/dist/{core → src/core}/errors.js +0 -0
  305. /package/dist/{core → src/core}/types.test.d.ts +0 -0
  306. /package/dist/{core → src/core}/types.test.js +0 -0
  307. /package/dist/{core → src/core}/unified-cache.d.ts +0 -0
  308. /package/dist/{core → src/core}/unified-cache.js +0 -0
  309. /package/dist/{services → src/services}/arbitrage-service.d.ts +0 -0
  310. /package/dist/{services → src/services}/authorization-service.d.ts +0 -0
  311. /package/dist/{services → src/services}/authorization-service.js +0 -0
  312. /package/dist/{services → src/services}/swap-service.d.ts +0 -0
  313. /package/dist/{services → src/services}/swap-service.js +0 -0
  314. /package/dist/{utils → src/utils}/price-utils.d.ts +0 -0
  315. /package/dist/{utils → src/utils}/price-utils.js +0 -0
  316. /package/dist/{utils → src/utils}/price-utils.test.d.ts +0 -0
  317. /package/dist/{utils → src/utils}/price-utils.test.js +0 -0
@@ -0,0 +1,769 @@
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
+ import type { WalletService, TimePeriod } from './wallet-service.js';
29
+ import type { RealtimeServiceV2 } from './realtime-service-v2.js';
30
+ import type { TradingService, OrderResult } from './trading-service.js';
31
+ import type { DataApiClient } from '../clients/data-api.js';
32
+ /**
33
+ * Market category for classification
34
+ */
35
+ export type MarketCategory = 'crypto' | 'politics' | 'sports' | 'entertainment' | 'economics' | 'science' | 'other';
36
+ /**
37
+ * Keywords for market categorization by category
38
+ */
39
+ export declare const CATEGORY_KEYWORDS: Record<MarketCategory, RegExp>;
40
+ /**
41
+ * Categorize a market based on its title
42
+ *
43
+ * @param title - Market title to categorize
44
+ * @returns The market category
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * import { categorizeMarket } from '@catalyst-team/poly-sdk';
49
+ *
50
+ * categorizeMarket('Will BTC hit $100k?'); // 'crypto'
51
+ * categorizeMarket('Trump wins 2024?'); // 'politics'
52
+ * categorizeMarket('Lakers win NBA?'); // 'sports'
53
+ * categorizeMarket('Random event?'); // 'other'
54
+ * ```
55
+ */
56
+ export declare function categorizeMarket(title: string): MarketCategory;
57
+ /**
58
+ * Smart Money wallet information
59
+ */
60
+ export interface SmartMoneyWallet {
61
+ address: string;
62
+ name?: string;
63
+ pnl: number;
64
+ volume: number;
65
+ score: number;
66
+ rank?: number;
67
+ }
68
+ /**
69
+ * Smart Money trade from Activity WebSocket
70
+ */
71
+ export interface SmartMoneyTrade {
72
+ traderAddress: string;
73
+ traderName?: string;
74
+ conditionId?: string;
75
+ marketSlug?: string;
76
+ side: 'BUY' | 'SELL';
77
+ size: number;
78
+ price: number;
79
+ tokenId?: string;
80
+ outcome?: string;
81
+ txHash?: string;
82
+ timestamp: number;
83
+ isSmartMoney: boolean;
84
+ smartMoneyInfo?: SmartMoneyWallet;
85
+ }
86
+ /**
87
+ * Auto copy trading options
88
+ */
89
+ export interface AutoCopyTradingOptions {
90
+ /** Specific wallet addresses to follow */
91
+ targetAddresses?: string[];
92
+ /** Follow top N from leaderboard */
93
+ topN?: number;
94
+ /** Scale factor for size (0.1 = 10%) */
95
+ sizeScale?: number;
96
+ /** Maximum USDC per trade */
97
+ maxSizePerTrade?: number;
98
+ /** Maximum slippage (e.g., 0.03 = 3%) */
99
+ maxSlippage?: number;
100
+ /** Order type: FOK or FAK */
101
+ orderType?: 'FOK' | 'FAK';
102
+ /** Delay before executing (ms) */
103
+ delay?: number;
104
+ /** Minimum trade value to copy (USDC) */
105
+ minTradeSize?: number;
106
+ /** Only copy BUY or SELL trades */
107
+ sideFilter?: 'BUY' | 'SELL';
108
+ /** Dry run mode */
109
+ dryRun?: boolean;
110
+ /** Callbacks */
111
+ onTrade?: (trade: SmartMoneyTrade, result: OrderResult) => void;
112
+ onError?: (error: Error) => void;
113
+ }
114
+ /**
115
+ * Auto copy trading statistics
116
+ */
117
+ export interface AutoCopyTradingStats {
118
+ startTime: number;
119
+ tradesDetected: number;
120
+ tradesExecuted: number;
121
+ tradesSkipped: number;
122
+ tradesFailed: number;
123
+ totalUsdcSpent: number;
124
+ }
125
+ /**
126
+ * Auto copy trading subscription
127
+ */
128
+ export interface AutoCopyTradingSubscription {
129
+ id: string;
130
+ targetAddresses: string[];
131
+ startTime: number;
132
+ isActive: boolean;
133
+ stats: AutoCopyTradingStats;
134
+ stop: () => void;
135
+ getStats: () => AutoCopyTradingStats;
136
+ }
137
+ /**
138
+ * Service configuration
139
+ */
140
+ export interface SmartMoneyServiceConfig {
141
+ /** Minimum PnL to be considered Smart Money (default: $1000) */
142
+ minPnl?: number;
143
+ /** Cache TTL (default: 300000 = 5 min) */
144
+ cacheTtl?: number;
145
+ }
146
+ /**
147
+ * Leaderboard query options
148
+ */
149
+ export interface LeaderboardOptions {
150
+ /** Time period: 'day' | 'week' | 'month' | 'all' */
151
+ period?: TimePeriod;
152
+ /** Maximum entries (default: 50, max: 500) */
153
+ limit?: number;
154
+ /** Sort by: 'pnl' | 'volume' */
155
+ sortBy?: 'pnl' | 'volume';
156
+ /** Pagination offset (default: 0, max: 10000) */
157
+ offset?: number;
158
+ }
159
+ /**
160
+ * Smart Money Leaderboard entry (extended from PeriodLeaderboardEntry)
161
+ */
162
+ export interface SmartMoneyLeaderboardEntry {
163
+ address: string;
164
+ rank: number;
165
+ pnl: number;
166
+ volume: number;
167
+ tradeCount: number;
168
+ userName?: string;
169
+ profileImage?: string;
170
+ xUsername?: string;
171
+ verifiedBadge?: boolean;
172
+ totalPnl: number;
173
+ realizedPnl: number;
174
+ unrealizedPnl: number;
175
+ buyCount: number;
176
+ sellCount: number;
177
+ buyVolume: number;
178
+ sellVolume: number;
179
+ makerVolume: number;
180
+ takerVolume: number;
181
+ }
182
+ /**
183
+ * Leaderboard result with proper semantics
184
+ *
185
+ * Note: Polymarket API doesn't return total count.
186
+ */
187
+ export interface SmartMoneyLeaderboardResult {
188
+ /** Leaderboard entries returned by the API */
189
+ entries: SmartMoneyLeaderboardEntry[];
190
+ /** Whether there may be more entries (entries.length === request.limit) */
191
+ hasMore: boolean;
192
+ /** Echo of request parameters for pagination convenience */
193
+ request: {
194
+ offset: number;
195
+ limit: number;
196
+ };
197
+ }
198
+ /**
199
+ * Period ranking info
200
+ */
201
+ export interface PeriodRanking {
202
+ rank: number;
203
+ pnl: number;
204
+ volume: number;
205
+ }
206
+ /**
207
+ * Wallet report - comprehensive wallet analysis
208
+ */
209
+ export interface WalletReport {
210
+ address: string;
211
+ generatedAt: Date;
212
+ overview: {
213
+ totalPnL: number;
214
+ realizedPnL: number;
215
+ unrealizedPnL: number;
216
+ positionCount: number;
217
+ tradeCount: number;
218
+ smartScore: number;
219
+ lastActiveAt: Date;
220
+ };
221
+ rankings: {
222
+ daily: PeriodRanking | null;
223
+ weekly: PeriodRanking | null;
224
+ monthly: PeriodRanking | null;
225
+ allTime: PeriodRanking | null;
226
+ };
227
+ performance: {
228
+ winRate: number;
229
+ winCount: number;
230
+ lossCount: number;
231
+ avgPositionSize: number;
232
+ avgWinAmount: number;
233
+ avgLossAmount: number;
234
+ uniqueMarkets: number;
235
+ };
236
+ categoryBreakdown: Array<{
237
+ category: string;
238
+ positionCount: number;
239
+ totalPnl: number;
240
+ }>;
241
+ topPositions: Array<{
242
+ market: string;
243
+ slug?: string;
244
+ outcome: string;
245
+ size: number;
246
+ avgPrice: number;
247
+ currentPrice?: number;
248
+ pnl: number;
249
+ percentPnl?: number;
250
+ }>;
251
+ recentTrades: Array<{
252
+ timestamp: number;
253
+ side: 'BUY' | 'SELL';
254
+ size: number;
255
+ price: number;
256
+ usdcSize?: number;
257
+ title?: string;
258
+ slug?: string;
259
+ outcome?: string;
260
+ conditionId?: string;
261
+ }>;
262
+ activitySummary: {
263
+ totalBuys: number;
264
+ totalSells: number;
265
+ buyVolume: number;
266
+ sellVolume: number;
267
+ activeMarketsCount: number;
268
+ };
269
+ }
270
+ /**
271
+ * Wallet comparison result
272
+ */
273
+ export interface WalletComparison {
274
+ period: TimePeriod;
275
+ generatedAt: Date;
276
+ wallets: Array<{
277
+ address: string;
278
+ userName?: string;
279
+ rank: number | null;
280
+ pnl: number;
281
+ volume: number;
282
+ positionCount: number;
283
+ winRate: number;
284
+ }>;
285
+ }
286
+ /**
287
+ * Category color scheme for charts
288
+ */
289
+ export declare const CATEGORY_COLORS: Record<MarketCategory, string>;
290
+ /**
291
+ * Category labels for display
292
+ */
293
+ export declare const CATEGORY_LABELS: Record<MarketCategory, string>;
294
+ /**
295
+ * Daily summary statistics
296
+ */
297
+ export interface DailySummary {
298
+ totalTrades: number;
299
+ buyCount: number;
300
+ sellCount: number;
301
+ buyVolume: number;
302
+ sellVolume: number;
303
+ realizedPnL: number;
304
+ positionsClosed: number;
305
+ positionsOpened: number;
306
+ }
307
+ /**
308
+ * Category statistics for breakdown
309
+ */
310
+ export interface CategoryStats {
311
+ category: MarketCategory;
312
+ tradeCount: number;
313
+ volume: number;
314
+ pnl: number;
315
+ percentage: number;
316
+ }
317
+ /**
318
+ * Trade record for significant trades
319
+ */
320
+ export interface TradeRecord {
321
+ market: string;
322
+ conditionId?: string;
323
+ outcome: string;
324
+ side: 'BUY' | 'SELL';
325
+ price: number;
326
+ size: number;
327
+ usdcValue: number;
328
+ timestamp: Date;
329
+ }
330
+ /**
331
+ * Position summary
332
+ */
333
+ export interface PositionSummary {
334
+ market: string;
335
+ conditionId?: string;
336
+ outcome: string;
337
+ size: number;
338
+ avgPrice: number;
339
+ }
340
+ /**
341
+ * Closed market summary
342
+ */
343
+ export interface ClosedMarketSummary {
344
+ market: string;
345
+ conditionId: string;
346
+ outcome: string;
347
+ realizedPnL: number;
348
+ closePrice: number;
349
+ }
350
+ /**
351
+ * Daily wallet report
352
+ */
353
+ export interface DailyWalletReport {
354
+ address: string;
355
+ reportDate: string;
356
+ generatedAt: Date;
357
+ summary: DailySummary;
358
+ categoryBreakdown: CategoryStats[];
359
+ significantTrades: TradeRecord[];
360
+ newPositions: PositionSummary[];
361
+ closedMarkets: ClosedMarketSummary[];
362
+ }
363
+ /**
364
+ * Data range for lifecycle report
365
+ */
366
+ export interface DataRange {
367
+ firstActivityAt: Date;
368
+ lastActivityAt: Date;
369
+ totalDays: number;
370
+ }
371
+ /**
372
+ * Performance metrics
373
+ */
374
+ export interface PerformanceMetrics {
375
+ totalPnL: number;
376
+ realizedPnL: number;
377
+ unrealizedPnL: number;
378
+ totalVolume: number;
379
+ winRate: number;
380
+ profitFactor: number;
381
+ avgWin: number;
382
+ avgLoss: number;
383
+ maxWin: number;
384
+ maxLoss: number;
385
+ totalMarketsTraded: number;
386
+ winningMarkets: number;
387
+ losingMarkets: number;
388
+ }
389
+ /**
390
+ * Market statistics for top/worst markets
391
+ */
392
+ export interface MarketStats {
393
+ market: string;
394
+ conditionId: string;
395
+ category: MarketCategory;
396
+ pnl: number;
397
+ volume: number;
398
+ tradeCount: number;
399
+ outcome: 'win' | 'lose' | 'open';
400
+ avgPrice: number;
401
+ closePrice?: number;
402
+ }
403
+ /**
404
+ * Trading patterns analysis
405
+ */
406
+ export interface TradingPatterns {
407
+ avgTradesPerDay: number;
408
+ avgTradesPerWeek: number;
409
+ preferredSide: 'YES' | 'NO' | 'balanced';
410
+ avgPositionSize: number;
411
+ avgHoldingDays: number;
412
+ topCategories: MarketCategory[];
413
+ positionConcentration: number;
414
+ }
415
+ /**
416
+ * Current positions summary
417
+ */
418
+ export interface CurrentPositionsSummary {
419
+ count: number;
420
+ totalValue: number;
421
+ unrealizedPnL: number;
422
+ categories: CategoryStats[];
423
+ }
424
+ /**
425
+ * Wallet lifecycle report
426
+ */
427
+ export interface WalletLifecycleReport {
428
+ address: string;
429
+ generatedAt: Date;
430
+ dataRange: DataRange;
431
+ performance: PerformanceMetrics;
432
+ categoryDistribution: CategoryStats[];
433
+ topMarkets: MarketStats[];
434
+ worstMarkets: MarketStats[];
435
+ patterns: TradingPatterns;
436
+ currentPositions: CurrentPositionsSummary;
437
+ }
438
+ /**
439
+ * Pie chart slice
440
+ */
441
+ export interface PieSlice {
442
+ name: string;
443
+ value: number;
444
+ percentage: number;
445
+ color: string;
446
+ }
447
+ /**
448
+ * Pie chart data
449
+ */
450
+ export interface PieChartData {
451
+ name: string;
452
+ data: PieSlice[];
453
+ total: number;
454
+ }
455
+ /**
456
+ * Bar chart item
457
+ */
458
+ export interface BarItem {
459
+ label: string;
460
+ value: number;
461
+ color: string;
462
+ }
463
+ /**
464
+ * Bar chart data
465
+ */
466
+ export interface BarChartData {
467
+ name: string;
468
+ data: BarItem[];
469
+ }
470
+ /**
471
+ * Monthly PnL item
472
+ */
473
+ export interface MonthlyPnLItem extends BarItem {
474
+ month: string;
475
+ pnl: number;
476
+ tradeCount: number;
477
+ cumulativePnL: number;
478
+ }
479
+ /**
480
+ * Monthly PnL chart data
481
+ */
482
+ export interface MonthlyPnLData extends BarChartData {
483
+ data: MonthlyPnLItem[];
484
+ }
485
+ /**
486
+ * Chart metadata
487
+ */
488
+ export interface ChartMetadata {
489
+ address: string;
490
+ generatedAt: Date;
491
+ dataRange: {
492
+ from: Date;
493
+ to: Date;
494
+ };
495
+ }
496
+ /**
497
+ * Wallet chart data
498
+ */
499
+ export interface WalletChartData {
500
+ tradeDistribution: PieChartData;
501
+ positionDistribution: PieChartData;
502
+ profitDistribution: PieChartData;
503
+ monthlyPnL?: MonthlyPnLData;
504
+ metadata: ChartMetadata;
505
+ }
506
+ /**
507
+ * Report generation progress callback
508
+ */
509
+ export type ReportProgressCallback = (progress: number, message: string) => void;
510
+ /**
511
+ * Lifecycle report options
512
+ */
513
+ export interface LifecycleReportOptions {
514
+ onProgress?: ReportProgressCallback;
515
+ }
516
+ /**
517
+ * Text report output
518
+ */
519
+ export interface TextReport {
520
+ address: string;
521
+ generatedAt: Date;
522
+ markdown: string;
523
+ metrics: {
524
+ totalPnL: number;
525
+ winRate: number;
526
+ profitFactor: number;
527
+ totalMarketsTraded: number;
528
+ totalDays: number;
529
+ };
530
+ }
531
+ export declare class SmartMoneyService {
532
+ private walletService;
533
+ private realtimeService;
534
+ private tradingService;
535
+ private dataApi;
536
+ private config;
537
+ private smartMoneyCache;
538
+ private smartMoneySet;
539
+ private cacheTimestamp;
540
+ private activeSubscription;
541
+ private tradeHandlers;
542
+ constructor(walletService: WalletService, realtimeService: RealtimeServiceV2, tradingService: TradingService, config?: SmartMoneyServiceConfig, dataApi?: DataApiClient);
543
+ /**
544
+ * Set DataApiClient for report generation
545
+ * This allows setting the client after construction
546
+ */
547
+ setDataApiClient(dataApi: DataApiClient): void;
548
+ /**
549
+ * Get list of Smart Money wallets from leaderboard
550
+ */
551
+ getSmartMoneyList(limit?: number): Promise<SmartMoneyWallet[]>;
552
+ /**
553
+ * Check if an address is Smart Money
554
+ */
555
+ isSmartMoney(address: string): Promise<boolean>;
556
+ /**
557
+ * Get Smart Money info for an address
558
+ */
559
+ getSmartMoneyInfo(address: string): Promise<SmartMoneyWallet | null>;
560
+ /**
561
+ * Subscribe to trades from specific addresses
562
+ *
563
+ * @example
564
+ * ```typescript
565
+ * const sub = smartMoneyService.subscribeSmartMoneyTrades(
566
+ * (trade) => {
567
+ * console.log(`${trade.traderName} ${trade.side} ${trade.size} @ ${trade.price}`);
568
+ * },
569
+ * { filterAddresses: ['0x1234...', '0x5678...'] }
570
+ * );
571
+ *
572
+ * // Stop listening
573
+ * sub.unsubscribe();
574
+ * ```
575
+ */
576
+ subscribeSmartMoneyTrades(onTrade: (trade: SmartMoneyTrade) => void, options?: {
577
+ filterAddresses?: string[];
578
+ minSize?: number;
579
+ smartMoneyOnly?: boolean;
580
+ }): {
581
+ id: string;
582
+ unsubscribe: () => void;
583
+ };
584
+ private handleActivityTrade;
585
+ /**
586
+ * Start auto copy trading - 自动跟单
587
+ *
588
+ * @example
589
+ * ```typescript
590
+ * const sub = await smartMoneyService.startAutoCopyTrading({
591
+ * targetAddresses: ['0x1234...'],
592
+ * // 或者跟踪排行榜前N名
593
+ * topN: 10,
594
+ *
595
+ * sizeScale: 0.1, // 10%
596
+ * maxSizePerTrade: 50, // $50
597
+ * maxSlippage: 0.03, // 3%
598
+ * orderType: 'FOK',
599
+ *
600
+ * dryRun: true, // 测试模式
601
+ *
602
+ * onTrade: (trade, result) => console.log(result),
603
+ * });
604
+ *
605
+ * // 停止
606
+ * sub.stop();
607
+ * ```
608
+ */
609
+ startAutoCopyTrading(options: AutoCopyTradingOptions): Promise<AutoCopyTradingSubscription>;
610
+ /**
611
+ * Get leaderboard by time period
612
+ *
613
+ * @example
614
+ * ```typescript
615
+ * // Get weekly top 100 by PnL
616
+ * const leaderboard = await sdk.smartMoney.getLeaderboard({
617
+ * period: 'week',
618
+ * limit: 100,
619
+ * sortBy: 'pnl'
620
+ * });
621
+ * ```
622
+ */
623
+ getLeaderboard(options?: LeaderboardOptions): Promise<SmartMoneyLeaderboardResult>;
624
+ /**
625
+ * Generate comprehensive wallet report
626
+ *
627
+ * @example
628
+ * ```typescript
629
+ * const report = await sdk.smartMoney.getWalletReport('0x...');
630
+ * console.log(report.overview.totalPnL);
631
+ * console.log(report.rankings.weekly?.rank);
632
+ * ```
633
+ */
634
+ getWalletReport(address: string): Promise<WalletReport>;
635
+ /**
636
+ * Analyze position categories based on title keywords
637
+ */
638
+ private analyzeCategories;
639
+ /**
640
+ * Compare multiple wallets
641
+ *
642
+ * @example
643
+ * ```typescript
644
+ * const comparison = await sdk.smartMoney.compareWallets(
645
+ * ['0x111...', '0x222...', '0x333...'],
646
+ * { period: 'week' }
647
+ * );
648
+ * ```
649
+ */
650
+ compareWallets(addresses: string[], options?: {
651
+ period?: TimePeriod;
652
+ }): Promise<WalletComparison>;
653
+ /**
654
+ * Get daily wallet report
655
+ *
656
+ * @param address - Wallet address
657
+ * @param date - Date for the report (default: today)
658
+ *
659
+ * @example
660
+ * ```typescript
661
+ * const report = await sdk.smartMoney.getDailyReport('0x...', new Date('2026-01-08'));
662
+ * console.log(report.summary.realizedPnL);
663
+ * ```
664
+ */
665
+ getDailyReport(address: string, date?: Date): Promise<DailyWalletReport>;
666
+ /**
667
+ * Get wallet lifecycle report
668
+ *
669
+ * @param address - Wallet address
670
+ * @param options - Report options with progress callback
671
+ *
672
+ * @example
673
+ * ```typescript
674
+ * const report = await sdk.smartMoney.getLifecycleReport('0x...', {
675
+ * onProgress: (p, msg) => console.log(`${p * 100}%: ${msg}`)
676
+ * });
677
+ * console.log(report.performance.winRate);
678
+ * ```
679
+ */
680
+ getLifecycleReport(address: string, options?: LifecycleReportOptions): Promise<WalletLifecycleReport>;
681
+ /**
682
+ * Get wallet chart data
683
+ *
684
+ * @param address - Wallet address
685
+ *
686
+ * @example
687
+ * ```typescript
688
+ * const chartData = await sdk.smartMoney.getWalletChartData('0x...');
689
+ * // Use chartData.tradeDistribution with recharts
690
+ * ```
691
+ */
692
+ getWalletChartData(address: string): Promise<WalletChartData>;
693
+ /**
694
+ * Generate a text analysis report for a wallet
695
+ *
696
+ * @param address - Wallet address
697
+ * @param options - Report options with progress callback
698
+ *
699
+ * @example
700
+ * ```typescript
701
+ * const textReport = await sdk.smartMoney.generateTextReport('0x...');
702
+ * console.log(textReport.markdown);
703
+ * ```
704
+ */
705
+ generateTextReport(address: string, options?: LifecycleReportOptions): Promise<TextReport>;
706
+ /**
707
+ * Build markdown text report from data
708
+ */
709
+ private buildTextReport;
710
+ /**
711
+ * Analyze trading style from patterns
712
+ */
713
+ private analyzeTradingStyle;
714
+ /**
715
+ * Assess risk profile
716
+ */
717
+ private assessRisk;
718
+ /**
719
+ * Generate copy trading recommendation
720
+ */
721
+ private generateRecommendation;
722
+ /**
723
+ * Categorize market based on title keywords
724
+ */
725
+ private categorizeMarket;
726
+ /**
727
+ * Fetch all closed positions with pagination
728
+ */
729
+ private fetchAllClosedPositions;
730
+ /**
731
+ * Calculate performance metrics from closed positions
732
+ */
733
+ private calculatePerformanceMetricsFromClosed;
734
+ /**
735
+ * Calculate category distribution from closed positions
736
+ */
737
+ private calculateCategoryDistributionFromClosed;
738
+ /**
739
+ * Calculate category distribution from current positions
740
+ */
741
+ private calculateCategoryDistributionFromPositions;
742
+ /**
743
+ * Calculate category breakdown from activity trades
744
+ */
745
+ private calculateCategoryBreakdownFromActivities;
746
+ /**
747
+ * Get top markets by PnL
748
+ */
749
+ private getTopMarkets;
750
+ /**
751
+ * Get worst markets by PnL
752
+ */
753
+ private getWorstMarkets;
754
+ /**
755
+ * Analyze trading patterns
756
+ */
757
+ private analyzeTradingPatterns;
758
+ /**
759
+ * Build pie chart data
760
+ */
761
+ private buildPieChart;
762
+ /**
763
+ * Format date as YYYY-MM-DD
764
+ */
765
+ private formatDate;
766
+ private isCacheValid;
767
+ disconnect(): void;
768
+ }
769
+ //# sourceMappingURL=smart-money-service.d.ts.map