@catalyst-team/poly-sdk 0.1.0

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 (244) hide show
  1. package/.env +0 -0
  2. package/README.md +803 -0
  3. package/dist/__tests__/clob-api.test.d.ts +5 -0
  4. package/dist/__tests__/clob-api.test.d.ts.map +1 -0
  5. package/dist/__tests__/clob-api.test.js +240 -0
  6. package/dist/__tests__/clob-api.test.js.map +1 -0
  7. package/dist/__tests__/integration/bridge-client.integration.test.d.ts +11 -0
  8. package/dist/__tests__/integration/bridge-client.integration.test.d.ts.map +1 -0
  9. package/dist/__tests__/integration/bridge-client.integration.test.js +260 -0
  10. package/dist/__tests__/integration/bridge-client.integration.test.js.map +1 -0
  11. package/dist/__tests__/integration/clob-api.integration.test.d.ts +13 -0
  12. package/dist/__tests__/integration/clob-api.integration.test.d.ts.map +1 -0
  13. package/dist/__tests__/integration/clob-api.integration.test.js +170 -0
  14. package/dist/__tests__/integration/clob-api.integration.test.js.map +1 -0
  15. package/dist/__tests__/integration/ctf-client.integration.test.d.ts +17 -0
  16. package/dist/__tests__/integration/ctf-client.integration.test.d.ts.map +1 -0
  17. package/dist/__tests__/integration/ctf-client.integration.test.js +234 -0
  18. package/dist/__tests__/integration/ctf-client.integration.test.js.map +1 -0
  19. package/dist/__tests__/integration/data-api.integration.test.d.ts +9 -0
  20. package/dist/__tests__/integration/data-api.integration.test.d.ts.map +1 -0
  21. package/dist/__tests__/integration/data-api.integration.test.js +161 -0
  22. package/dist/__tests__/integration/data-api.integration.test.js.map +1 -0
  23. package/dist/__tests__/integration/gamma-api.integration.test.d.ts +9 -0
  24. package/dist/__tests__/integration/gamma-api.integration.test.d.ts.map +1 -0
  25. package/dist/__tests__/integration/gamma-api.integration.test.js +170 -0
  26. package/dist/__tests__/integration/gamma-api.integration.test.js.map +1 -0
  27. package/dist/__tests__/test-utils.d.ts +92 -0
  28. package/dist/__tests__/test-utils.d.ts.map +1 -0
  29. package/dist/__tests__/test-utils.js +143 -0
  30. package/dist/__tests__/test-utils.js.map +1 -0
  31. package/dist/clients/bridge-client.d.ts +388 -0
  32. package/dist/clients/bridge-client.d.ts.map +1 -0
  33. package/dist/clients/bridge-client.js +587 -0
  34. package/dist/clients/bridge-client.js.map +1 -0
  35. package/dist/clients/clob-api.d.ts +318 -0
  36. package/dist/clients/clob-api.d.ts.map +1 -0
  37. package/dist/clients/clob-api.js +388 -0
  38. package/dist/clients/clob-api.js.map +1 -0
  39. package/dist/clients/ctf-client.d.ts +473 -0
  40. package/dist/clients/ctf-client.d.ts.map +1 -0
  41. package/dist/clients/ctf-client.js +915 -0
  42. package/dist/clients/ctf-client.js.map +1 -0
  43. package/dist/clients/data-api.d.ts +134 -0
  44. package/dist/clients/data-api.d.ts.map +1 -0
  45. package/dist/clients/data-api.js +265 -0
  46. package/dist/clients/data-api.js.map +1 -0
  47. package/dist/clients/gamma-api.d.ts +401 -0
  48. package/dist/clients/gamma-api.d.ts.map +1 -0
  49. package/dist/clients/gamma-api.js +352 -0
  50. package/dist/clients/gamma-api.js.map +1 -0
  51. package/dist/clients/trading-client.d.ts +252 -0
  52. package/dist/clients/trading-client.d.ts.map +1 -0
  53. package/dist/clients/trading-client.js +543 -0
  54. package/dist/clients/trading-client.js.map +1 -0
  55. package/dist/clients/websocket-manager.d.ts +100 -0
  56. package/dist/clients/websocket-manager.d.ts.map +1 -0
  57. package/dist/clients/websocket-manager.js +193 -0
  58. package/dist/clients/websocket-manager.js.map +1 -0
  59. package/dist/core/cache-adapter-bridge.d.ts +36 -0
  60. package/dist/core/cache-adapter-bridge.d.ts.map +1 -0
  61. package/dist/core/cache-adapter-bridge.js +81 -0
  62. package/dist/core/cache-adapter-bridge.js.map +1 -0
  63. package/dist/core/cache.d.ts +40 -0
  64. package/dist/core/cache.d.ts.map +1 -0
  65. package/dist/core/cache.js +71 -0
  66. package/dist/core/cache.js.map +1 -0
  67. package/dist/core/errors.d.ts +38 -0
  68. package/dist/core/errors.d.ts.map +1 -0
  69. package/dist/core/errors.js +84 -0
  70. package/dist/core/errors.js.map +1 -0
  71. package/dist/core/rate-limiter.d.ts +31 -0
  72. package/dist/core/rate-limiter.d.ts.map +1 -0
  73. package/dist/core/rate-limiter.js +70 -0
  74. package/dist/core/rate-limiter.js.map +1 -0
  75. package/dist/core/types.d.ts +314 -0
  76. package/dist/core/types.d.ts.map +1 -0
  77. package/dist/core/types.js +19 -0
  78. package/dist/core/types.js.map +1 -0
  79. package/dist/core/unified-cache.d.ts +63 -0
  80. package/dist/core/unified-cache.d.ts.map +1 -0
  81. package/dist/core/unified-cache.js +114 -0
  82. package/dist/core/unified-cache.js.map +1 -0
  83. package/dist/index.d.ts +94 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +258 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/mcp/errors.d.ts +33 -0
  88. package/dist/mcp/errors.d.ts.map +1 -0
  89. package/dist/mcp/errors.js +86 -0
  90. package/dist/mcp/errors.js.map +1 -0
  91. package/dist/mcp/index.d.ts +62 -0
  92. package/dist/mcp/index.d.ts.map +1 -0
  93. package/dist/mcp/index.js +173 -0
  94. package/dist/mcp/index.js.map +1 -0
  95. package/dist/mcp/server.d.ts +17 -0
  96. package/dist/mcp/server.d.ts.map +1 -0
  97. package/dist/mcp/server.js +155 -0
  98. package/dist/mcp/server.js.map +1 -0
  99. package/dist/mcp/tools/guide.d.ts +12 -0
  100. package/dist/mcp/tools/guide.d.ts.map +1 -0
  101. package/dist/mcp/tools/guide.js +801 -0
  102. package/dist/mcp/tools/guide.js.map +1 -0
  103. package/dist/mcp/tools/index.d.ts +11 -0
  104. package/dist/mcp/tools/index.d.ts.map +1 -0
  105. package/dist/mcp/tools/index.js +27 -0
  106. package/dist/mcp/tools/index.js.map +1 -0
  107. package/dist/mcp/tools/market.d.ts +11 -0
  108. package/dist/mcp/tools/market.d.ts.map +1 -0
  109. package/dist/mcp/tools/market.js +314 -0
  110. package/dist/mcp/tools/market.js.map +1 -0
  111. package/dist/mcp/tools/order.d.ts +10 -0
  112. package/dist/mcp/tools/order.d.ts.map +1 -0
  113. package/dist/mcp/tools/order.js +258 -0
  114. package/dist/mcp/tools/order.js.map +1 -0
  115. package/dist/mcp/tools/trade.d.ts +38 -0
  116. package/dist/mcp/tools/trade.d.ts.map +1 -0
  117. package/dist/mcp/tools/trade.js +314 -0
  118. package/dist/mcp/tools/trade.js.map +1 -0
  119. package/dist/mcp/tools/trader.d.ts +11 -0
  120. package/dist/mcp/tools/trader.d.ts.map +1 -0
  121. package/dist/mcp/tools/trader.js +277 -0
  122. package/dist/mcp/tools/trader.js.map +1 -0
  123. package/dist/mcp/tools/wallet.d.ts +274 -0
  124. package/dist/mcp/tools/wallet.d.ts.map +1 -0
  125. package/dist/mcp/tools/wallet.js +579 -0
  126. package/dist/mcp/tools/wallet.js.map +1 -0
  127. package/dist/mcp/types.d.ts +413 -0
  128. package/dist/mcp/types.d.ts.map +1 -0
  129. package/dist/mcp/types.js +5 -0
  130. package/dist/mcp/types.js.map +1 -0
  131. package/dist/services/authorization-service.d.ts +97 -0
  132. package/dist/services/authorization-service.d.ts.map +1 -0
  133. package/dist/services/authorization-service.js +279 -0
  134. package/dist/services/authorization-service.js.map +1 -0
  135. package/dist/services/market-service.d.ts +108 -0
  136. package/dist/services/market-service.d.ts.map +1 -0
  137. package/dist/services/market-service.js +458 -0
  138. package/dist/services/market-service.js.map +1 -0
  139. package/dist/services/realtime-service.d.ts +82 -0
  140. package/dist/services/realtime-service.d.ts.map +1 -0
  141. package/dist/services/realtime-service.js +150 -0
  142. package/dist/services/realtime-service.js.map +1 -0
  143. package/dist/services/swap-service.d.ts +217 -0
  144. package/dist/services/swap-service.d.ts.map +1 -0
  145. package/dist/services/swap-service.js +695 -0
  146. package/dist/services/swap-service.js.map +1 -0
  147. package/dist/services/wallet-service.d.ts +94 -0
  148. package/dist/services/wallet-service.d.ts.map +1 -0
  149. package/dist/services/wallet-service.js +173 -0
  150. package/dist/services/wallet-service.js.map +1 -0
  151. package/dist/utils/price-utils.d.ts +153 -0
  152. package/dist/utils/price-utils.d.ts.map +1 -0
  153. package/dist/utils/price-utils.js +236 -0
  154. package/dist/utils/price-utils.js.map +1 -0
  155. package/docs/00-design.md +760 -0
  156. package/docs/01-mcp.md +2041 -0
  157. package/docs/02-API.md +1148 -0
  158. package/docs/e2e/01-trader-tools.md +159 -0
  159. package/docs/e2e/02-market-tools.md +180 -0
  160. package/docs/e2e/03-order-tools.md +166 -0
  161. package/docs/e2e/04-wallet-tools.md +224 -0
  162. package/docs/e2e/05-trading-tools.md +327 -0
  163. package/docs/e2e/06-integration-scenarios.md +481 -0
  164. package/docs/e2e/coordinator.md +376 -0
  165. package/examples/01-basic-usage.ts +68 -0
  166. package/examples/02-smart-money.ts +95 -0
  167. package/examples/03-market-analysis.ts +108 -0
  168. package/examples/04-kline-aggregation.ts +158 -0
  169. package/examples/05-follow-wallet-strategy.ts +156 -0
  170. package/examples/06-services-demo.ts +124 -0
  171. package/examples/07-realtime-websocket.ts +117 -0
  172. package/examples/08-trading-orders.ts +278 -0
  173. package/examples/09-rewards-tracking.ts +187 -0
  174. package/examples/10-ctf-operations.ts +336 -0
  175. package/examples/11-live-arbitrage-scan.ts +221 -0
  176. package/examples/12-trending-arb-monitor.ts +406 -0
  177. package/examples/README.md +179 -0
  178. package/package.json +62 -0
  179. package/scripts/README.md +163 -0
  180. package/scripts/approvals/approve-erc1155.ts +129 -0
  181. package/scripts/approvals/approve-neg-risk-erc1155.ts +149 -0
  182. package/scripts/approvals/approve-neg-risk.ts +102 -0
  183. package/scripts/approvals/check-all-allowances.ts +150 -0
  184. package/scripts/approvals/check-allowance.ts +129 -0
  185. package/scripts/approvals/check-ctf-approval.ts +158 -0
  186. package/scripts/datas/001-report.md +486 -0
  187. package/scripts/datas/clone-modal-screenshot.png +0 -0
  188. package/scripts/deposit/deposit-native-usdc.ts +179 -0
  189. package/scripts/deposit/deposit-usdc.ts +155 -0
  190. package/scripts/deposit/swap-usdc-to-usdce.ts +375 -0
  191. package/scripts/research/research-markets.ts +166 -0
  192. package/scripts/trading/check-orders.ts +50 -0
  193. package/scripts/trading/sell-nvidia-positions.ts +206 -0
  194. package/scripts/trading/test-order.ts +172 -0
  195. package/scripts/truth.md +440 -0
  196. package/scripts/verify/test-approve-trading.ts +98 -0
  197. package/scripts/verify/test-provider-fix.ts +43 -0
  198. package/scripts/verify/test-search-mcp.ts +113 -0
  199. package/scripts/verify/verify-all-apis.ts +160 -0
  200. package/scripts/wallet/check-wallet-balances.ts +75 -0
  201. package/scripts/wallet/test-wallet-operations.ts +191 -0
  202. package/scripts/wallet/verify-wallet-tools.ts +124 -0
  203. package/src/__tests__/clob-api.test.ts +301 -0
  204. package/src/__tests__/integration/bridge-client.integration.test.ts +314 -0
  205. package/src/__tests__/integration/clob-api.integration.test.ts +218 -0
  206. package/src/__tests__/integration/ctf-client.integration.test.ts +331 -0
  207. package/src/__tests__/integration/data-api.integration.test.ts +194 -0
  208. package/src/__tests__/integration/gamma-api.integration.test.ts +206 -0
  209. package/src/__tests__/test-utils.ts +170 -0
  210. package/src/clients/bridge-client.ts +841 -0
  211. package/src/clients/clob-api.ts +629 -0
  212. package/src/clients/ctf-client.ts +1216 -0
  213. package/src/clients/data-api.ts +469 -0
  214. package/src/clients/gamma-api.ts +597 -0
  215. package/src/clients/trading-client.ts +749 -0
  216. package/src/clients/websocket-manager.ts +267 -0
  217. package/src/core/cache-adapter-bridge.ts +94 -0
  218. package/src/core/cache.ts +85 -0
  219. package/src/core/errors.ts +117 -0
  220. package/src/core/rate-limiter.ts +74 -0
  221. package/src/core/types.ts +360 -0
  222. package/src/core/unified-cache.ts +153 -0
  223. package/src/index.ts +455 -0
  224. package/src/mcp/README.md +380 -0
  225. package/src/mcp/errors.ts +124 -0
  226. package/src/mcp/index.ts +309 -0
  227. package/src/mcp/server.ts +183 -0
  228. package/src/mcp/tools/guide.ts +821 -0
  229. package/src/mcp/tools/index.ts +73 -0
  230. package/src/mcp/tools/market.ts +363 -0
  231. package/src/mcp/tools/order.ts +326 -0
  232. package/src/mcp/tools/trade.ts +417 -0
  233. package/src/mcp/tools/trader.ts +322 -0
  234. package/src/mcp/tools/wallet.ts +683 -0
  235. package/src/mcp/types.ts +472 -0
  236. package/src/services/authorization-service.ts +357 -0
  237. package/src/services/market-service.ts +544 -0
  238. package/src/services/realtime-service.ts +196 -0
  239. package/src/services/swap-service.ts +896 -0
  240. package/src/services/wallet-service.ts +259 -0
  241. package/src/utils/price-utils.ts +307 -0
  242. package/tsconfig.json +8 -0
  243. package/vitest.config.ts +19 -0
  244. package/vitest.integration.config.ts +18 -0
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Trader Tools - MCP tools for trader/wallet analysis
3
+ */
4
+ import { validateAddress, wrapError } from '../errors.js';
5
+ export const traderToolDefinitions = [
6
+ {
7
+ name: 'get_trader_positions',
8
+ description: 'Get all positions held by a trader with PnL breakdown',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ address: {
13
+ type: 'string',
14
+ description: 'Trader wallet address (0x...)',
15
+ },
16
+ },
17
+ required: ['address'],
18
+ },
19
+ },
20
+ {
21
+ name: 'get_trader_trades',
22
+ description: 'Get recent trading activity for a trader',
23
+ inputSchema: {
24
+ type: 'object',
25
+ properties: {
26
+ address: {
27
+ type: 'string',
28
+ description: 'Trader wallet address',
29
+ },
30
+ limit: {
31
+ type: 'number',
32
+ description: 'Maximum number of trades to return',
33
+ default: 20,
34
+ },
35
+ side: {
36
+ type: 'string',
37
+ enum: ['BUY', 'SELL'],
38
+ description: 'Filter by trade side',
39
+ },
40
+ },
41
+ required: ['address'],
42
+ },
43
+ },
44
+ {
45
+ name: 'get_trader_profile',
46
+ description: 'Get comprehensive trader profile with performance metrics',
47
+ inputSchema: {
48
+ type: 'object',
49
+ properties: {
50
+ address: {
51
+ type: 'string',
52
+ description: 'Trader wallet address',
53
+ },
54
+ },
55
+ required: ['address'],
56
+ },
57
+ },
58
+ {
59
+ name: 'get_leaderboard',
60
+ description: 'Get top traders by PnL',
61
+ inputSchema: {
62
+ type: 'object',
63
+ properties: {
64
+ limit: {
65
+ type: 'number',
66
+ description: 'Number of traders to return',
67
+ default: 10,
68
+ },
69
+ offset: {
70
+ type: 'number',
71
+ description: 'Pagination offset',
72
+ default: 0,
73
+ },
74
+ },
75
+ },
76
+ },
77
+ ];
78
+ export async function handleGetTraderPositions(sdk, input) {
79
+ validateAddress(input.address);
80
+ try {
81
+ const positions = await sdk.wallets.getWalletPositions(input.address);
82
+ const totalUnrealizedPnl = positions.reduce((sum, p) => sum + (p.cashPnl || 0), 0);
83
+ const totalRealizedPnl = positions.reduce((sum, p) => sum + (p.realizedPnl || 0), 0);
84
+ const winningPositions = positions.filter((p) => (p.cashPnl || 0) > 0).length;
85
+ const losingPositions = positions.filter((p) => (p.cashPnl || 0) < 0).length;
86
+ return {
87
+ trader: {
88
+ address: input.address,
89
+ displayName: null, // Will be enriched if available
90
+ },
91
+ positions: positions.map((p) => ({
92
+ market: {
93
+ conditionId: p.conditionId,
94
+ title: p.title,
95
+ slug: p.slug,
96
+ },
97
+ holding: {
98
+ outcome: p.outcome,
99
+ size: p.size,
100
+ avgPrice: p.avgPrice,
101
+ curPrice: p.curPrice,
102
+ },
103
+ pnl: {
104
+ unrealized: p.cashPnl,
105
+ unrealizedPercent: p.percentPnl,
106
+ realized: p.realizedPnl,
107
+ },
108
+ status: {
109
+ redeemable: p.redeemable,
110
+ endDate: p.endDate,
111
+ },
112
+ })),
113
+ summary: {
114
+ totalPositions: positions.length,
115
+ totalUnrealizedPnl,
116
+ totalRealizedPnl,
117
+ winningPositions,
118
+ losingPositions,
119
+ },
120
+ };
121
+ }
122
+ catch (err) {
123
+ throw wrapError(err);
124
+ }
125
+ }
126
+ export async function handleGetTraderTrades(sdk, input) {
127
+ validateAddress(input.address);
128
+ try {
129
+ const activityResult = await sdk.wallets.getWalletActivity(input.address, input.limit || 100);
130
+ let trades = activityResult.activities.filter((a) => a.type === 'TRADE');
131
+ // Filter by side if specified
132
+ if (input.side) {
133
+ trades = trades.filter((a) => a.side === input.side);
134
+ }
135
+ // Apply limit
136
+ const limit = input.limit || 20;
137
+ trades = trades.slice(0, limit);
138
+ const buyTrades = trades.filter((t) => t.side === 'BUY');
139
+ const sellTrades = trades.filter((t) => t.side === 'SELL');
140
+ return {
141
+ trader: {
142
+ address: input.address,
143
+ displayName: null,
144
+ },
145
+ trades: trades.map((t) => ({
146
+ type: t.type,
147
+ side: t.side,
148
+ market: {
149
+ conditionId: t.conditionId,
150
+ title: t.title || '',
151
+ slug: t.slug,
152
+ },
153
+ outcome: t.outcome,
154
+ execution: {
155
+ size: t.size,
156
+ price: t.price,
157
+ usdcValue: t.usdcSize || t.size * t.price,
158
+ },
159
+ timestamp: new Date(t.timestamp).toISOString(),
160
+ txHash: t.transactionHash,
161
+ })),
162
+ summary: {
163
+ totalTrades: trades.length,
164
+ buyCount: buyTrades.length,
165
+ sellCount: sellTrades.length,
166
+ buyVolume: buyTrades.reduce((sum, t) => sum + (t.usdcSize || t.size * t.price), 0),
167
+ sellVolume: sellTrades.reduce((sum, t) => sum + (t.usdcSize || t.size * t.price), 0),
168
+ },
169
+ };
170
+ }
171
+ catch (err) {
172
+ throw wrapError(err);
173
+ }
174
+ }
175
+ export async function handleGetTraderProfile(sdk, input) {
176
+ validateAddress(input.address);
177
+ try {
178
+ const profile = await sdk.wallets.getWalletProfile(input.address);
179
+ // Try to get leaderboard data for rank and official PnL
180
+ let rank = null;
181
+ let leaderboardPnl = null;
182
+ let leaderboardVolume = null;
183
+ let displayName = null;
184
+ let verified = false;
185
+ try {
186
+ const leaderboard = await sdk.wallets.getLeaderboard(0, 100);
187
+ const entry = leaderboard.entries.find((e) => e.address.toLowerCase() === input.address.toLowerCase());
188
+ if (entry) {
189
+ rank = entry.rank;
190
+ leaderboardPnl = entry.pnl;
191
+ leaderboardVolume = entry.volume;
192
+ displayName = entry.userName || null;
193
+ verified = entry.verifiedBadge || false;
194
+ }
195
+ }
196
+ catch {
197
+ // Ignore leaderboard errors
198
+ }
199
+ const winningCount = profile.positionCount > 0
200
+ ? Math.round(profile.positionCount * (profile.avgPercentPnL > 0 ? 0.6 : 0.4))
201
+ : 0;
202
+ const winRate = profile.positionCount > 0
203
+ ? winningCount / profile.positionCount
204
+ : 0;
205
+ return {
206
+ trader: {
207
+ address: input.address,
208
+ displayName,
209
+ xUsername: null,
210
+ verified,
211
+ profileImage: null,
212
+ },
213
+ ranking: {
214
+ rank,
215
+ totalTraders: 10000, // Approximate
216
+ },
217
+ performance: {
218
+ // Official PnL from leaderboard (used for ranking)
219
+ officialPnl: leaderboardPnl,
220
+ // Volume from leaderboard
221
+ totalVolume: leaderboardVolume ?? (profile.totalPnL + profile.unrealizedPnL),
222
+ // Calculated PnL from profile positions
223
+ unrealizedPnl: profile.unrealizedPnL,
224
+ realizedPnl: profile.realizedPnL,
225
+ },
226
+ stats: {
227
+ positionCount: profile.positionCount,
228
+ winRate,
229
+ avgPercentPnl: profile.avgPercentPnL,
230
+ smartScore: profile.smartScore,
231
+ },
232
+ activity: {
233
+ lastTradeAt: profile.lastActiveAt.getTime() > 0
234
+ ? profile.lastActiveAt.toISOString()
235
+ : null,
236
+ isActive: Date.now() - profile.lastActiveAt.getTime() < 7 * 24 * 60 * 60 * 1000,
237
+ },
238
+ // Explain potential PnL differences
239
+ notes: leaderboardPnl !== null && Math.abs((leaderboardPnl || 0) - (profile.unrealizedPnL + profile.realizedPnL)) > 100
240
+ ? 'Note: officialPnl (from leaderboard) may differ from unrealizedPnl + realizedPnl (from positions) due to different calculation methods. Leaderboard PnL includes historical settled positions.'
241
+ : undefined,
242
+ };
243
+ }
244
+ catch (err) {
245
+ throw wrapError(err);
246
+ }
247
+ }
248
+ export async function handleGetLeaderboard(sdk, input) {
249
+ const limit = input.limit || 10;
250
+ const offset = input.offset || 0;
251
+ try {
252
+ const page = Math.floor(offset / 50);
253
+ const leaderboard = await sdk.wallets.getLeaderboard(page, 50);
254
+ // Apply offset and limit within the page
255
+ const startIdx = offset % 50;
256
+ const entries = leaderboard.entries.slice(startIdx, startIdx + limit);
257
+ return {
258
+ traders: entries.map((e) => ({
259
+ rank: e.rank,
260
+ address: e.address,
261
+ displayName: e.userName || null,
262
+ pnl: e.pnl,
263
+ volume: e.volume,
264
+ verified: e.verifiedBadge || false,
265
+ })),
266
+ pagination: {
267
+ total: leaderboard.total,
268
+ offset,
269
+ limit,
270
+ },
271
+ };
272
+ }
273
+ catch (err) {
274
+ throw wrapError(err);
275
+ }
276
+ }
277
+ //# sourceMappingURL=trader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trader.js","sourceRoot":"","sources":["../../../src/mcp/tools/trader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ /**
2
+ * Wallet Tools - MCP tools for deposits, swaps, and authorization management
3
+ *
4
+ * These tools use SDK services:
5
+ * - BridgeClient for deposit addresses and supported assets
6
+ * - SwapService for DEX swaps on Polygon (QuickSwap V3)
7
+ * - AuthorizationService for allowance checks and approvals
8
+ * - depositUsdc() for executing USDC deposits
9
+ * - swapAndDeposit() for swapping any token to USDC and depositing
10
+ */
11
+ import type { PolymarketSDK } from '../../index.js';
12
+ import type { ToolDefinition } from '../types.js';
13
+ export declare const walletToolDefinitions: ToolDefinition[];
14
+ interface GetSupportedAssetsInput {
15
+ chainId?: number;
16
+ }
17
+ interface DepositUsdcInput {
18
+ amount: number;
19
+ token?: 'NATIVE_USDC' | 'USDC_E';
20
+ }
21
+ /**
22
+ * Get supported deposit assets
23
+ */
24
+ export declare function handleGetSupportedAssets(_sdk: PolymarketSDK, input: GetSupportedAssetsInput): Promise<{
25
+ assets: {
26
+ chainId: number;
27
+ chainName: string;
28
+ tokenSymbol: string;
29
+ tokenName: string;
30
+ tokenAddress: string;
31
+ decimals: number;
32
+ minDeposit: string;
33
+ minDepositUsd: number;
34
+ }[];
35
+ summary: {
36
+ totalChains: number;
37
+ totalAssets: number;
38
+ chains: string[];
39
+ };
40
+ }>;
41
+ /**
42
+ * Get deposit addresses for the wallet
43
+ */
44
+ export declare function handleGetDepositAddresses(sdk: PolymarketSDK): Promise<{
45
+ wallet: string;
46
+ addresses: {
47
+ evm: string;
48
+ solana: string;
49
+ bitcoin: string;
50
+ };
51
+ evmChains: string[];
52
+ instructions: string;
53
+ }>;
54
+ /**
55
+ * Deposit USDC to Polymarket
56
+ */
57
+ export declare function handleDepositUsdc(sdk: PolymarketSDK, input: DepositUsdcInput): Promise<{
58
+ success: boolean;
59
+ error: string | undefined;
60
+ wallet: string;
61
+ amount: number;
62
+ txHash?: undefined;
63
+ depositAddress?: undefined;
64
+ message?: undefined;
65
+ explorerUrl?: undefined;
66
+ } | {
67
+ success: boolean;
68
+ wallet: string;
69
+ amount: string;
70
+ txHash: string | undefined;
71
+ depositAddress: string;
72
+ message: string;
73
+ explorerUrl: string;
74
+ error?: undefined;
75
+ }>;
76
+ /**
77
+ * Check all allowances required for trading
78
+ */
79
+ export declare function handleCheckAllowances(sdk: PolymarketSDK): Promise<{
80
+ wallet: string;
81
+ erc20: {
82
+ usdc: {
83
+ balance: string;
84
+ allowances: import("../../index.js").AllowanceInfo[];
85
+ };
86
+ };
87
+ erc1155: {
88
+ conditionalTokens: {
89
+ approvals: import("../../index.js").AllowanceInfo[];
90
+ };
91
+ };
92
+ tradingReady: boolean;
93
+ issues: string[];
94
+ }>;
95
+ /**
96
+ * Set up all required approvals for trading
97
+ */
98
+ export declare function handleApproveTrading(sdk: PolymarketSDK): Promise<{
99
+ wallet: string;
100
+ erc20Approvals: import("../../index.js").ApprovalTxResult[];
101
+ erc1155Approvals: import("../../index.js").ApprovalTxResult[];
102
+ allApproved: boolean;
103
+ summary: string;
104
+ }>;
105
+ interface SwapInput {
106
+ tokenIn: string;
107
+ tokenOut: string;
108
+ amount: string;
109
+ slippage?: number;
110
+ }
111
+ interface SwapAndDepositInput {
112
+ token: string;
113
+ amount: string;
114
+ slippage?: number;
115
+ }
116
+ /**
117
+ * Swap between tokens on Polygon using QuickSwap V3
118
+ */
119
+ export declare function handleSwap(sdk: PolymarketSDK, input: SwapInput): Promise<{
120
+ success: boolean;
121
+ error: string;
122
+ wallet: string;
123
+ txHash?: undefined;
124
+ tokenIn?: undefined;
125
+ tokenOut?: undefined;
126
+ amountIn?: undefined;
127
+ amountOut?: undefined;
128
+ gasUsed?: undefined;
129
+ explorerUrl?: undefined;
130
+ } | {
131
+ success: boolean;
132
+ error: string;
133
+ wallet: string;
134
+ txHash: string;
135
+ tokenIn?: undefined;
136
+ tokenOut?: undefined;
137
+ amountIn?: undefined;
138
+ amountOut?: undefined;
139
+ gasUsed?: undefined;
140
+ explorerUrl?: undefined;
141
+ } | {
142
+ success: boolean;
143
+ wallet: string;
144
+ tokenIn: string;
145
+ tokenOut: string;
146
+ amountIn: string;
147
+ amountOut: string;
148
+ txHash: string;
149
+ gasUsed: string;
150
+ explorerUrl: string;
151
+ error?: undefined;
152
+ }>;
153
+ /**
154
+ * Swap any token to USDC and deposit to Polymarket
155
+ */
156
+ export declare function handleSwapAndDeposit(sdk: PolymarketSDK, input: SwapAndDepositInput): Promise<{
157
+ success: boolean;
158
+ error: string | undefined;
159
+ wallet: string;
160
+ token: string;
161
+ amount: string;
162
+ tokenIn?: undefined;
163
+ amountIn?: undefined;
164
+ usdcAmount?: undefined;
165
+ swapTxHash?: undefined;
166
+ depositTxHash?: undefined;
167
+ depositAddress?: undefined;
168
+ message?: undefined;
169
+ explorerUrl?: undefined;
170
+ } | {
171
+ success: boolean;
172
+ wallet: string;
173
+ tokenIn: string;
174
+ amountIn: string;
175
+ usdcAmount: string;
176
+ swapTxHash: string | null;
177
+ depositTxHash: string | undefined;
178
+ depositAddress: string;
179
+ message: string;
180
+ explorerUrl: string | undefined;
181
+ error?: undefined;
182
+ token?: undefined;
183
+ amount?: undefined;
184
+ }>;
185
+ /**
186
+ * Get balances for all supported tokens (requires configured wallet)
187
+ */
188
+ export declare function handleGetTokenBalances(sdk: PolymarketSDK): Promise<{
189
+ wallet: string;
190
+ balances: {
191
+ token: string;
192
+ symbol: string;
193
+ balance: string;
194
+ decimals: number;
195
+ }[];
196
+ nonZeroBalances: {
197
+ token: string;
198
+ balance: string;
199
+ }[];
200
+ supportedTokens: string[];
201
+ }>;
202
+ /**
203
+ * Get balances for any wallet address (no private key required)
204
+ */
205
+ export declare function handleGetWalletBalances(_sdk: PolymarketSDK, input: {
206
+ address: string;
207
+ }): Promise<{
208
+ address: string;
209
+ balances: {
210
+ token: string;
211
+ symbol: string;
212
+ balance: string;
213
+ decimals: number;
214
+ }[];
215
+ nonZeroBalances: {
216
+ token: string;
217
+ balance: string;
218
+ }[];
219
+ summary: {
220
+ totalTokens: number;
221
+ stablecoinValue: string;
222
+ };
223
+ supportedTokens: string[];
224
+ }>;
225
+ interface GetSwapQuoteInput {
226
+ tokenIn: string;
227
+ tokenOut: string;
228
+ amount: string;
229
+ }
230
+ /**
231
+ * Get a swap quote (check route availability and estimate output)
232
+ * No private key required - uses read-only provider
233
+ */
234
+ export declare function handleGetSwapQuote(_sdk: PolymarketSDK, input: GetSwapQuoteInput): Promise<{
235
+ possible: boolean;
236
+ tokenIn: string;
237
+ tokenOut: string;
238
+ amountIn: string;
239
+ amountOut: string | null;
240
+ route: string[];
241
+ routeDescription: string;
242
+ message: string;
243
+ poolExists?: undefined;
244
+ reason?: undefined;
245
+ suggestion?: undefined;
246
+ } | {
247
+ possible: boolean;
248
+ tokenIn: string;
249
+ tokenOut: string;
250
+ amountIn: string;
251
+ amountOut: null;
252
+ route: string[];
253
+ poolExists: boolean;
254
+ reason: string | undefined;
255
+ suggestion: string;
256
+ routeDescription?: undefined;
257
+ message?: undefined;
258
+ }>;
259
+ /**
260
+ * Get all available liquidity pools on QuickSwap V3
261
+ */
262
+ export declare function handleGetAvailablePools(_sdk: PolymarketSDK): Promise<{
263
+ pools: {
264
+ pair: string;
265
+ tokenA: string;
266
+ tokenB: string;
267
+ poolAddress: string | null;
268
+ }[];
269
+ totalPools: number;
270
+ supportedTokens: string[];
271
+ note: string;
272
+ }>;
273
+ export {};
274
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/wallet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AASpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,eAAO,MAAM,qBAAqB,EAAE,cAAc,EA6JjD,CAAC;AAGF,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;CAClC;AAiCD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,uBAAuB;;;;;;;;;;;;;;;;GAqC/B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,aAAa;;;;;;;;;GAkCjE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;GA8BxB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,aAAa;;;;;;;;;;;;;;;GA0B7D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,aAAa;;;;;;GAiB5D;AAGD,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CpE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCxF;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,aAAa;;;;;;;;;;;;;GA2B9D;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;GA+C3B;AAGD,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;GAkDzB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,aAAa;;;;;;;;;;GAyBhE"}