@catalyst-team/poly-mcp 0.1.1 → 0.1.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 (107) hide show
  1. package/README.md +264 -21
  2. package/dist/errors.d.ts +11 -0
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +13 -2
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +98 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/sdk-instance.d.ts +27 -0
  10. package/dist/sdk-instance.d.ts.map +1 -0
  11. package/dist/sdk-instance.js +64 -0
  12. package/dist/sdk-instance.js.map +1 -0
  13. package/dist/server.d.ts +13 -1
  14. package/dist/server.d.ts.map +1 -1
  15. package/dist/server.js +29 -27
  16. package/dist/server.js.map +1 -1
  17. package/dist/tools/guide.d.ts.map +1 -1
  18. package/dist/tools/guide.js +159 -1
  19. package/dist/tools/guide.js.map +1 -1
  20. package/dist/tools/index.d.ts +8 -4
  21. package/dist/tools/index.d.ts.map +1 -1
  22. package/dist/tools/index.js +20 -4
  23. package/dist/tools/index.js.map +1 -1
  24. package/dist/tools/insider-detection.d.ts +175 -0
  25. package/dist/tools/insider-detection.d.ts.map +1 -0
  26. package/dist/tools/insider-detection.js +654 -0
  27. package/dist/tools/insider-detection.js.map +1 -0
  28. package/dist/tools/insider-signals.d.ts +56 -0
  29. package/dist/tools/insider-signals.d.ts.map +1 -0
  30. package/dist/tools/insider-signals.js +170 -0
  31. package/dist/tools/insider-signals.js.map +1 -0
  32. package/dist/tools/market.d.ts +25 -1
  33. package/dist/tools/market.d.ts.map +1 -1
  34. package/dist/tools/market.js +504 -12
  35. package/dist/tools/market.js.map +1 -1
  36. package/dist/tools/onchain.d.ts +240 -0
  37. package/dist/tools/onchain.d.ts.map +1 -0
  38. package/dist/tools/onchain.js +610 -0
  39. package/dist/tools/onchain.js.map +1 -0
  40. package/dist/tools/order.d.ts.map +1 -1
  41. package/dist/tools/order.js +13 -6
  42. package/dist/tools/order.js.map +1 -1
  43. package/dist/tools/trade.d.ts +15 -0
  44. package/dist/tools/trade.d.ts.map +1 -1
  45. package/dist/tools/trade.js +216 -39
  46. package/dist/tools/trade.js.map +1 -1
  47. package/dist/tools/trader.d.ts +4 -1
  48. package/dist/tools/trader.d.ts.map +1 -1
  49. package/dist/tools/trader.js +316 -4
  50. package/dist/tools/trader.js.map +1 -1
  51. package/dist/tools/wallet-classification.d.ts +166 -0
  52. package/dist/tools/wallet-classification.d.ts.map +1 -0
  53. package/dist/tools/wallet-classification.js +455 -0
  54. package/dist/tools/wallet-classification.js.map +1 -0
  55. package/dist/tools/wallet.d.ts +56 -7
  56. package/dist/tools/wallet.d.ts.map +1 -1
  57. package/dist/tools/wallet.js +141 -20
  58. package/dist/tools/wallet.js.map +1 -1
  59. package/dist/types.d.ts +269 -10
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/wallet-manager.d.ts +67 -0
  62. package/dist/wallet-manager.d.ts.map +1 -0
  63. package/dist/wallet-manager.js +180 -0
  64. package/dist/wallet-manager.js.map +1 -0
  65. package/docs/01-mcp.md +554 -32
  66. package/docs/02-wallet-deep-research.md +344 -0
  67. package/docs/e2e-02/00-gap-analysis.md +211 -0
  68. package/docs/e2e-02/01-test-scenarios.md +530 -0
  69. package/docs/e2e-02/02-implementation-plan.md +190 -0
  70. package/docs/e2e-02/README.md +102 -0
  71. package/docs/reports/simonbanza-strategy-analysis-2025-12-25.md +420 -0
  72. package/docs/reports/smart-money-analysis-2025-12-23-cn.md +840 -0
  73. package/docs/reports/smart-money-trading-strategies-2025-12-25.md +440 -0
  74. package/docs/reports/weekly/01-v2.5.md +352 -0
  75. package/docs/reports/weekly/01.md +402 -0
  76. package/docs/reports/weekly/02-deep.md +558 -0
  77. package/docs/reports/weekly/02.md +505 -0
  78. package/docs/reports/weekly/03.md +437 -0
  79. package/docs/reports/weekly/04.md +418 -0
  80. package/docs/reports/weekly/05.md +485 -0
  81. package/docs/reports/weekly/06.md +436 -0
  82. package/docs/reports/weekly/07.md +381 -0
  83. package/docs/reports/weekly/08.md +502 -0
  84. package/docs/reports/weekly/09.md +441 -0
  85. package/docs/reports/weekly/10.md +511 -0
  86. package/docs/reports/weekly/README.md +188 -0
  87. package/docs/reports/weekly/prompt-v2.5.md +1019 -0
  88. package/docs/reports/weekly/prompt-v3.md +432 -0
  89. package/docs/reports/weekly/prompt.md +841 -0
  90. package/package.json +3 -2
  91. package/src/errors.ts +13 -2
  92. package/src/index.ts +286 -1
  93. package/src/sdk-instance.ts +78 -0
  94. package/src/server.ts +30 -28
  95. package/src/tools/guide.ts +160 -1
  96. package/src/tools/index.ts +65 -0
  97. package/src/tools/insider-detection.ts +899 -0
  98. package/src/tools/insider-signals.ts +213 -0
  99. package/src/tools/market.ts +569 -12
  100. package/src/tools/onchain.ts +738 -0
  101. package/src/tools/order.ts +25 -12
  102. package/src/tools/trade.ts +265 -53
  103. package/src/tools/trader.ts +350 -4
  104. package/src/tools/wallet-classification.ts +587 -0
  105. package/src/tools/wallet.ts +172 -23
  106. package/src/types.ts +294 -11
  107. package/src/wallet-manager.ts +209 -0
