@catalyst-team/poly-sdk 0.1.0 → 0.2.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 (201) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +538 -0
  3. package/README.md +357 -78
  4. package/docs/00-design.md +1 -1
  5. package/docs/02-API.md +21 -21
  6. package/docs/arb/test-plan.md +387 -0
  7. package/docs/arb/test-results.md +336 -0
  8. package/docs/arbitrage.md +754 -0
  9. package/docs/reports/smart-money-analysis-2025-12-23-cn.md +840 -0
  10. package/examples/13-arbitrage-service.ts +211 -0
  11. package/examples/README.md +1 -1
  12. package/package.json +19 -19
  13. package/scripts/arb/faze-bo3-arb.ts +385 -0
  14. package/scripts/arb/settle-position.ts +190 -0
  15. package/scripts/arb/token-rebalancer.ts +420 -0
  16. package/scripts/arb-tests/01-unit-tests.ts +495 -0
  17. package/scripts/arb-tests/02-integration-tests.ts +412 -0
  18. package/scripts/arb-tests/03-e2e-tests.ts +503 -0
  19. package/scripts/arb-tests/README.md +109 -0
  20. package/scripts/verify/verify-all-apis.ts +1 -1
  21. package/src/clients/clob-api.ts +1 -1
  22. package/src/clients/gamma-api.ts +1 -1
  23. package/src/core/cache-adapter-bridge.ts +1 -1
  24. package/src/core/types.ts +3 -3
  25. package/src/core/unified-cache.ts +1 -1
  26. package/src/index.ts +25 -19
  27. package/src/services/arbitrage-service.ts +1807 -0
  28. package/.env +0 -0
  29. package/dist/__tests__/clob-api.test.d.ts +0 -5
  30. package/dist/__tests__/clob-api.test.d.ts.map +0 -1
  31. package/dist/__tests__/clob-api.test.js +0 -240
  32. package/dist/__tests__/clob-api.test.js.map +0 -1
  33. package/dist/__tests__/integration/bridge-client.integration.test.d.ts +0 -11
  34. package/dist/__tests__/integration/bridge-client.integration.test.d.ts.map +0 -1
  35. package/dist/__tests__/integration/bridge-client.integration.test.js +0 -260
  36. package/dist/__tests__/integration/bridge-client.integration.test.js.map +0 -1
  37. package/dist/__tests__/integration/clob-api.integration.test.d.ts +0 -13
  38. package/dist/__tests__/integration/clob-api.integration.test.d.ts.map +0 -1
  39. package/dist/__tests__/integration/clob-api.integration.test.js +0 -170
  40. package/dist/__tests__/integration/clob-api.integration.test.js.map +0 -1
  41. package/dist/__tests__/integration/ctf-client.integration.test.d.ts +0 -17
  42. package/dist/__tests__/integration/ctf-client.integration.test.d.ts.map +0 -1
  43. package/dist/__tests__/integration/ctf-client.integration.test.js +0 -234
  44. package/dist/__tests__/integration/ctf-client.integration.test.js.map +0 -1
  45. package/dist/__tests__/integration/data-api.integration.test.d.ts +0 -9
  46. package/dist/__tests__/integration/data-api.integration.test.d.ts.map +0 -1
  47. package/dist/__tests__/integration/data-api.integration.test.js +0 -161
  48. package/dist/__tests__/integration/data-api.integration.test.js.map +0 -1
  49. package/dist/__tests__/integration/gamma-api.integration.test.d.ts +0 -9
  50. package/dist/__tests__/integration/gamma-api.integration.test.d.ts.map +0 -1
  51. package/dist/__tests__/integration/gamma-api.integration.test.js +0 -170
  52. package/dist/__tests__/integration/gamma-api.integration.test.js.map +0 -1
  53. package/dist/__tests__/test-utils.d.ts +0 -92
  54. package/dist/__tests__/test-utils.d.ts.map +0 -1
  55. package/dist/__tests__/test-utils.js +0 -143
  56. package/dist/__tests__/test-utils.js.map +0 -1
  57. package/dist/clients/bridge-client.d.ts +0 -388
  58. package/dist/clients/bridge-client.d.ts.map +0 -1
  59. package/dist/clients/bridge-client.js +0 -587
  60. package/dist/clients/bridge-client.js.map +0 -1
  61. package/dist/clients/clob-api.d.ts +0 -318
  62. package/dist/clients/clob-api.d.ts.map +0 -1
  63. package/dist/clients/clob-api.js +0 -388
  64. package/dist/clients/clob-api.js.map +0 -1
  65. package/dist/clients/ctf-client.d.ts +0 -473
  66. package/dist/clients/ctf-client.d.ts.map +0 -1
  67. package/dist/clients/ctf-client.js +0 -915
  68. package/dist/clients/ctf-client.js.map +0 -1
  69. package/dist/clients/data-api.d.ts +0 -134
  70. package/dist/clients/data-api.d.ts.map +0 -1
  71. package/dist/clients/data-api.js +0 -265
  72. package/dist/clients/data-api.js.map +0 -1
  73. package/dist/clients/gamma-api.d.ts +0 -401
  74. package/dist/clients/gamma-api.d.ts.map +0 -1
  75. package/dist/clients/gamma-api.js +0 -352
  76. package/dist/clients/gamma-api.js.map +0 -1
  77. package/dist/clients/trading-client.d.ts +0 -252
  78. package/dist/clients/trading-client.d.ts.map +0 -1
  79. package/dist/clients/trading-client.js +0 -543
  80. package/dist/clients/trading-client.js.map +0 -1
  81. package/dist/clients/websocket-manager.d.ts +0 -100
  82. package/dist/clients/websocket-manager.d.ts.map +0 -1
  83. package/dist/clients/websocket-manager.js +0 -193
  84. package/dist/clients/websocket-manager.js.map +0 -1
  85. package/dist/core/cache-adapter-bridge.d.ts +0 -36
  86. package/dist/core/cache-adapter-bridge.d.ts.map +0 -1
  87. package/dist/core/cache-adapter-bridge.js +0 -81
  88. package/dist/core/cache-adapter-bridge.js.map +0 -1
  89. package/dist/core/cache.d.ts +0 -40
  90. package/dist/core/cache.d.ts.map +0 -1
  91. package/dist/core/cache.js +0 -71
  92. package/dist/core/cache.js.map +0 -1
  93. package/dist/core/errors.d.ts +0 -38
  94. package/dist/core/errors.d.ts.map +0 -1
  95. package/dist/core/errors.js +0 -84
  96. package/dist/core/errors.js.map +0 -1
  97. package/dist/core/rate-limiter.d.ts +0 -31
  98. package/dist/core/rate-limiter.d.ts.map +0 -1
  99. package/dist/core/rate-limiter.js +0 -70
  100. package/dist/core/rate-limiter.js.map +0 -1
  101. package/dist/core/types.d.ts +0 -314
  102. package/dist/core/types.d.ts.map +0 -1
  103. package/dist/core/types.js +0 -19
  104. package/dist/core/types.js.map +0 -1
  105. package/dist/core/unified-cache.d.ts +0 -63
  106. package/dist/core/unified-cache.d.ts.map +0 -1
  107. package/dist/core/unified-cache.js +0 -114
  108. package/dist/core/unified-cache.js.map +0 -1
  109. package/dist/index.d.ts +0 -94
  110. package/dist/index.d.ts.map +0 -1
  111. package/dist/index.js +0 -258
  112. package/dist/index.js.map +0 -1
  113. package/dist/mcp/errors.d.ts +0 -33
  114. package/dist/mcp/errors.d.ts.map +0 -1
  115. package/dist/mcp/errors.js +0 -86
  116. package/dist/mcp/errors.js.map +0 -1
  117. package/dist/mcp/index.d.ts +0 -62
  118. package/dist/mcp/index.d.ts.map +0 -1
  119. package/dist/mcp/index.js +0 -173
  120. package/dist/mcp/index.js.map +0 -1
  121. package/dist/mcp/server.d.ts +0 -17
  122. package/dist/mcp/server.d.ts.map +0 -1
  123. package/dist/mcp/server.js +0 -155
  124. package/dist/mcp/server.js.map +0 -1
  125. package/dist/mcp/tools/guide.d.ts +0 -12
  126. package/dist/mcp/tools/guide.d.ts.map +0 -1
  127. package/dist/mcp/tools/guide.js +0 -801
  128. package/dist/mcp/tools/guide.js.map +0 -1
  129. package/dist/mcp/tools/index.d.ts +0 -11
  130. package/dist/mcp/tools/index.d.ts.map +0 -1
  131. package/dist/mcp/tools/index.js +0 -27
  132. package/dist/mcp/tools/index.js.map +0 -1
  133. package/dist/mcp/tools/market.d.ts +0 -11
  134. package/dist/mcp/tools/market.d.ts.map +0 -1
  135. package/dist/mcp/tools/market.js +0 -314
  136. package/dist/mcp/tools/market.js.map +0 -1
  137. package/dist/mcp/tools/order.d.ts +0 -10
  138. package/dist/mcp/tools/order.d.ts.map +0 -1
  139. package/dist/mcp/tools/order.js +0 -258
  140. package/dist/mcp/tools/order.js.map +0 -1
  141. package/dist/mcp/tools/trade.d.ts +0 -38
  142. package/dist/mcp/tools/trade.d.ts.map +0 -1
  143. package/dist/mcp/tools/trade.js +0 -314
  144. package/dist/mcp/tools/trade.js.map +0 -1
  145. package/dist/mcp/tools/trader.d.ts +0 -11
  146. package/dist/mcp/tools/trader.d.ts.map +0 -1
  147. package/dist/mcp/tools/trader.js +0 -277
  148. package/dist/mcp/tools/trader.js.map +0 -1
  149. package/dist/mcp/tools/wallet.d.ts +0 -274
  150. package/dist/mcp/tools/wallet.d.ts.map +0 -1
  151. package/dist/mcp/tools/wallet.js +0 -579
  152. package/dist/mcp/tools/wallet.js.map +0 -1
  153. package/dist/mcp/types.d.ts +0 -413
  154. package/dist/mcp/types.d.ts.map +0 -1
  155. package/dist/mcp/types.js +0 -5
  156. package/dist/mcp/types.js.map +0 -1
  157. package/dist/services/authorization-service.d.ts +0 -97
  158. package/dist/services/authorization-service.d.ts.map +0 -1
  159. package/dist/services/authorization-service.js +0 -279
  160. package/dist/services/authorization-service.js.map +0 -1
  161. package/dist/services/market-service.d.ts +0 -108
  162. package/dist/services/market-service.d.ts.map +0 -1
  163. package/dist/services/market-service.js +0 -458
  164. package/dist/services/market-service.js.map +0 -1
  165. package/dist/services/realtime-service.d.ts +0 -82
  166. package/dist/services/realtime-service.d.ts.map +0 -1
  167. package/dist/services/realtime-service.js +0 -150
  168. package/dist/services/realtime-service.js.map +0 -1
  169. package/dist/services/swap-service.d.ts +0 -217
  170. package/dist/services/swap-service.d.ts.map +0 -1
  171. package/dist/services/swap-service.js +0 -695
  172. package/dist/services/swap-service.js.map +0 -1
  173. package/dist/services/wallet-service.d.ts +0 -94
  174. package/dist/services/wallet-service.d.ts.map +0 -1
  175. package/dist/services/wallet-service.js +0 -173
  176. package/dist/services/wallet-service.js.map +0 -1
  177. package/dist/utils/price-utils.d.ts +0 -153
  178. package/dist/utils/price-utils.d.ts.map +0 -1
  179. package/dist/utils/price-utils.js +0 -236
  180. package/dist/utils/price-utils.js.map +0 -1
  181. package/docs/01-mcp.md +0 -2041
  182. package/docs/e2e/01-trader-tools.md +0 -159
  183. package/docs/e2e/02-market-tools.md +0 -180
  184. package/docs/e2e/03-order-tools.md +0 -166
  185. package/docs/e2e/04-wallet-tools.md +0 -224
  186. package/docs/e2e/05-trading-tools.md +0 -327
  187. package/docs/e2e/06-integration-scenarios.md +0 -481
  188. package/docs/e2e/coordinator.md +0 -376
  189. package/scripts/truth.md +0 -440
  190. package/src/mcp/README.md +0 -380
  191. package/src/mcp/errors.ts +0 -124
  192. package/src/mcp/index.ts +0 -309
  193. package/src/mcp/server.ts +0 -183
  194. package/src/mcp/tools/guide.ts +0 -821
  195. package/src/mcp/tools/index.ts +0 -73
  196. package/src/mcp/tools/market.ts +0 -363
  197. package/src/mcp/tools/order.ts +0 -326
  198. package/src/mcp/tools/trade.ts +0 -417
  199. package/src/mcp/tools/trader.ts +0 -322
  200. package/src/mcp/tools/wallet.ts +0 -683
  201. package/src/mcp/types.ts +0 -472
