@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,553 @@
1
+ /**
2
+ * Dip Arbitrage Service Types
3
+ *
4
+ * 暴跌套利服务类型定义
5
+ *
6
+ * 策略原理:
7
+ * 在 Polymarket 的 BTC/ETH/SOL/XRP UP/DOWN 短期市场中:
8
+ *
9
+ * 1. 每个市场有一个 "price to beat"(开盘时的 Chainlink 价格)
10
+ * 2. 结算规则:
11
+ * - UP 赢:结束时价格 >= price to beat
12
+ * - DOWN 赢:结束时价格 < price to beat
13
+ *
14
+ * 3. 套利流程:
15
+ * - Leg1:检测暴跌 → 买入暴跌侧
16
+ * - Leg2:等待对冲条件 → 买入另一侧
17
+ * - 利润:总成本 < $1 时获得无风险利润
18
+ */
19
+ /**
20
+ * DipArbService 配置
21
+ */
22
+ export interface DipArbServiceConfig {
23
+ /**
24
+ * 每次交易的份额数量
25
+ * @default 20
26
+ */
27
+ shares?: number;
28
+ /**
29
+ * 对冲价格阈值 (sumTarget)
30
+ * 只有当 leg1Price + leg2Price <= sumTarget 时才执行对冲
31
+ * @default 0.95
32
+ */
33
+ sumTarget?: number;
34
+ /**
35
+ * 暴跌触发阈值
36
+ * 价格相对开盘价下跌超过此比例时触发 Leg1
37
+ * 0.15 = 15%
38
+ * @default 0.15
39
+ */
40
+ dipThreshold?: number;
41
+ /**
42
+ * 交易窗口(分钟)
43
+ * 每轮开始后,只在此时间窗口内触发 Leg1
44
+ * @default 2
45
+ */
46
+ windowMinutes?: number;
47
+ /**
48
+ * 滑动窗口时长(毫秒)
49
+ * 用于检测瞬时暴跌:比较当前价格与 N 毫秒前的价格
50
+ *
51
+ * 重要:这是策略的核心参数!
52
+ * - 3000ms (3秒) 跌 15% = 异常事件 ✅ 触发
53
+ * - 5分钟跌 15% = 趋势下行 ❌ 不触发
54
+ *
55
+ * @default 3000
56
+ */
57
+ slidingWindowMs?: number;
58
+ /**
59
+ * 最大滑点
60
+ * 下单价格 = 市场价 * (1 + maxSlippage)
61
+ * @default 0.02
62
+ */
63
+ maxSlippage?: number;
64
+ /**
65
+ * 最小利润率
66
+ * 只有预期利润率 > minProfitRate 时才生成信号
67
+ * @default 0.03
68
+ */
69
+ minProfitRate?: number;
70
+ /**
71
+ * Leg1 成交后等待 Leg2 的最大时间(秒)
72
+ * 超时后放弃当前轮次
73
+ * @default 300
74
+ */
75
+ leg2TimeoutSeconds?: number;
76
+ /**
77
+ * 启用暴涨检测
78
+ * 当 token 价格暴涨时,买入对手 token(预期均值回归)
79
+ * @default true
80
+ */
81
+ enableSurge?: boolean;
82
+ /**
83
+ * 暴涨触发阈值
84
+ * 价格相对开盘价上涨超过此比例时触发
85
+ * @default 0.15
86
+ */
87
+ surgeThreshold?: number;
88
+ /**
89
+ * 完成双腿后自动合并回 USDC
90
+ * YES + NO tokens → USDC
91
+ * @default true
92
+ */
93
+ autoMerge?: boolean;
94
+ /**
95
+ * 自动执行交易
96
+ * 检测到信号后自动下单
97
+ * @default false
98
+ */
99
+ autoExecute?: boolean;
100
+ /**
101
+ * 执行冷却时间(毫秒)
102
+ * 两次交易之间的最小间隔
103
+ * @default 3000
104
+ */
105
+ executionCooldown?: number;
106
+ /**
107
+ * 拆分订单数量
108
+ * 将 shares 拆分成多笔订单执行
109
+ * 例如: shares=30, splitOrders=3 → 每笔 10 shares
110
+ * @default 1 (不拆分)
111
+ */
112
+ splitOrders?: number;
113
+ /**
114
+ * 拆分订单间隔(毫秒)
115
+ * 多笔订单之间的间隔时间
116
+ * @default 500
117
+ */
118
+ orderIntervalMs?: number;
119
+ /**
120
+ * 启用调试日志
121
+ * @default false
122
+ */
123
+ debug?: boolean;
124
+ /**
125
+ * 自定义日志处理函数
126
+ * 如果设置,所有日志将通过此函数输出
127
+ * @example
128
+ * logHandler: (msg) => {
129
+ * console.log(`[${Date.now()}] ${msg}`);
130
+ * logs.push(msg);
131
+ * }
132
+ */
133
+ logHandler?: (message: string) => void;
134
+ }
135
+ /**
136
+ * 内部配置类型(不包含 logHandler,因为它是纯可选的回调函数)
137
+ */
138
+ export type DipArbConfigInternal = Required<Omit<DipArbServiceConfig, 'logHandler'>> & {
139
+ logHandler?: (message: string) => void;
140
+ };
141
+ /**
142
+ * 默认配置
143
+ */
144
+ export declare const DEFAULT_DIP_ARB_CONFIG: DipArbConfigInternal;
145
+ /** 支持的底层资产 */
146
+ export type DipArbUnderlying = 'BTC' | 'ETH' | 'SOL' | 'XRP';
147
+ /** 市场时长 */
148
+ export type DipArbDuration = 5 | 15;
149
+ /**
150
+ * 市场配置
151
+ */
152
+ export interface DipArbMarketConfig {
153
+ /** 市场名称(用于日志) */
154
+ name: string;
155
+ /** 市场 slug (e.g., 'btc-updown-15m-1767165300') */
156
+ slug: string;
157
+ /** Condition ID */
158
+ conditionId: string;
159
+ /** UP token ID */
160
+ upTokenId: string;
161
+ /** DOWN token ID */
162
+ downTokenId: string;
163
+ /** 底层资产 */
164
+ underlying: DipArbUnderlying;
165
+ /** 市场时长(分钟) */
166
+ durationMinutes: DipArbDuration;
167
+ /** 市场结束时间 */
168
+ endTime: Date;
169
+ }
170
+ /** 轮次阶段 */
171
+ export type DipArbPhase = 'waiting' | 'leg1_filled' | 'completed' | 'expired';
172
+ /** 交易侧 */
173
+ export type DipArbSide = 'UP' | 'DOWN';
174
+ /**
175
+ * Leg 信息
176
+ */
177
+ export interface DipArbLegInfo {
178
+ /** 买入侧 */
179
+ side: DipArbSide;
180
+ /** 成交价格 */
181
+ price: number;
182
+ /** 份额数量 */
183
+ shares: number;
184
+ /** 成交时间 */
185
+ timestamp: number;
186
+ /** Token ID */
187
+ tokenId: string;
188
+ }
189
+ /**
190
+ * 轮次状态
191
+ */
192
+ export interface DipArbRoundState {
193
+ /** 轮次 ID */
194
+ roundId: string;
195
+ /** 轮次开始时间 (Unix ms) */
196
+ startTime: number;
197
+ /** 轮次结束时间 (Unix ms) */
198
+ endTime: number;
199
+ /** Price to Beat - 开盘时的底层资产价格(Chainlink) */
200
+ priceToBeat: number;
201
+ /** 开盘时的 token 价格 */
202
+ openPrices: {
203
+ up: number;
204
+ down: number;
205
+ };
206
+ /** 当前阶段 */
207
+ phase: DipArbPhase;
208
+ /** Leg1 信息(如果已成交) */
209
+ leg1?: DipArbLegInfo;
210
+ /** Leg2 信息(如果已成交) */
211
+ leg2?: DipArbLegInfo;
212
+ /** 总成本 */
213
+ totalCost?: number;
214
+ /** 实际利润 */
215
+ profit?: number;
216
+ }
217
+ /**
218
+ * Leg1 信号
219
+ */
220
+ export interface DipArbLeg1Signal {
221
+ type: 'leg1';
222
+ /** 轮次 ID */
223
+ roundId: string;
224
+ /** 买入侧 */
225
+ dipSide: DipArbSide;
226
+ /** 当前价格 */
227
+ currentPrice: number;
228
+ /** 开盘价格 */
229
+ openPrice: number;
230
+ /** 下跌/上涨幅度 */
231
+ dropPercent: number;
232
+ /** 目标价格(包含滑点) */
233
+ targetPrice: number;
234
+ /** 份额数量 */
235
+ shares: number;
236
+ /** Token ID */
237
+ tokenId: string;
238
+ /** 对手侧当前 ask 价格 */
239
+ oppositeAsk: number;
240
+ /** 预估总成本 */
241
+ estimatedTotalCost: number;
242
+ /** 预估利润率 */
243
+ estimatedProfitRate: number;
244
+ /** 信号来源 */
245
+ source: 'dip' | 'surge' | 'mispricing';
246
+ /** BTC 信息(用于定价偏差检测) */
247
+ btcInfo?: {
248
+ btcPrice: number;
249
+ priceToBeat: number;
250
+ btcChangePercent: number;
251
+ estimatedWinRate: number;
252
+ };
253
+ }
254
+ /**
255
+ * Leg2 信号
256
+ */
257
+ export interface DipArbLeg2Signal {
258
+ type: 'leg2';
259
+ /** 轮次 ID */
260
+ roundId: string;
261
+ /** 对冲侧 */
262
+ hedgeSide: DipArbSide;
263
+ /** Leg1 信息 */
264
+ leg1: DipArbLegInfo;
265
+ /** 当前价格 */
266
+ currentPrice: number;
267
+ /** 目标价格(包含滑点) */
268
+ targetPrice: number;
269
+ /** 总成本 (leg1 + leg2) */
270
+ totalCost: number;
271
+ /** 预期利润率 */
272
+ expectedProfitRate: number;
273
+ /** 份额数量 */
274
+ shares: number;
275
+ /** Token ID */
276
+ tokenId: string;
277
+ }
278
+ /** 信号类型 */
279
+ export type DipArbSignal = DipArbLeg1Signal | DipArbLeg2Signal;
280
+ /**
281
+ * 执行结果
282
+ */
283
+ export interface DipArbExecutionResult {
284
+ /** 是否成功 */
285
+ success: boolean;
286
+ /** 执行的 leg */
287
+ leg: 'leg1' | 'leg2' | 'merge' | 'exit';
288
+ /** 轮次 ID */
289
+ roundId: string;
290
+ /** 交易侧 */
291
+ side?: DipArbSide;
292
+ /** 成交价格 */
293
+ price?: number;
294
+ /** 成交份额 */
295
+ shares?: number;
296
+ /** 订单 ID */
297
+ orderId?: string;
298
+ /** 交易哈希(merge 操作) */
299
+ txHash?: string;
300
+ /** 错误信息 */
301
+ error?: string;
302
+ /** 执行时间(毫秒) */
303
+ executionTimeMs: number;
304
+ }
305
+ /**
306
+ * 轮次完成结果
307
+ */
308
+ export interface DipArbRoundResult {
309
+ /** 轮次 ID */
310
+ roundId: string;
311
+ /** 状态 */
312
+ status: 'completed' | 'expired' | 'partial';
313
+ /** Leg1 信息 */
314
+ leg1?: DipArbLegInfo;
315
+ /** Leg2 信息 */
316
+ leg2?: DipArbLegInfo;
317
+ /** 总成本 */
318
+ totalCost?: number;
319
+ /** 实际利润 */
320
+ profit?: number;
321
+ /** 利润率 */
322
+ profitRate?: number;
323
+ /** 是否已合并 */
324
+ merged: boolean;
325
+ /** 合并交易哈希 */
326
+ mergeTxHash?: string;
327
+ /** Leg1 退出结果(Leg2 超时时) */
328
+ exitResult?: DipArbExecutionResult | null;
329
+ }
330
+ /**
331
+ * 服务统计
332
+ */
333
+ export interface DipArbStats {
334
+ /** 开始时间 */
335
+ startTime: number;
336
+ /** 运行时长(毫秒) */
337
+ runningTimeMs: number;
338
+ /** 监控的轮次数 */
339
+ roundsMonitored: number;
340
+ /** 完成的轮次数 */
341
+ roundsCompleted: number;
342
+ /** 成功的轮次数(双腿完成) */
343
+ roundsSuccessful: number;
344
+ /** 过期的轮次数 */
345
+ roundsExpired: number;
346
+ /** 检测到的信号数 */
347
+ signalsDetected: number;
348
+ /** Leg1 成交次数 */
349
+ leg1Filled: number;
350
+ /** Leg2 成交次数 */
351
+ leg2Filled: number;
352
+ /** 总花费 (USDC) */
353
+ totalSpent: number;
354
+ /** 总收益 (USDC) */
355
+ totalProfit: number;
356
+ /** 平均利润率 */
357
+ avgProfitRate: number;
358
+ /** 当前轮次信息 */
359
+ currentRound?: {
360
+ roundId: string;
361
+ phase: DipArbPhase;
362
+ priceToBeat: number;
363
+ leg1?: {
364
+ side: DipArbSide;
365
+ price: number;
366
+ };
367
+ };
368
+ }
369
+ /**
370
+ * 新轮次事件数据
371
+ */
372
+ export interface DipArbNewRoundEvent {
373
+ roundId: string;
374
+ priceToBeat: number;
375
+ upOpen: number;
376
+ downOpen: number;
377
+ startTime: number;
378
+ endTime: number;
379
+ }
380
+ /**
381
+ * 价格更新事件数据
382
+ */
383
+ export interface DipArbPriceUpdateEvent {
384
+ underlying: DipArbUnderlying;
385
+ value: number;
386
+ priceToBeat: number;
387
+ changePercent: number;
388
+ }
389
+ /**
390
+ * 服务事件
391
+ */
392
+ export interface DipArbServiceEvents {
393
+ started: (market: DipArbMarketConfig) => void;
394
+ stopped: () => void;
395
+ newRound: (event: DipArbNewRoundEvent) => void;
396
+ signal: (signal: DipArbSignal) => void;
397
+ execution: (result: DipArbExecutionResult) => void;
398
+ roundComplete: (result: DipArbRoundResult) => void;
399
+ priceUpdate: (event: DipArbPriceUpdateEvent) => void;
400
+ error: (error: Error) => void;
401
+ }
402
+ /**
403
+ * 市场扫描选项
404
+ */
405
+ export interface DipArbScanOptions {
406
+ /** 筛选底层资产 */
407
+ coin?: DipArbUnderlying | 'all';
408
+ /** 筛选时长 */
409
+ duration?: '5m' | '15m' | 'all';
410
+ /** 距离结束的最小分钟数 */
411
+ minMinutesUntilEnd?: number;
412
+ /** 距离结束的最大分钟数 */
413
+ maxMinutesUntilEnd?: number;
414
+ /** 返回数量限制 */
415
+ limit?: number;
416
+ }
417
+ /**
418
+ * 自动启动选项
419
+ */
420
+ export interface DipArbFindAndStartOptions {
421
+ /** 偏好的底层资产 */
422
+ coin?: DipArbUnderlying;
423
+ /** 偏好的时长 */
424
+ preferDuration?: '5m' | '15m';
425
+ }
426
+ /**
427
+ * 自动轮换配置
428
+ */
429
+ export interface DipArbAutoRotateConfig {
430
+ /** 是否启用自动轮换 */
431
+ enabled: boolean;
432
+ /** 监控的底层资产列表 */
433
+ underlyings: DipArbUnderlying[];
434
+ /** 偏好的时长 */
435
+ duration: '5m' | '15m';
436
+ /** 市场结束前多少分钟开始寻找下一个市场 */
437
+ preloadMinutes?: number;
438
+ /** 市场结束后自动结算 */
439
+ autoSettle?: boolean;
440
+ /** 结算策略: 'redeem' 赎回 (等结算) 或 'sell' 立即卖出 */
441
+ settleStrategy?: 'redeem' | 'sell';
442
+ /** Redeem 等待时间(分钟)- 市场结束后等待 Oracle 结算的时间,默认 5 分钟 */
443
+ redeemWaitMinutes?: number;
444
+ /** Redeem 重试间隔(秒)- 每次检查 resolution 的间隔,默认 30 秒 */
445
+ redeemRetryIntervalSeconds?: number;
446
+ }
447
+ /**
448
+ * 默认自动轮换配置
449
+ */
450
+ export declare const DEFAULT_AUTO_ROTATE_CONFIG: Required<DipArbAutoRotateConfig>;
451
+ /**
452
+ * 结算结果
453
+ */
454
+ export interface DipArbSettleResult {
455
+ /** 是否成功 */
456
+ success: boolean;
457
+ /** 结算策略 */
458
+ strategy: 'redeem' | 'sell';
459
+ /** 市场信息 */
460
+ market?: DipArbMarketConfig;
461
+ /** UP token 数量 */
462
+ upBalance?: number;
463
+ /** DOWN token 数量 */
464
+ downBalance?: number;
465
+ /** 收到的金额 (USDC) */
466
+ amountReceived?: number;
467
+ /** 交易哈希 */
468
+ txHash?: string;
469
+ /** 错误信息 */
470
+ error?: string;
471
+ /** 执行时间(毫秒) */
472
+ executionTimeMs: number;
473
+ }
474
+ /**
475
+ * 待赎回的仓位
476
+ * 用于跟踪市场结束后需要赎回的仓位
477
+ */
478
+ export interface DipArbPendingRedemption {
479
+ /** 市场配置 */
480
+ market: DipArbMarketConfig;
481
+ /** 轮次状态(包含持仓信息) */
482
+ round: DipArbRoundState;
483
+ /** 市场结束时间 */
484
+ marketEndTime: number;
485
+ /** 添加到队列的时间 */
486
+ addedAt: number;
487
+ /** 重试次数 */
488
+ retryCount: number;
489
+ /** 最后一次尝试时间 */
490
+ lastRetryAt?: number;
491
+ }
492
+ /**
493
+ * 市场轮换事件
494
+ */
495
+ export interface DipArbRotateEvent {
496
+ /** 旧市场 condition ID */
497
+ previousMarket?: string;
498
+ /** 新市场 condition ID */
499
+ newMarket: string;
500
+ /** 轮换原因 */
501
+ reason: 'marketEnded' | 'manual' | 'error';
502
+ /** 时间戳 */
503
+ timestamp: number;
504
+ /** 结算结果(如果有) */
505
+ settleResult?: DipArbSettleResult;
506
+ }
507
+ /**
508
+ * 创建初始统计
509
+ */
510
+ export declare function createDipArbInitialStats(): DipArbStats;
511
+ /**
512
+ * 创建新轮次状态
513
+ */
514
+ export declare function createDipArbRoundState(roundId: string, priceToBeat: number, upPrice: number, downPrice: number, durationMinutes?: number): DipArbRoundState;
515
+ /**
516
+ * 计算利润率
517
+ */
518
+ export declare function calculateDipArbProfitRate(totalCost: number): number;
519
+ /**
520
+ * 计算基于底层资产价格变化的"真实"胜率
521
+ *
522
+ * @param currentPrice - 当前价格
523
+ * @param priceToBeat - 开盘价格
524
+ * @returns UP 的真实胜率估计 (0-1)
525
+ */
526
+ export declare function estimateUpWinRate(currentPrice: number, priceToBeat: number): number;
527
+ /**
528
+ * 检测定价偏差
529
+ *
530
+ * @param tokenPrice - token 当前价格(隐含胜率)
531
+ * @param estimatedWinRate - 基于价格估计的真实胜率
532
+ * @returns 偏差程度(正数 = 被低估,负数 = 被高估)
533
+ */
534
+ export declare function detectMispricing(tokenPrice: number, estimatedWinRate: number): number;
535
+ /**
536
+ * 从 slug 解析底层资产
537
+ * e.g., 'btc-updown-15m-1767165300' → 'BTC'
538
+ */
539
+ export declare function parseUnderlyingFromSlug(slug: string): DipArbUnderlying;
540
+ /**
541
+ * 从 slug 解析时长
542
+ * e.g., 'btc-updown-15m-1767165300' → 15
543
+ */
544
+ export declare function parseDurationFromSlug(slug: string): DipArbDuration;
545
+ /**
546
+ * 类型守卫:检查是否为 Leg1 信号
547
+ */
548
+ export declare function isDipArbLeg1Signal(signal: DipArbSignal): signal is DipArbLeg1Signal;
549
+ /**
550
+ * 类型守卫:检查是否为 Leg2 信号
551
+ */
552
+ export declare function isDipArbLeg2Signal(signal: DipArbSignal): signal is DipArbLeg2Signal;
553
+ //# sourceMappingURL=dip-arb-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dip-arb-types.d.ts","sourceRoot":"","sources":["../../../src/services/dip-arb-types.ts"],"names":[],"mappings":"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"}