@@ -0,0 +1,530 @@
1
+ # 真实场景测试用例
2
+
3
+ > 这些场景用于验证 poly-mcp 工具的完整性和正确性
4
+ > 更新日期: 2024-12-29 (工具补充后)
5
+
6
+ ---
7
+
8
+ ## 场景分类
9
+
10
+ | 类别 | 场景数 | 可完成 | 部分完成 | 无法完成 |
11
+ |------|--------|--------|----------|----------|
12
+ | 钱包分析 | 5 | 5 | 0 | 0 |
13
+ | 市场发现 | 5 | 5 | 0 | 0 |
14
+ | 交易执行 | 4 | 4 | 0 | 0 |
15
+ | 聪明钱 | 4 | 1 | 1 | 2 |
16
+ | 技术分析 | 4 | 4 | 0 | 0 |
17
+ | 做市 | 3 | 3 | 0 | 0 |
18
+ | CTF 操作 | 4 | 4 | 0 | 0 |
19
+
20
+ **总计: 29 场景, 26 可完成 (90%), 1 部分完成 (3%), 2 无法完成 (7%)**
21
+
22
+ ---
23
+
24
+ ## 类别 1: 钱包分析 (✅ 完整支持)
25
+
26
+ ### 场景 1.1: 钱包基础画像
27
+
28
+ **用户输入**: "分析钱包 0xabc...def 的基本情况"
29
+
30
+ **工具调用链**:
31
+ ```
32
+ 1. get_trader_profile(address="0xabc...def")
33
+ → 排名、PnL、胜率、交易量
34
+
35
+ 2. get_account_value(address="0xabc...def")
36
+ → 账户总价值
37
+ ```
38
+
39
+ **状态**: ✅ 可完成
40
+
41
+ ---
42
+
43
+ ### 场景 1.2: 钱包持仓分析
44
+
45
+ **用户输入**: "这个钱包当前持有哪些市场?"
46
+
47
+ **工具调用链**:
48
+ ```
49
+ 1. get_trader_positions(address="0xabc...def")
50
+ → 当前持仓列表、未实现盈亏
51
+ ```
52
+
53
+ **状态**: ✅ 可完成
54
+
55
+ ---
56
+
57
+ ### 场景 1.3: 钱包历史战绩
58
+
59
+ **用户输入**: "这个钱包历史上最赚钱的交易是什么?"
60
+
61
+ **工具调用链**:
62
+ ```
63
+ 1. get_trader_closed_positions(address, sortBy="REALIZEDPNL", limit=10)
64
+ → 已结算持仓按盈亏排序
65
+ ```
66
+
67
+ **状态**: ✅ 可完成
68
+
69
+ ---
70
+
71
+ ### 场景 1.4: 单市场深度分析
72
+
73
+ **用户输入**: "分析这个钱包在 Trump 市场的操作"
74
+
75
+ **工具调用链**:
76
+ ```
77
+ 1. search_markets(query="Trump")
78
+ → 找到 conditionId
79
+
80
+ 2. get_trader_activity(address, market=conditionId, limit=50)
81
+ → 该市场的所有操作历史
82
+
83
+ 3. get_market(conditionId)
84
+ → 市场状态和结果
85
+ ```
86
+
87
+ **状态**: ✅ 可完成
88
+
89
+ ---
90
+
91
+ ### 场景 1.5: 排行榜查询
92
+
93
+ **用户输入**: "本月盈利最高的钱包是哪个?"
94
+
95
+ **工具调用链**:
96
+ ```
97
+ 1. get_leaderboard(period="month", sortBy="pnl", limit=1)
98
+ → 月度排行榜第一名
99
+ ```
100
+
101
+ **状态**: ✅ 可完成
102
+
103
+ ---
104
+
105
+ ## 类别 2: 市场发现 (✅ 完整支持)
106
+
107
+ ### 场景 2.1: 热门市场
108
+
109
+ **用户输入**: "现在最热门的市场是什么?"
110
+
111
+ **工具调用链**:
112
+ ```
113
+ 1. get_trending_markets(limit=10, sortBy="volume")
114
+ → 按交易量排序的热门市场
115
+ ```
116
+
117
+ **状态**: ✅ 可完成
118
+
119
+ ---
120
+
121
+ ### 场景 2.2: 市场搜索
122
+
123
+ **用户输入**: "有没有关于比特币价格的市场?"
124
+
125
+ **工具调用链**:
126
+ ```
127
+ 1. search_markets(query="Bitcoin", active=true, limit=10)
128
+ → 搜索结果
129
+ ```
130
+
131
+ **状态**: ✅ 可完成
132
+
133
+ ---
134
+
135
+ ### 场景 2.3: 市场详情
136
+
137
+ **用户输入**: "告诉我 'us-recession-in-2025' 市场的详情"
138
+
139
+ **工具调用链**:
140
+ ```
141
+ 1. get_market(identifier="us-recession-in-2025")
142
+ → 市场信息、价格、状态
143
+ ```
144
+
145
+ **状态**: ✅ 可完成
146
+
147
+ ---
148
+
149
+ ### 场景 2.4: 市场交易流分析
150
+
151
+ **用户输入**: "这个市场最近的交易是什么方向?"
152
+
153
+ **工具调用链**:
154
+ ```
155
+ 1. get_market_trades(conditionId, limit=50)
156
+ → 最近交易 + buyVolume24h / sellVolume24h 摘要
157
+ ```
158
+
159
+ **状态**: ✅ 可完成
160
+
161
+ ---
162
+
163
+ ### 场景 2.5: 找出有套利机会的市场 ✅ (新增工具)
164
+
165
+ **用户输入**: "有没有套利机会?"
166
+
167
+ **工具调用链**:
168
+ ```
169
+ 1. get_trending_markets(limit=20)
170
+ → 获取热门市场列表
171
+
172
+ 2. FOR each market:
173
+ detect_arbitrage(conditionId, threshold=0.005)
174
+ → 检测套利机会 (long/short arb)
175
+ ```
176
+
177
+ **状态**: ✅ 可完成 (已添加 `detect_arbitrage` 工具)
178
+
179
+ ---
180
+
181
+ ## 类别 3: 交易执行 (✅ 完整支持)
182
+
183
+ ### 场景 3.1: 下单
184
+
185
+ **用户输入**: "在 Trump 市场买入 $50 的 Yes"
186
+
187
+ **工具调用链**:
188
+ ```
189
+ 1. search_markets(query="Trump")
190
+ → conditionId
191
+
192
+ 2. place_market_order(conditionId, outcome="Yes", side="BUY", amount=50)
193
+ → 订单结果
194
+ ```
195
+
196
+ **状态**: ✅ 可完成
197
+
198
+ ---
199
+
200
+ ### 场景 3.2: 查看订单
201
+
202
+ **用户输入**: "我现在有哪些挂单?"
203
+
204
+ **工具调用链**:
205
+ ```
206
+ 1. get_my_orders(status="LIVE")
207
+ → 订单列表
208
+ ```
209
+
210
+ **状态**: ✅ 可完成
211
+
212
+ ---
213
+
214
+ ### 场景 3.3: 取消订单
215
+
216
+ **用户输入**: "取消订单 order_xxx"
217
+
218
+ **工具调用链**:
219
+ ```
220
+ 1. cancel_order(orderId="order_xxx")
221
+ → 取消结果
222
+ ```
223
+
224
+ **状态**: ✅ 可完成
225
+
226
+ ---
227
+
228
+ ### 场景 3.4: 取消所有订单 ✅ (新增工具)
229
+
230
+ **用户输入**: "取消我所有的挂单"
231
+
232
+ **工具调用链**:
233
+ ```
234
+ 1. cancel_all_orders()
235
+ → 一次性取消所有挂单
236
+ ```
237
+
238
+ **状态**: ✅ 可完成 (已添加 `cancel_all_orders` 工具)
239
+
240
+ ---
241
+
242
+ ## 类别 4: 聪明钱 (⚠️ 部分支持)
243
+
244
+ ### 场景 4.1: 发现聪明钱 ❌
245
+
246
+ **用户输入**: "谁是 Polymarket 上的聪明钱?"
247
+
248
+ **工具调用链**:
249
+ ```
250
+ 1. get_smart_money_list(limit=20, minPnl=10000) → ❌ 工具不存在
251
+ ```
252
+
253
+ **状态**: ❌ 无法完成
254
+
255
+ **变通方案**:
256
+ ```
257
+ 1. get_leaderboard(limit=100, sortBy="pnl")
258
+ → 可以获取排行榜,但无法识别"聪明钱"特征
259
+ ```
260
+
261
+ **备注**: SmartMoneyService 是 WalletService 的封装,暂不实现。
262
+
263
+ ---
264
+
265
+ ### 场景 4.2: 检查是否聪明钱 ❌
266
+
267
+ **用户输入**: "0xabc...def 是聪明钱吗?"
268
+
269
+ **工具调用链**:
270
+ ```
271
+ 1. check_is_smart_money(address="0xabc...def") → ❌ 工具不存在
272
+ ```
273
+
274
+ **状态**: ❌ 无法完成
275
+
276
+ ---
277
+
278
+ ### 场景 4.3: 聪明钱持仓对比 ⚠️
279
+
280
+ **用户输入**: "聪明钱们都在买什么?"
281
+
282
+ **工具调用链**:
283
+ ```
284
+ 1. get_leaderboard(limit=10, sortBy="pnl")
285
+ → 获取排行榜前 10
286
+
287
+ 2. FOR each trader:
288
+ get_trader_positions(address)
289
+ → 获取持仓
290
+ ```
291
+
292
+ **状态**: ⚠️ 部分可完成 (使用排行榜代替聪明钱列表)
293
+
294
+ ---
295
+
296
+ ### 场景 4.4: 分析某个钱包的聪明钱得分 ✅
297
+
298
+ **用户输入**: "分析这个钱包是不是值得跟单"
299
+
300
+ **工具调用链**:
301
+ ```
302
+ 1. get_trader_profile(address)
303
+ → PnL、胜率、smartScore
304
+
305
+ 2. get_trader_closed_positions(address, sortBy="REALIZEDPNL")
306
+ → 分析历史表现
307
+
308
+ 3. get_trader_trades(address, limit=50)
309
+ → 分析最近交易模式
310
+ ```
311
+
312
+ **状态**: ✅ 可完成 (profile 中包含 smartScore)
313
+
314
+ ---
315
+
316
+ ## 类别 5: 技术分析 (✅ 完整支持 - 新增)
317
+
318
+ ### 场景 5.1: K 线分析 ✅ (新增工具)
319
+
320
+ **用户输入**: "给我这个市场的 1 小时 K 线"
321
+
322
+ **工具调用链**:
323
+ ```
324
+ 1. get_klines(conditionId, interval="1h", limit=100)
325
+ → K 线数据 (OHLCV)
326
+ ```
327
+
328
+ **状态**: ✅ 可完成 (已添加 `get_klines` 工具)
329
+
330
+ ---
331
+
332
+ ### 场景 5.2: 双向 K 线分析 ✅ (新增工具)
333
+
334
+ **用户输入**: "对比 Yes 和 No 的价格走势"
335
+
336
+ **工具调用链**:
337
+ ```
338
+ 1. get_klines(conditionId, interval="1h", outcome="both")
339
+ → 同时获取 Yes 和 No 的 K 线,包含 spread 分析
340
+ ```
341
+
342
+ **状态**: ✅ 可完成
343
+
344
+ ---
345
+
346
+ ### 场景 5.3: 价格历史 ✅ (新增工具)
347
+
348
+ **用户输入**: "这个市场过去一周价格走势如何?"
349
+
350
+ **工具调用链**:
351
+ ```
352
+ 1. get_price_history(tokenId, interval="1w")
353
+ → 价格历史数据
354
+ ```
355
+
356
+ **状态**: ✅ 可完成 (已添加 `get_price_history` 工具)
357
+
358
+ ---
359
+
360
+ ### 场景 5.4: 实时价差分析 ✅ (新增工具)
361
+
362
+ **用户输入**: "这个市场的价差是多少?"
363
+
364
+ **工具调用链**:
365
+ ```
366
+ 1. get_realtime_spread(conditionId)
367
+ → Yes/No 的 bid/ask、spread、套利机会分析
368
+ ```
369
+
370
+ **状态**: ✅ 可完成 (已添加 `get_realtime_spread` 工具)
371
+
372
+ ---
373
+
374
+ ## 类别 6: 做市 (✅ 完整支持 - 新增)
375
+
376
+ ### 场景 6.1: 查看收益 ✅ (新增工具)
377
+
378
+ **用户输入**: "我今天做市赚了多少?"
379
+
380
+ **工具调用链**:
381
+ ```
382
+ 1. get_earnings(date="2024-12-29")
383
+ → 当日做市收益
384
+ ```
385
+
386
+ **状态**: ✅ 可完成 (已添加 `get_earnings` 工具)
387
+
388
+ ---
389
+
390
+ ### 场景 6.2: 发现奖励市场 ✅ (新增工具)
391
+
392
+ **用户输入**: "哪些市场有做市奖励?"
393
+
394
+ **工具调用链**:
395
+ ```
396
+ 1. get_current_rewards()
397
+ → 当前有奖励的市场列表
398
+ ```
399
+
400
+ **状态**: ✅ 可完成 (已添加 `get_current_rewards` 工具)
401
+
402
+ ---
403
+
404
+ ### 场景 6.3: 检查订单是否计分 ✅ (新增工具)
405
+
406
+ **用户输入**: "我的订单在计分吗?"
407
+
408
+ **工具调用链**:
409
+ ```
410
+ 1. get_my_orders(status="LIVE")
411
+ → 获取订单列表
412
+
413
+ 2. check_order_scoring(orderId)
414
+ → 检查订单是否计分
415
+ ```
416
+
417
+ **状态**: ✅ 可完成 (已添加 `check_order_scoring` 工具)
418
+
419
+ ---
420
+
421
+ ## 类别 7: CTF 操作 (✅ 完整支持 - 新增)
422
+
423
+ ### 场景 7.1: Split 操作
424
+
425
+ **用户输入**: "我想把 100 USDC 拆分成 Yes 和 No 代币"
426
+
427
+ **工具调用链**:
428
+ ```
429
+ 1. check_ctf_ready(amount="100")
430
+ → 检查余额和授权是否就绪
431
+
432
+ 2. ctf_split(conditionId, amount="100")
433
+ → 执行 Split: 100 USDC → 100 Yes + 100 No
434
+ ```
435
+
436
+ **状态**: ✅ 可完成 (已添加 CTF 工具)
437
+
438
+ ---
439
+
440
+ ### 场景 7.2: Merge 操作
441
+
442
+ **用户输入**: "把我的 Yes 和 No 代币合并回 USDC"
443
+
444
+ **工具调用链**:
445
+ ```
446
+ 1. get_position_balance(conditionId)
447
+ → 查看 Yes/No 余额
448
+
449
+ 2. ctf_merge(conditionId, amount="100")
450
+ → 执行 Merge: 100 Yes + 100 No → 100 USDC
451
+ ```
452
+
453
+ **状态**: ✅ 可完成
454
+
455
+ ---
456
+
457
+ ### 场景 7.3: Redeem 操作
458
+
459
+ **用户输入**: "市场已经结算了,帮我赎回获胜代币"
460
+
461
+ **工具调用链**:
462
+ ```
463
+ 1. get_market_resolution(conditionId)
464
+ → 检查市场是否已结算,获取获胜方
465
+
466
+ 2. ctf_redeem(conditionId)
467
+ → 赎回获胜代币为 USDC
468
+ ```
469
+
470
+ **状态**: ✅ 可完成
471
+
472
+ ---
473
+
474
+ ### 场景 7.4: Gas 估算
475
+
476
+ **用户输入**: "Split 100 USDC 需要多少 Gas?"
477
+
478
+ **工具调用链**:
479
+ ```
480
+ 1. get_gas_price()
481
+ → 当前 Polygon 网络 Gas 价格
482
+
483
+ 2. estimate_gas(operation="split", conditionId, amount="100")
484
+ → 估算 Gas 费用 (MATIC 和 USD)
485
+ ```
486
+
487
+ **状态**: ✅ 可完成
488
+
489
+ ---
490
+
491
+ ## 总结
492
+
493
+ ### 工具补充前后对比
494
+
495
+ | 指标 | 补充前 | 补充后 | 变化 |
496
+ |------|--------|--------|------|
497
+ | 总场景数 | 23 | 29 | +6 |
498
+ | 可完成 | 11 (48%) | 26 (90%) | +15 |
499
+ | 部分完成 | 2 (9%) | 1 (3%) | -1 |
500
+ | 无法完成 | 10 (43%) | 2 (7%) | -8 |
501
+
502
+ ### 新增工具列表
503
+
504
+ | 类别 | 工具 | 功能 |
505
+ |------|------|------|
506
+ | MarketService | `get_klines` | K 线数据 |
507
+ | | `get_price_history` | 价格历史 |
508
+ | | `detect_arbitrage` | 套利检测 |
509
+ | | `detect_market_signals` | 市场信号 |
510
+ | | `get_realtime_spread` | 实时价差 |
511
+ | TradingService | `cancel_all_orders` | 批量取消 |
512
+ | | `get_my_trades` | 交易历史 |
513
+ | | `get_earnings` | 做市收益 |
514
+ | | `get_current_rewards` | 奖励市场 |
515
+ | | `check_order_scoring` | 订单计分 |
516
+ | OnchainService | `ctf_split` | Split 操作 |
517
+ | | `ctf_merge` | Merge 操作 |
518
+ | | `ctf_redeem` | Redeem 操作 |
519
+ | | `get_position_balance` | 持仓余额 |
520
+ | | `get_market_resolution` | 市场结算 |
521
+ | | `check_ctf_ready` | CTF 就绪检查 |
522
+ | | `estimate_gas` | Gas 估算 |
523
+ | | `get_gas_price` | Gas 价格 |
524
+
525
+ ### 剩余无法完成的场景
526
+
527
+ | 场景 | 原因 | 变通方案 |
528
+ |------|------|----------|
529
+ | 4.1 发现聪明钱 | SmartMoneyService 暂不实现 | 使用 `get_leaderboard` |
530
+ | 4.2 检查是否聪明钱 | 同上 | 使用 `get_trader_profile` 查看 smartScore |
@@ -0,0 +1,190 @@
1
+ # 实现计划
2
+
3
+ > 按优先级排列的工具补充计划
4
+ > 状态: ✅ 已完成 (2024-12-29)
5
+
6
+ ---
7
+
8
+ ## Phase 1: MarketService 工具 ✅ 已完成
9
+
10
+ ### 目标
11
+ 让 MCP 能够获取 K 线、价格历史、套利和信号检测。
12
+
13
+ ### 实现的工具
14
+
15
+ | 工具 | 功能 | 文件 |
16
+ |------|------|------|
17
+ | `get_klines` | K 线数据 (支持 dual K-lines) | `market.ts` |
18
+ | `get_price_history` | 价格历史 | `market.ts` |
19
+ | `detect_arbitrage` | 套利检测 | `market.ts` |
20
+ | `detect_market_signals` | 市场信号 | `market.ts` |
21
+ | `get_realtime_spread` | 实时价差 | `market.ts` |
22
+
23
+ ### 使用示例
24
+
25
+ ```typescript
26
+ // K 线数据
27
+ get_klines(conditionId, interval="1h", limit=100)
28
+ get_klines(conditionId, interval="1h", outcome="both") // dual K-lines
29
+
30
+ // 价格历史
31
+ get_price_history(tokenId, interval="1w")
32
+
33
+ // 套利检测
34
+ detect_arbitrage(conditionId, threshold=0.005)
35
+
36
+ // 市场信号
37
+ detect_market_signals(conditionId)
38
+
39
+ // 实时价差
40
+ get_realtime_spread(conditionId)
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Phase 2: TradingService 工具 ✅ 已完成
46
+
47
+ ### 目标
48
+ 扩展交易功能,支持批量取消、交易历史和做市奖励。
49
+
50
+ ### 实现的工具
51
+
52
+ | 工具 | 功能 | 文件 |
53
+ |------|------|------|
54
+ | `cancel_all_orders` | 取消所有订单 | `trade.ts` |
55
+ | `get_my_trades` | 交易历史 | `trade.ts` |
56
+ | `get_earnings` | 做市收益 | `trade.ts` |
57
+ | `get_current_rewards` | 奖励市场 | `trade.ts` |
58
+ | `check_order_scoring` | 订单计分 | `trade.ts` |
59
+
60
+ ### 使用示例
61
+
62
+ ```typescript
63
+ // 取消所有订单
64
+ cancel_all_orders()
65
+
66
+ // 交易历史
67
+ get_my_trades(limit=50, market=conditionId)
68
+
69
+ // 做市收益
70
+ get_earnings(date="2024-12-29")
71
+
72
+ // 奖励市场
73
+ get_current_rewards()
74
+
75
+ // 订单计分
76
+ check_order_scoring(orderId)
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Phase 3: OnchainService (CTF) 工具 ✅ 已完成
82
+
83
+ ### 目标
84
+ 支持 CTF (Conditional Token Framework) 操作: Split, Merge, Redeem。
85
+
86
+ ### 实现的工具
87
+
88
+ | 工具 | 功能 | 文件 |
89
+ |------|------|------|
90
+ | `ctf_split` | Split USDC → YES + NO | `onchain.ts` |
91
+ | `ctf_merge` | Merge YES + NO → USDC | `onchain.ts` |
92
+ | `ctf_redeem` | 赎回获胜代币 | `onchain.ts` |
93
+ | `get_position_balance` | CTF 持仓余额 | `onchain.ts` |
94
+ | `get_market_resolution` | 市场结算状态 | `onchain.ts` |
95
+ | `check_ctf_ready` | CTF 就绪检查 | `onchain.ts` |
96
+ | `estimate_gas` | Gas 估算 | `onchain.ts` |
97
+ | `get_gas_price` | Gas 价格 | `onchain.ts` |
98
+
99
+ ### 使用示例
100
+
101
+ ```typescript
102
+ // 检查就绪状态
103
+ check_ctf_ready(amount="100")
104
+
105
+ // Split
106
+ ctf_split(conditionId, amount="100")
107
+
108
+ // Merge
109
+ ctf_merge(conditionId, amount="100")
110
+
111
+ // 查看余额
112
+ get_position_balance(conditionId)
113
+
114
+ // 检查市场结算
115
+ get_market_resolution(conditionId)
116
+
117
+ // Redeem
118
+ ctf_redeem(conditionId)
119
+
120
+ // Gas
121
+ get_gas_price()
122
+ estimate_gas(operation="split", conditionId, amount="100")
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Phase 4: SmartMoneyService ⚪ 暂缓
128
+
129
+ ### 原因
130
+ SmartMoneyService 是 WalletService 的封装,核心数据已通过以下工具获取:
131
+ - `get_leaderboard(sortBy="pnl")` - 高 PnL 钱包
132
+ - `get_trader_profile` - smartScore 字段
133
+
134
+ ### 变通方案
135
+
136
+ ```typescript
137
+ // 获取"聪明钱"候选
138
+ get_leaderboard(limit=100, sortBy="pnl")
139
+
140
+ // 评估钱包质量
141
+ get_trader_profile(address)
142
+ // 返回 { stats: { smartScore: 40 } }
143
+ ```
144
+
145
+ ---
146
+
147
+ ## 实现完成清单
148
+
149
+ ### ✅ Phase 1: MarketService
150
+ - [x] 创建 K 线工具定义
151
+ - [x] 实现 `handleGetKlines`
152
+ - [x] 实现 `handleGetPriceHistory`
153
+ - [x] 实现 `handleDetectArbitrage`
154
+ - [x] 实现 `handleDetectMarketSignals`
155
+ - [x] 实现 `handleGetRealtimeSpread`
156
+ - [x] 添加类型定义
157
+ - [x] 注册到 MCP server
158
+
159
+ ### ✅ Phase 2: TradingService
160
+ - [x] 实现 `handleCancelAllOrders`
161
+ - [x] 实现 `handleGetMyTrades`
162
+ - [x] 实现 `handleGetEarnings`
163
+ - [x] 实现 `handleGetCurrentRewards`
164
+ - [x] 实现 `handleCheckOrderScoring`
165
+ - [x] 添加类型定义
166
+ - [x] 注册到 MCP server
167
+
168
+ ### ✅ Phase 3: OnchainService
169
+ - [x] 创建 `onchain.ts` 文件
170
+ - [x] 实现 `handleCtfSplit`
171
+ - [x] 实现 `handleCtfMerge`
172
+ - [x] 实现 `handleCtfRedeem`
173
+ - [x] 实现 `handleGetPositionBalance`
174
+ - [x] 实现 `handleGetMarketResolution`
175
+ - [x] 实现 `handleCheckCtfReady`
176
+ - [x] 实现 `handleEstimateGas`
177
+ - [x] 实现 `handleGetGasPrice`
178
+ - [x] 添加类型定义
179
+ - [x] 注册到 MCP server
180
+
181
+ ---
182
+
183
+ ## 验收结果
184
+
185
+ | 验收项 | 状态 |
186
+ |--------|------|
187
+ | TypeScript 编译通过 | ✅ |
188
+ | 工具定义正确注册 | ✅ |
189
+ | 场景覆盖率 90%+ | ✅ (90%) |
190
+ | 文档更新 | ✅ |