@@ -1 +0,0 @@
1
- {"version":3,"file":"swap-service.js","sourceRoot":"","sources":["../../src/services/swap-service.ts"],"names":[],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- /**
2
- * Wallet Service
3
- *
4
- * Provides smart money analysis features:
5
- * - Wallet profile analysis
6
- * - Position tracking
7
- * - Activity monitoring
8
- * - Sell detection for follow wallet strategy
9
- */
10
- import { DataApiClient, Position, Activity, LeaderboardEntry, LeaderboardPage } from '../clients/data-api.js';
11
- import type { UnifiedCache } from '../core/unified-cache.js';
12
- export interface WalletProfile {
13
- address: string;
14
- totalPnL: number;
15
- realizedPnL: number;
16
- unrealizedPnL: number;
17
- avgPercentPnL: number;
18
- positionCount: number;
19
- tradeCount: number;
20
- smartScore: number;
21
- lastActiveAt: Date;
22
- }
23
- export interface WalletActivitySummary {
24
- address: string;
25
- activities: Activity[];
26
- summary: {
27
- totalBuys: number;
28
- totalSells: number;
29
- buyVolume: number;
30
- sellVolume: number;
31
- activeMarkets: string[];
32
- };
33
- }
34
- export interface SellActivityResult {
35
- totalSellAmount: number;
36
- sellTransactions: Activity[];
37
- sellRatio: number;
38
- shouldExit: boolean;
39
- }
40
- export declare class WalletService {
41
- private dataApi;
42
- private cache;
43
- constructor(dataApi: DataApiClient, cache: UnifiedCache);
44
- /**
45
- * Get comprehensive wallet profile with PnL analysis
46
- */
47
- getWalletProfile(address: string): Promise<WalletProfile>;
48
- /**
49
- * Get positions for a wallet
50
- */
51
- getWalletPositions(address: string): Promise<Position[]>;
52
- /**
53
- * Get positions for a specific market
54
- */
55
- getPositionsForMarket(address: string, conditionId: string): Promise<Position[]>;
56
- /**
57
- * Get wallet activity with summary
58
- */
59
- getWalletActivity(address: string, limit?: number): Promise<WalletActivitySummary>;
60
- /**
61
- * Get leaderboard
62
- */
63
- getLeaderboard(page?: number, pageSize?: number): Promise<LeaderboardPage>;
64
- /**
65
- * Get top traders from leaderboard
66
- */
67
- getTopTraders(limit?: number): Promise<LeaderboardEntry[]>;
68
- /**
69
- * Discover active wallets from recent trades
70
- */
71
- discoverActiveWallets(limit?: number): Promise<Array<{
72
- address: string;
73
- tradeCount: number;
74
- }>>;
75
- /**
76
- * Detect sell activity for a wallet in a specific market
77
- */
78
- detectSellActivity(address: string, conditionId: string, sinceTimestamp: number, peakValue?: number): Promise<SellActivityResult>;
79
- /**
80
- * Track sell ratio for multiple wallets (aggregated)
81
- */
82
- trackGroupSellRatio(addresses: string[], conditionId: string, peakTotalValue: number, sinceTimestamp: number): Promise<{
83
- cumulativeSellAmount: number;
84
- sellRatio: number;
85
- shouldExit: boolean;
86
- walletSells: Array<{
87
- address: string;
88
- sellAmount: number;
89
- }>;
90
- }>;
91
- private calculateSmartScore;
92
- private calculateVariance;
93
- }
94
- //# sourceMappingURL=wallet-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wallet-service.d.ts","sourceRoot":"","sources":["../../src/services/wallet-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,aAAa;IAEtB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;gBADL,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,YAAY;IAK7B;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA8B/D;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI9D;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKtF;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqBrF;;OAEG;IACG,cAAc,CAAC,IAAI,SAAI,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvE;;OAEG;IACG,aAAa,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAK5D;;OAEG;IACG,qBAAqB,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAoBjG;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAoB9B;;OAEG;IACG,mBAAmB,CACvB,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QACT,oBAAoB,EAAE,MAAM,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7D,CAAC;IAsBF,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,iBAAiB;CAK1B"}
@@ -1,173 +0,0 @@
1
- /**
2
- * Wallet Service
3
- *
4
- * Provides smart money analysis features:
5
- * - Wallet profile analysis
6
- * - Position tracking
7
- * - Activity monitoring
8
- * - Sell detection for follow wallet strategy
9
- */
10
- export class WalletService {
11
- dataApi;
12
- cache;
13
- constructor(dataApi, cache) {
14
- this.dataApi = dataApi;
15
- this.cache = cache;
16
- }
17
- // ===== Wallet Analysis =====
18
- /**
19
- * Get comprehensive wallet profile with PnL analysis
20
- */
21
- async getWalletProfile(address) {
22
- const [positions, activities] = await Promise.all([
23
- this.dataApi.getPositions(address),
24
- this.dataApi.getActivity(address, { limit: 100 }),
25
- ]);
26
- const totalPnL = positions.reduce((sum, p) => sum + (p.cashPnl || 0), 0);
27
- const realizedPnL = positions.reduce((sum, p) => sum + (p.realizedPnl || 0), 0);
28
- const unrealizedPnL = totalPnL - realizedPnL;
29
- const avgPercentPnL = positions.length > 0
30
- ? positions.reduce((sum, p) => sum + (p.percentPnl || 0), 0) / positions.length
31
- : 0;
32
- const lastActivity = activities[0];
33
- return {
34
- address,
35
- totalPnL,
36
- realizedPnL,
37
- unrealizedPnL,
38
- avgPercentPnL,
39
- positionCount: positions.length,
40
- tradeCount: activities.filter((a) => a.type === 'TRADE').length,
41
- smartScore: this.calculateSmartScore(positions, activities),
42
- lastActiveAt: lastActivity ? new Date(lastActivity.timestamp) : new Date(0),
43
- };
44
- }
45
- /**
46
- * Get positions for a wallet
47
- */
48
- async getWalletPositions(address) {
49
- return this.dataApi.getPositions(address);
50
- }
51
- /**
52
- * Get positions for a specific market
53
- */
54
- async getPositionsForMarket(address, conditionId) {
55
- const positions = await this.dataApi.getPositions(address);
56
- return positions.filter((p) => p.conditionId === conditionId);
57
- }
58
- /**
59
- * Get wallet activity with summary
60
- */
61
- async getWalletActivity(address, limit = 100) {
62
- const activities = await this.dataApi.getActivity(address, { limit });
63
- const buys = activities.filter((a) => a.side === 'BUY');
64
- const sells = activities.filter((a) => a.side === 'SELL');
65
- return {
66
- address,
67
- activities,
68
- summary: {
69
- totalBuys: buys.length,
70
- totalSells: sells.length,
71
- buyVolume: buys.reduce((sum, a) => sum + (a.usdcSize || 0), 0),
72
- sellVolume: sells.reduce((sum, a) => sum + (a.usdcSize || 0), 0),
73
- activeMarkets: [...new Set(activities.map((a) => a.conditionId))],
74
- },
75
- };
76
- }
77
- // ===== Wallet Discovery =====
78
- /**
79
- * Get leaderboard
80
- */
81
- async getLeaderboard(page = 0, pageSize = 50) {
82
- return this.dataApi.getLeaderboard({ limit: pageSize, offset: page * pageSize });
83
- }
84
- /**
85
- * Get top traders from leaderboard
86
- */
87
- async getTopTraders(limit = 10) {
88
- const leaderboard = await this.dataApi.getLeaderboard({ limit });
89
- return leaderboard.entries;
90
- }
91
- /**
92
- * Discover active wallets from recent trades
93
- */
94
- async discoverActiveWallets(limit = 100) {
95
- const trades = await this.dataApi.getTrades({ limit: 1000 });
96
- // Count trades per wallet
97
- const walletCounts = new Map();
98
- for (const trade of trades) {
99
- if (trade.proxyWallet) {
100
- walletCounts.set(trade.proxyWallet, (walletCounts.get(trade.proxyWallet) || 0) + 1);
101
- }
102
- }
103
- // Sort by trade count
104
- return [...walletCounts.entries()]
105
- .sort((a, b) => b[1] - a[1])
106
- .slice(0, limit)
107
- .map(([address, tradeCount]) => ({ address, tradeCount }));
108
- }
109
- // ===== Sell Detection (Follow Wallet Strategy) =====
110
- /**
111
- * Detect sell activity for a wallet in a specific market
112
- */
113
- async detectSellActivity(address, conditionId, sinceTimestamp, peakValue) {
114
- const activities = await this.dataApi.getActivity(address, { limit: 200, type: 'TRADE' });
115
- const sellTransactions = activities.filter((a) => a.conditionId === conditionId && a.side === 'SELL' && a.timestamp >= sinceTimestamp);
116
- const totalSellAmount = sellTransactions.reduce((sum, a) => sum + (a.usdcSize || a.size * a.price), 0);
117
- // Calculate sell ratio if peak value is provided
118
- const sellRatio = peakValue && peakValue > 0 ? totalSellAmount / peakValue : 0;
119
- return {
120
- totalSellAmount,
121
- sellTransactions,
122
- sellRatio,
123
- shouldExit: sellRatio >= 0.3, // 30% threshold for exit signal
124
- };
125
- }
126
- /**
127
- * Track sell ratio for multiple wallets (aggregated)
128
- */
129
- async trackGroupSellRatio(addresses, conditionId, peakTotalValue, sinceTimestamp) {
130
- const walletSells = [];
131
- let cumulativeSellAmount = 0;
132
- for (const address of addresses) {
133
- const sellData = await this.detectSellActivity(address, conditionId, sinceTimestamp);
134
- walletSells.push({ address, sellAmount: sellData.totalSellAmount });
135
- cumulativeSellAmount += sellData.totalSellAmount;
136
- }
137
- const sellRatio = peakTotalValue > 0 ? cumulativeSellAmount / peakTotalValue : 0;
138
- return {
139
- cumulativeSellAmount,
140
- sellRatio,
141
- shouldExit: sellRatio >= 0.3,
142
- walletSells,
143
- };
144
- }
145
- // ===== Smart Score Calculation =====
146
- calculateSmartScore(positions, activities) {
147
- // Weights: PnL 40%, Win Rate 30%, Consistency 20%, Activity 10%
148
- // PnL Score (0-40)
149
- const avgPnL = positions.length > 0
150
- ? positions.reduce((sum, p) => sum + (p.percentPnl || 0), 0) / positions.length
151
- : 0;
152
- const pnlScore = Math.min(40, Math.max(0, ((avgPnL + 50) / 100) * 40));
153
- // Win Rate Score (0-30)
154
- const winningPositions = positions.filter((p) => (p.cashPnl || 0) > 0).length;
155
- const winRate = positions.length > 0 ? winningPositions / positions.length : 0;
156
- const winRateScore = winRate * 30;
157
- // Consistency Score (0-20)
158
- const pnlValues = positions.map((p) => p.percentPnl || 0);
159
- const variance = this.calculateVariance(pnlValues);
160
- const consistencyScore = Math.max(0, 20 - variance / 10);
161
- // Activity Score (0-10)
162
- const recentTrades = activities.filter((a) => a.timestamp > Date.now() - 7 * 24 * 60 * 60 * 1000).length;
163
- const activityScore = Math.min(10, (recentTrades / 5) * 10);
164
- return Math.round(pnlScore + winRateScore + consistencyScore + activityScore);
165
- }
166
- calculateVariance(values) {
167
- if (values.length === 0)
168
- return 0;
169
- const mean = values.reduce((a, b) => a + b, 0) / values.length;
170
- return values.reduce((sum, v) => sum + Math.pow(v - mean, 2), 0) / values.length;
171
- }
172
- }
173
- //# sourceMappingURL=wallet-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wallet-service.js","sourceRoot":"","sources":["../../src/services/wallet-service.ts"],"names":[],"mappings":"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"}
@@ -1,153 +0,0 @@
1
- /**
2
- * Price Utilities for Polymarket Trading
3
- *
4
- * Provides helpers for:
5
- * - Price validation and rounding to tick size
6
- * - Size validation
7
- * - Order amount calculation
8
- */
9
- export type TickSize = '0.1' | '0.01' | '0.001' | '0.0001';
10
- export declare const ROUNDING_CONFIG: Record<TickSize, {
11
- price: number;
12
- size: number;
13
- amount: number;
14
- }>;
15
- /**
16
- * Round a price to the appropriate tick size
17
- *
18
- * @param price - The price to round (0 to 1)
19
- * @param tickSize - The tick size for the market
20
- * @param direction - 'floor' for sells, 'ceil' for buys, 'round' for midpoint
21
- * @returns Rounded price
22
- *
23
- * @example
24
- * roundPrice(0.523, '0.01', 'floor') // 0.52
25
- * roundPrice(0.523, '0.01', 'ceil') // 0.53
26
- */
27
- export declare function roundPrice(price: number, tickSize: TickSize, direction?: 'floor' | 'ceil' | 'round'): number;
28
- /**
29
- * Round a size to valid decimals (always 2 decimal places)
30
- */
31
- export declare function roundSize(size: number): number;
32
- /**
33
- * Validate a price is within valid range and tick size
34
- *
35
- * @param price - The price to validate
36
- * @param tickSize - The tick size for the market
37
- * @returns Validation result with error message if invalid
38
- */
39
- export declare function validatePrice(price: number, tickSize: TickSize): {
40
- valid: boolean;
41
- error?: string;
42
- };
43
- /**
44
- * Validate minimum size requirements
45
- *
46
- * @param size - The size to validate
47
- * @param minOrderSize - Minimum order size from market config (usually 0.1)
48
- */
49
- export declare function validateSize(size: number, minOrderSize?: number): {
50
- valid: boolean;
51
- error?: string;
52
- };
53
- /**
54
- * Calculate the amount needed for a buy order (in USDC)
55
- *
56
- * @param price - Price per share
57
- * @param size - Number of shares to buy
58
- * @returns Amount in USDC
59
- */
60
- export declare function calculateBuyAmount(price: number, size: number): number;
61
- /**
62
- * Calculate the payout for a sell order (in USDC)
63
- *
64
- * @param price - Price per share
65
- * @param size - Number of shares to sell
66
- * @returns Amount in USDC
67
- */
68
- export declare function calculateSellPayout(price: number, size: number): number;
69
- /**
70
- * Calculate number of shares that can be bought with a given amount
71
- *
72
- * @param amount - USDC amount to spend
73
- * @param price - Price per share
74
- * @returns Number of shares
75
- */
76
- export declare function calculateSharesForAmount(amount: number, price: number): number;
77
- /**
78
- * Calculate the spread between bid and ask
79
- *
80
- * @param bid - Highest bid price
81
- * @param ask - Lowest ask price
82
- * @returns Spread as a decimal (0 to 1)
83
- */
84
- export declare function calculateSpread(bid: number, ask: number): number;
85
- /**
86
- * Calculate the midpoint price between bid and ask
87
- *
88
- * @param bid - Highest bid price
89
- * @param ask - Lowest ask price
90
- * @returns Midpoint price
91
- */
92
- export declare function calculateMidpoint(bid: number, ask: number): number;
93
- /**
94
- * 计算有效价格(考虑 Polymarket 订单簿的镜像特性)
95
- *
96
- * Polymarket 的关键特性:买 YES @ P = 卖 NO @ (1-P)
97
- * 因此同一订单会在两个订单簿中出现
98
- *
99
- * 有效价格是考虑镜像后的最优价格
100
- *
101
- * @param yesAsk - YES token 的最低卖价
102
- * @param yesBid - YES token 的最高买价
103
- * @param noAsk - NO token 的最低卖价
104
- * @param noBid - NO token 的最高买价
105
- */
106
- export declare function getEffectivePrices(yesAsk: number, yesBid: number, noAsk: number, noBid: number): {
107
- effectiveBuyYes: number;
108
- effectiveBuyNo: number;
109
- effectiveSellYes: number;
110
- effectiveSellNo: number;
111
- };
112
- /**
113
- * Check if there's an arbitrage opportunity
114
- *
115
- * 使用有效价格计算套利机会(正确考虑镜像订单)
116
- *
117
- * Long arb: Buy YES + Buy NO < 1 (使用有效买入价格)
118
- * Short arb: Sell YES + Sell NO > 1 (使用有效卖出价格)
119
- *
120
- * 详细文档见: docs/01-polymarket-orderbook-arbitrage.md
121
- *
122
- * @param yesAsk - Lowest ask for YES token
123
- * @param noAsk - Lowest ask for NO token
124
- * @param yesBid - Highest bid for YES token
125
- * @param noBid - Highest bid for NO token
126
- * @returns Arbitrage info or null
127
- */
128
- export declare function checkArbitrage(yesAsk: number, noAsk: number, yesBid: number, noBid: number): {
129
- type: 'long' | 'short';
130
- profit: number;
131
- description: string;
132
- } | null;
133
- /**
134
- * Format price for display
135
- */
136
- export declare function formatPrice(price: number, tickSize?: TickSize): string;
137
- /**
138
- * Format amount in USDC
139
- */
140
- export declare function formatUSDC(amount: number): string;
141
- /**
142
- * Calculate PnL for a position
143
- *
144
- * @param entryPrice - Average entry price
145
- * @param currentPrice - Current market price
146
- * @param size - Position size
147
- * @param side - 'long' for YES, 'short' for NO
148
- */
149
- export declare function calculatePnL(entryPrice: number, currentPrice: number, size: number, side?: 'long' | 'short'): {
150
- pnl: number;
151
- pnlPercent: number;
152
- };
153
- //# sourceMappingURL=price-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"price-utils.d.ts","sourceRoot":"","sources":["../../src/utils/price-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAG3D,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,QAAQ,EACR;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAMhD,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,OAAO,GAAG,MAAM,GAAG,OAAiB,GAC9C,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,GACjB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAmBpC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,YAAY,SAAM,GACjB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CASpC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ;IACD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB,CAcA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6BxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAGtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,GAAG,OAAgB,GAC9B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAYrC"}