@catalyst-team/poly-sdk 0.2.0 → 0.3.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 (242) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +548 -813
  3. package/README.zh-CN.md +805 -0
  4. package/dist/__tests__/clob-api.test.d.ts +5 -0
  5. package/dist/__tests__/clob-api.test.d.ts.map +1 -0
  6. package/dist/__tests__/clob-api.test.js +240 -0
  7. package/dist/__tests__/clob-api.test.js.map +1 -0
  8. package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts +12 -0
  9. package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts.map +1 -0
  10. package/dist/__tests__/integration/arbitrage-service.integration.test.js +267 -0
  11. package/dist/__tests__/integration/arbitrage-service.integration.test.js.map +1 -0
  12. package/dist/__tests__/integration/bridge-client.integration.test.d.ts +11 -0
  13. package/dist/__tests__/integration/bridge-client.integration.test.d.ts.map +1 -0
  14. package/dist/__tests__/integration/bridge-client.integration.test.js +260 -0
  15. package/dist/__tests__/integration/bridge-client.integration.test.js.map +1 -0
  16. package/dist/__tests__/integration/clob-api.integration.test.d.ts +13 -0
  17. package/dist/__tests__/integration/clob-api.integration.test.d.ts.map +1 -0
  18. package/dist/__tests__/integration/clob-api.integration.test.js +170 -0
  19. package/dist/__tests__/integration/clob-api.integration.test.js.map +1 -0
  20. package/dist/__tests__/integration/ctf-client.integration.test.d.ts +17 -0
  21. package/dist/__tests__/integration/ctf-client.integration.test.d.ts.map +1 -0
  22. package/dist/__tests__/integration/ctf-client.integration.test.js +234 -0
  23. package/dist/__tests__/integration/ctf-client.integration.test.js.map +1 -0
  24. package/dist/__tests__/integration/data-api.integration.test.d.ts +9 -0
  25. package/dist/__tests__/integration/data-api.integration.test.d.ts.map +1 -0
  26. package/dist/__tests__/integration/data-api.integration.test.js +164 -0
  27. package/dist/__tests__/integration/data-api.integration.test.js.map +1 -0
  28. package/dist/__tests__/integration/gamma-api.integration.test.d.ts +9 -0
  29. package/dist/__tests__/integration/gamma-api.integration.test.d.ts.map +1 -0
  30. package/dist/__tests__/integration/gamma-api.integration.test.js +170 -0
  31. package/dist/__tests__/integration/gamma-api.integration.test.js.map +1 -0
  32. package/dist/__tests__/integration/market-service.integration.test.d.ts +10 -0
  33. package/dist/__tests__/integration/market-service.integration.test.d.ts.map +1 -0
  34. package/dist/__tests__/integration/market-service.integration.test.js +173 -0
  35. package/dist/__tests__/integration/market-service.integration.test.js.map +1 -0
  36. package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts +10 -0
  37. package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts.map +1 -0
  38. package/dist/__tests__/integration/realtime-service-v2.integration.test.js +307 -0
  39. package/dist/__tests__/integration/realtime-service-v2.integration.test.js.map +1 -0
  40. package/dist/__tests__/integration/trading-service.integration.test.d.ts +10 -0
  41. package/dist/__tests__/integration/trading-service.integration.test.d.ts.map +1 -0
  42. package/dist/__tests__/integration/trading-service.integration.test.js +58 -0
  43. package/dist/__tests__/integration/trading-service.integration.test.js.map +1 -0
  44. package/dist/__tests__/test-utils.d.ts +92 -0
  45. package/dist/__tests__/test-utils.d.ts.map +1 -0
  46. package/dist/__tests__/test-utils.js +143 -0
  47. package/dist/__tests__/test-utils.js.map +1 -0
  48. package/dist/clients/bridge-client.d.ts +388 -0
  49. package/dist/clients/bridge-client.d.ts.map +1 -0
  50. package/dist/clients/bridge-client.js +587 -0
  51. package/dist/clients/bridge-client.js.map +1 -0
  52. package/dist/clients/clob-api.d.ts +391 -0
  53. package/dist/clients/clob-api.d.ts.map +1 -0
  54. package/dist/clients/clob-api.js +448 -0
  55. package/dist/clients/clob-api.js.map +1 -0
  56. package/dist/clients/ctf-client.d.ts +473 -0
  57. package/dist/clients/ctf-client.d.ts.map +1 -0
  58. package/dist/clients/ctf-client.js +915 -0
  59. package/dist/clients/ctf-client.js.map +1 -0
  60. package/dist/clients/data-api.d.ts +439 -0
  61. package/dist/clients/data-api.d.ts.map +1 -0
  62. package/dist/clients/data-api.js +592 -0
  63. package/dist/clients/data-api.js.map +1 -0
  64. package/dist/clients/gamma-api.d.ts +401 -0
  65. package/dist/clients/gamma-api.d.ts.map +1 -0
  66. package/dist/clients/gamma-api.js +352 -0
  67. package/dist/clients/gamma-api.js.map +1 -0
  68. package/dist/clients/subgraph.d.ts +196 -0
  69. package/dist/clients/subgraph.d.ts.map +1 -0
  70. package/dist/clients/subgraph.js +332 -0
  71. package/dist/clients/subgraph.js.map +1 -0
  72. package/dist/clients/trading-client.d.ts +252 -0
  73. package/dist/clients/trading-client.d.ts.map +1 -0
  74. package/dist/clients/trading-client.js +543 -0
  75. package/dist/clients/trading-client.js.map +1 -0
  76. package/dist/clients/websocket-manager.d.ts +103 -0
  77. package/dist/clients/websocket-manager.d.ts.map +1 -0
  78. package/dist/clients/websocket-manager.js +200 -0
  79. package/dist/clients/websocket-manager.js.map +1 -0
  80. package/dist/core/cache-adapter-bridge.d.ts +36 -0
  81. package/dist/core/cache-adapter-bridge.d.ts.map +1 -0
  82. package/dist/core/cache-adapter-bridge.js +81 -0
  83. package/dist/core/cache-adapter-bridge.js.map +1 -0
  84. package/dist/core/cache.d.ts +41 -0
  85. package/dist/core/cache.d.ts.map +1 -0
  86. package/dist/core/cache.js +72 -0
  87. package/dist/core/cache.js.map +1 -0
  88. package/dist/core/errors.d.ts +39 -0
  89. package/dist/core/errors.d.ts.map +1 -0
  90. package/dist/core/errors.js +86 -0
  91. package/dist/core/errors.js.map +1 -0
  92. package/dist/core/rate-limiter.d.ts +32 -0
  93. package/dist/core/rate-limiter.d.ts.map +1 -0
  94. package/dist/core/rate-limiter.js +75 -0
  95. package/dist/core/rate-limiter.js.map +1 -0
  96. package/dist/core/types.d.ts +402 -0
  97. package/dist/core/types.d.ts.map +1 -0
  98. package/dist/core/types.js +19 -0
  99. package/dist/core/types.js.map +1 -0
  100. package/dist/core/types.test.d.ts +7 -0
  101. package/dist/core/types.test.d.ts.map +1 -0
  102. package/dist/core/types.test.js +122 -0
  103. package/dist/core/types.test.js.map +1 -0
  104. package/dist/core/unified-cache.d.ts +63 -0
  105. package/dist/core/unified-cache.d.ts.map +1 -0
  106. package/dist/core/unified-cache.js +114 -0
  107. package/dist/core/unified-cache.js.map +1 -0
  108. package/dist/index.d.ts +151 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +248 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/services/arbitrage-service.d.ts +409 -0
  113. package/dist/services/arbitrage-service.d.ts.map +1 -0
  114. package/dist/services/arbitrage-service.js +1440 -0
  115. package/dist/services/arbitrage-service.js.map +1 -0
  116. package/dist/services/authorization-service.d.ts +97 -0
  117. package/dist/services/authorization-service.d.ts.map +1 -0
  118. package/dist/services/authorization-service.js +279 -0
  119. package/dist/services/authorization-service.js.map +1 -0
  120. package/dist/services/market-service.d.ts +208 -0
  121. package/dist/services/market-service.d.ts.map +1 -0
  122. package/dist/services/market-service.js +774 -0
  123. package/dist/services/market-service.js.map +1 -0
  124. package/dist/services/onchain-service.d.ts +309 -0
  125. package/dist/services/onchain-service.d.ts.map +1 -0
  126. package/dist/services/onchain-service.js +417 -0
  127. package/dist/services/onchain-service.js.map +1 -0
  128. package/dist/services/realtime-service-v2.d.ts +361 -0
  129. package/dist/services/realtime-service-v2.d.ts.map +1 -0
  130. package/dist/services/realtime-service-v2.js +840 -0
  131. package/dist/services/realtime-service-v2.js.map +1 -0
  132. package/dist/services/realtime-service.d.ts +82 -0
  133. package/dist/services/realtime-service.d.ts.map +1 -0
  134. package/dist/services/realtime-service.js +182 -0
  135. package/dist/services/realtime-service.js.map +1 -0
  136. package/dist/services/smart-money-service.d.ts +196 -0
  137. package/dist/services/smart-money-service.d.ts.map +1 -0
  138. package/dist/services/smart-money-service.js +358 -0
  139. package/dist/services/smart-money-service.js.map +1 -0
  140. package/dist/services/swap-service.d.ts +217 -0
  141. package/dist/services/swap-service.d.ts.map +1 -0
  142. package/dist/services/swap-service.js +695 -0
  143. package/dist/services/swap-service.js.map +1 -0
  144. package/dist/services/trading-service.d.ts +156 -0
  145. package/dist/services/trading-service.d.ts.map +1 -0
  146. package/dist/services/trading-service.js +356 -0
  147. package/dist/services/trading-service.js.map +1 -0
  148. package/dist/services/wallet-service.d.ts +275 -0
  149. package/dist/services/wallet-service.d.ts.map +1 -0
  150. package/dist/services/wallet-service.js +630 -0
  151. package/dist/services/wallet-service.js.map +1 -0
  152. package/dist/utils/price-utils.d.ts +153 -0
  153. package/dist/utils/price-utils.d.ts.map +1 -0
  154. package/dist/utils/price-utils.js +236 -0
  155. package/dist/utils/price-utils.js.map +1 -0
  156. package/dist/utils/price-utils.test.d.ts +5 -0
  157. package/dist/utils/price-utils.test.d.ts.map +1 -0
  158. package/dist/utils/price-utils.test.js +192 -0
  159. package/dist/utils/price-utils.test.js.map +1 -0
  160. package/package.json +10 -4
  161. package/README.en.md +0 -538
  162. package/docs/00-design.md +0 -760
  163. package/docs/02-API.md +0 -1148
  164. package/docs/arb/test-plan.md +0 -387
  165. package/docs/arb/test-results.md +0 -336
  166. package/docs/arbitrage.md +0 -754
  167. package/docs/reports/smart-money-analysis-2025-12-23-cn.md +0 -840
  168. package/examples/01-basic-usage.ts +0 -68
  169. package/examples/02-smart-money.ts +0 -95
  170. package/examples/03-market-analysis.ts +0 -108
  171. package/examples/04-kline-aggregation.ts +0 -158
  172. package/examples/05-follow-wallet-strategy.ts +0 -156
  173. package/examples/06-services-demo.ts +0 -124
  174. package/examples/07-realtime-websocket.ts +0 -117
  175. package/examples/08-trading-orders.ts +0 -278
  176. package/examples/09-rewards-tracking.ts +0 -187
  177. package/examples/10-ctf-operations.ts +0 -336
  178. package/examples/11-live-arbitrage-scan.ts +0 -221
  179. package/examples/12-trending-arb-monitor.ts +0 -406
  180. package/examples/13-arbitrage-service.ts +0 -211
  181. package/examples/README.md +0 -179
  182. package/scripts/README.md +0 -163
  183. package/scripts/approvals/approve-erc1155.ts +0 -129
  184. package/scripts/approvals/approve-neg-risk-erc1155.ts +0 -149
  185. package/scripts/approvals/approve-neg-risk.ts +0 -102
  186. package/scripts/approvals/check-all-allowances.ts +0 -150
  187. package/scripts/approvals/check-allowance.ts +0 -129
  188. package/scripts/approvals/check-ctf-approval.ts +0 -158
  189. package/scripts/arb/faze-bo3-arb.ts +0 -385
  190. package/scripts/arb/settle-position.ts +0 -190
  191. package/scripts/arb/token-rebalancer.ts +0 -420
  192. package/scripts/arb-tests/01-unit-tests.ts +0 -495
  193. package/scripts/arb-tests/02-integration-tests.ts +0 -412
  194. package/scripts/arb-tests/03-e2e-tests.ts +0 -503
  195. package/scripts/arb-tests/README.md +0 -109
  196. package/scripts/datas/001-report.md +0 -486
  197. package/scripts/datas/clone-modal-screenshot.png +0 -0
  198. package/scripts/deposit/deposit-native-usdc.ts +0 -179
  199. package/scripts/deposit/deposit-usdc.ts +0 -155
  200. package/scripts/deposit/swap-usdc-to-usdce.ts +0 -375
  201. package/scripts/research/research-markets.ts +0 -166
  202. package/scripts/trading/check-orders.ts +0 -50
  203. package/scripts/trading/sell-nvidia-positions.ts +0 -206
  204. package/scripts/trading/test-order.ts +0 -172
  205. package/scripts/verify/test-approve-trading.ts +0 -98
  206. package/scripts/verify/test-provider-fix.ts +0 -43
  207. package/scripts/verify/test-search-mcp.ts +0 -113
  208. package/scripts/verify/verify-all-apis.ts +0 -160
  209. package/scripts/wallet/check-wallet-balances.ts +0 -75
  210. package/scripts/wallet/test-wallet-operations.ts +0 -191
  211. package/scripts/wallet/verify-wallet-tools.ts +0 -124
  212. package/src/__tests__/clob-api.test.ts +0 -301
  213. package/src/__tests__/integration/bridge-client.integration.test.ts +0 -314
  214. package/src/__tests__/integration/clob-api.integration.test.ts +0 -218
  215. package/src/__tests__/integration/ctf-client.integration.test.ts +0 -331
  216. package/src/__tests__/integration/data-api.integration.test.ts +0 -194
  217. package/src/__tests__/integration/gamma-api.integration.test.ts +0 -206
  218. package/src/__tests__/test-utils.ts +0 -170
  219. package/src/clients/bridge-client.ts +0 -841
  220. package/src/clients/clob-api.ts +0 -629
  221. package/src/clients/ctf-client.ts +0 -1216
  222. package/src/clients/data-api.ts +0 -469
  223. package/src/clients/gamma-api.ts +0 -597
  224. package/src/clients/trading-client.ts +0 -749
  225. package/src/clients/websocket-manager.ts +0 -267
  226. package/src/core/cache-adapter-bridge.ts +0 -94
  227. package/src/core/cache.ts +0 -85
  228. package/src/core/errors.ts +0 -117
  229. package/src/core/rate-limiter.ts +0 -74
  230. package/src/core/types.ts +0 -360
  231. package/src/core/unified-cache.ts +0 -153
  232. package/src/index.ts +0 -461
  233. package/src/services/arbitrage-service.ts +0 -1807
  234. package/src/services/authorization-service.ts +0 -357
  235. package/src/services/market-service.ts +0 -544
  236. package/src/services/realtime-service.ts +0 -196
  237. package/src/services/swap-service.ts +0 -896
  238. package/src/services/wallet-service.ts +0 -259
  239. package/src/utils/price-utils.ts +0 -307
  240. package/tsconfig.json +0 -8
  241. package/vitest.config.ts +0 -19
  242. package/vitest.integration.config.ts +0 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trading-service.integration.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/trading-service.integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Test Utilities for poly-sdk
3
+ *
4
+ * Provides mock implementations and test helpers for unit testing.
5
+ */
6
+ export declare const mockClobMarket: {
7
+ conditionId: string;
8
+ question: string;
9
+ description: string;
10
+ marketSlug: string;
11
+ tokens: {
12
+ tokenId: string;
13
+ outcome: string;
14
+ price: number;
15
+ }[];
16
+ acceptingOrders: boolean;
17
+ endDateIso: string;
18
+ active: boolean;
19
+ closed: boolean;
20
+ };
21
+ export declare const mockOrderbook: {
22
+ bids: {
23
+ price: number;
24
+ size: number;
25
+ }[];
26
+ asks: {
27
+ price: number;
28
+ size: number;
29
+ }[];
30
+ timestamp: number;
31
+ };
32
+ export declare const mockNoOrderbook: {
33
+ bids: {
34
+ price: number;
35
+ size: number;
36
+ }[];
37
+ asks: {
38
+ price: number;
39
+ size: number;
40
+ }[];
41
+ timestamp: number;
42
+ };
43
+ export declare const mockGammaMarket: {
44
+ id: string;
45
+ conditionId: string;
46
+ slug: string;
47
+ question: string;
48
+ outcomes: string[];
49
+ outcomePrices: number[];
50
+ volume: number;
51
+ volume24hr: number;
52
+ liquidity: number;
53
+ spread: number;
54
+ endDate: Date;
55
+ active: boolean;
56
+ closed: boolean;
57
+ };
58
+ export declare const mockPosition: {
59
+ asset: string;
60
+ conditionId: string;
61
+ outcome: string;
62
+ outcomeIndex: number;
63
+ size: number;
64
+ avgPrice: number;
65
+ curPrice: number;
66
+ cashPnl: number;
67
+ percentPnl: number;
68
+ title: string;
69
+ };
70
+ export declare class MockRateLimiter {
71
+ execute<T>(_apiType: string, fn: () => Promise<T>): Promise<T>;
72
+ }
73
+ export declare class MockCache {
74
+ private cache;
75
+ getOrSet<T>(key: string, ttl: number, fn: () => Promise<T>): Promise<T>;
76
+ clear(): void;
77
+ }
78
+ export declare function createMockFetch(responses: Record<string, unknown>): import("vitest").Mock<(url: string) => Promise<{
79
+ ok: boolean;
80
+ status: number;
81
+ json: () => Promise<unknown>;
82
+ }>>;
83
+ export declare function expectOrderbookSorted(orderbook: {
84
+ bids: Array<{
85
+ price: number;
86
+ }>;
87
+ asks: Array<{
88
+ price: number;
89
+ }>;
90
+ }): void;
91
+ export declare function waitFor(ms: number): Promise<void>;
92
+ //# sourceMappingURL=test-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/__tests__/test-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAqB1B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;CAYzB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAc3B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;CAWxB,CAAC;AAIF,qBAAa,eAAe;IACpB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAGrE;AAID,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAA0D;IAEjE,QAAQ,CAAC,CAAC,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC;IAUb,KAAK,IAAI,IAAI;CAGd;AAID,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BACvC,MAAM;;;;IAoBhC;AAID,wBAAgB,qBAAqB,CAAC,SAAS,EAAE;IAC/C,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/B,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChC,GAAG,IAAI,CAaP;AAID,wBAAsB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvD"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Test Utilities for poly-sdk
3
+ *
4
+ * Provides mock implementations and test helpers for unit testing.
5
+ */
6
+ import { vi } from 'vitest';
7
+ // ===== Mock Data =====
8
+ export const mockClobMarket = {
9
+ conditionId: '0x82ace55cdcba920112a2b3548f21e6e117730144db4dd580456aaecf1a2ad751',
10
+ question: 'Will BTC reach $100k by end of 2024?',
11
+ description: 'This market resolves YES if Bitcoin reaches $100,000 USD.',
12
+ marketSlug: 'will-btc-reach-100k',
13
+ tokens: [
14
+ {
15
+ tokenId: '21742633143463906290569050155826241533067272736897614950488156847949938836455',
16
+ outcome: 'Yes',
17
+ price: 0.65,
18
+ },
19
+ {
20
+ tokenId: '79707176503087022804581743747659199568535926050896809695934676056217229461419',
21
+ outcome: 'No',
22
+ price: 0.35,
23
+ },
24
+ ],
25
+ acceptingOrders: true,
26
+ endDateIso: '2024-12-31T23:59:59Z',
27
+ active: true,
28
+ closed: false,
29
+ };
30
+ export const mockOrderbook = {
31
+ bids: [
32
+ { price: 0.55, size: 1000 },
33
+ { price: 0.54, size: 500 },
34
+ { price: 0.53, size: 750 },
35
+ ],
36
+ asks: [
37
+ { price: 0.57, size: 800 },
38
+ { price: 0.58, size: 600 },
39
+ { price: 0.59, size: 400 },
40
+ ],
41
+ timestamp: Date.now(),
42
+ };
43
+ export const mockNoOrderbook = {
44
+ bids: [
45
+ { price: 0.43, size: 900 },
46
+ { price: 0.42, size: 450 },
47
+ ],
48
+ asks: [
49
+ { price: 0.45, size: 700 },
50
+ { price: 0.46, size: 500 },
51
+ ],
52
+ timestamp: Date.now(),
53
+ };
54
+ export const mockGammaMarket = {
55
+ id: '12345',
56
+ conditionId: '0x82ace55cdcba920112a2b3548f21e6e117730144db4dd580456aaecf1a2ad751',
57
+ slug: 'will-btc-reach-100k',
58
+ question: 'Will BTC reach $100k by end of 2024?',
59
+ outcomes: ['Yes', 'No'],
60
+ outcomePrices: [0.65, 0.35],
61
+ volume: 5000000,
62
+ volume24hr: 250000,
63
+ liquidity: 100000,
64
+ spread: 0.02,
65
+ endDate: new Date('2024-12-31T23:59:59Z'),
66
+ active: true,
67
+ closed: false,
68
+ };
69
+ export const mockPosition = {
70
+ asset: '21742633143463906290569050155826241533067272736897614950488156847949938836455',
71
+ conditionId: '0x82ace55cdcba920112a2b3548f21e6e117730144db4dd580456aaecf1a2ad751',
72
+ outcome: 'Yes',
73
+ outcomeIndex: 0,
74
+ size: 100,
75
+ avgPrice: 0.50,
76
+ curPrice: 0.65,
77
+ cashPnl: 15,
78
+ percentPnl: 0.30,
79
+ title: 'Will BTC reach $100k?',
80
+ };
81
+ // ===== Mock RateLimiter =====
82
+ export class MockRateLimiter {
83
+ async execute(_apiType, fn) {
84
+ return fn();
85
+ }
86
+ }
87
+ // ===== Mock Cache =====
88
+ export class MockCache {
89
+ cache = new Map();
90
+ async getOrSet(key, ttl, fn) {
91
+ const cached = this.cache.get(key);
92
+ if (cached && cached.expires > Date.now()) {
93
+ return cached.value;
94
+ }
95
+ const value = await fn();
96
+ this.cache.set(key, { value, expires: Date.now() + ttl });
97
+ return value;
98
+ }
99
+ clear() {
100
+ this.cache.clear();
101
+ }
102
+ }
103
+ // ===== Mock Fetch =====
104
+ export function createMockFetch(responses) {
105
+ return vi.fn(async (url) => {
106
+ const urlObj = new URL(url);
107
+ const path = urlObj.pathname;
108
+ for (const [pattern, response] of Object.entries(responses)) {
109
+ if (path.includes(pattern)) {
110
+ return {
111
+ ok: true,
112
+ status: 200,
113
+ json: async () => response,
114
+ };
115
+ }
116
+ }
117
+ return {
118
+ ok: false,
119
+ status: 404,
120
+ json: async () => ({ error: 'Not found' }),
121
+ };
122
+ });
123
+ }
124
+ // ===== Assertion Helpers =====
125
+ export function expectOrderbookSorted(orderbook) {
126
+ // Bids should be descending
127
+ for (let i = 1; i < orderbook.bids.length; i++) {
128
+ if (orderbook.bids[i].price > orderbook.bids[i - 1].price) {
129
+ throw new Error('Bids are not sorted descending');
130
+ }
131
+ }
132
+ // Asks should be ascending
133
+ for (let i = 1; i < orderbook.asks.length; i++) {
134
+ if (orderbook.asks[i].price < orderbook.asks[i - 1].price) {
135
+ throw new Error('Asks are not sorted ascending');
136
+ }
137
+ }
138
+ }
139
+ // ===== Time Helpers =====
140
+ export async function waitFor(ms) {
141
+ return new Promise((resolve) => setTimeout(resolve, ms));
142
+ }
143
+ //# sourceMappingURL=test-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/__tests__/test-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,388 @@
1
+ /**
2
+ * Bridge Client for Polymarket Cross-Chain Deposits
3
+ *
4
+ * Enables depositing assets from multiple chains (Ethereum, etc.)
5
+ * and having them automatically converted to USDC.e on Polygon for trading.
6
+ *
7
+ * Flow:
8
+ * 1. Request deposit addresses for your Polymarket wallet
9
+ * 2. Send assets to the unique deposit address for each chain/token
10
+ * 3. Assets are automatically bridged and swapped to USDC.e on Polygon
11
+ * 4. USDC.e is credited to your Polymarket account
12
+ *
13
+ * @see https://docs.polymarket.com/developers/misc-endpoints/bridge-deposit
14
+ * @see https://docs.polymarket.com/developers/misc-endpoints/bridge-supported-assets
15
+ */
16
+ /**
17
+ * Supported asset information from the bridge
18
+ */
19
+ export interface BridgeSupportedAsset {
20
+ /** Blockchain chain ID (e.g., 1 for Ethereum) */
21
+ chainId: number;
22
+ /** Human-readable chain name (e.g., "Ethereum") */
23
+ chainName: string;
24
+ /** Token contract address on the source chain */
25
+ tokenAddress: string;
26
+ /** Token symbol (e.g., "USDC", "ETH") */
27
+ tokenSymbol: string;
28
+ /** Token name (e.g., "USD Coin") */
29
+ tokenName: string;
30
+ /** Token decimals (e.g., 6 for USDC) */
31
+ decimals: number;
32
+ /** Minimum deposit amount in token units */
33
+ minDeposit: string;
34
+ /** Minimum deposit amount in USD */
35
+ minDepositUsd: number;
36
+ /** Whether this asset is currently active */
37
+ active: boolean;
38
+ }
39
+ /**
40
+ * Deposit address for a specific chain/token combination
41
+ */
42
+ export interface DepositAddress {
43
+ /** Blockchain chain ID */
44
+ chainId: number;
45
+ /** Human-readable chain name */
46
+ chainName: string;
47
+ /** Token contract address on source chain */
48
+ tokenAddress: string;
49
+ /** Token symbol */
50
+ tokenSymbol: string;
51
+ /** Unique deposit address to send funds to */
52
+ depositAddress: string;
53
+ /** Minimum deposit amount */
54
+ minDeposit: string;
55
+ }
56
+ /**
57
+ * Response from creating deposit addresses
58
+ *
59
+ * The Bridge API returns a single universal deposit address structure.
60
+ * - EVM address: Used for all EVM chains (Ethereum, Polygon, Arbitrum, Base, Optimism)
61
+ * - SVM address: Used for Solana
62
+ * - BTC address: Used for Bitcoin
63
+ *
64
+ * @example Response from API:
65
+ * ```json
66
+ * {
67
+ * "address": {
68
+ * "evm": "0x1234...",
69
+ * "svm": "ABC123...",
70
+ * "btc": "bc1q..."
71
+ * }
72
+ * }
73
+ * ```
74
+ */
75
+ export interface CreateDepositResponse {
76
+ /** Universal deposit addresses for different chain types */
77
+ address: {
78
+ /** EVM deposit address (Ethereum, Polygon, Arbitrum, Base, Optimism) */
79
+ evm: string;
80
+ /** Solana deposit address */
81
+ svm: string;
82
+ /** Bitcoin deposit address */
83
+ btc: string;
84
+ };
85
+ }
86
+ /**
87
+ * Deposit status tracking
88
+ */
89
+ export interface DepositStatus {
90
+ /** Unique deposit ID */
91
+ depositId: string;
92
+ /** Source chain ID */
93
+ sourceChainId: number;
94
+ /** Source transaction hash */
95
+ sourceTxHash: string;
96
+ /** Amount deposited */
97
+ amount: string;
98
+ /** Token symbol */
99
+ tokenSymbol: string;
100
+ /** Status of the deposit */
101
+ status: 'pending' | 'bridging' | 'swapping' | 'completed' | 'failed';
102
+ /** Destination transaction hash (when completed) */
103
+ destinationTxHash?: string;
104
+ /** USDC.e amount received (when completed) */
105
+ usdceReceived?: string;
106
+ /** Error message (if failed) */
107
+ errorMessage?: string;
108
+ /** Timestamp of last update */
109
+ updatedAt: string;
110
+ }
111
+ /**
112
+ * Bridge configuration
113
+ */
114
+ export interface BridgeConfig {
115
+ /** Base URL for the bridge API (default: https://bridge.polymarket.com) */
116
+ baseUrl?: string;
117
+ /** Request timeout in ms (default: 30000) */
118
+ timeout?: number;
119
+ }
120
+ export declare const SUPPORTED_CHAINS: {
121
+ readonly ETHEREUM: {
122
+ readonly chainId: 1;
123
+ readonly name: "Ethereum";
124
+ readonly rpcUrl: "https://eth.llamarpc.com";
125
+ };
126
+ readonly POLYGON: {
127
+ readonly chainId: 137;
128
+ readonly name: "Polygon";
129
+ readonly rpcUrl: "https://polygon-rpc.com";
130
+ };
131
+ };
132
+ export declare const BRIDGE_TOKENS: {
133
+ readonly ETH_USDC: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48";
134
+ readonly ETH_WETH: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
135
+ readonly ETH_DAI: "0x6B175474E89094C44Da98b954EeDeaC495271d0F";
136
+ readonly POLYGON_USDC_E: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174";
137
+ readonly POLYGON_NATIVE_USDC: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359";
138
+ };
139
+ /**
140
+ * Client for interacting with Polymarket's cross-chain bridge
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * const bridge = new BridgeClient();
145
+ *
146
+ * // Get supported assets
147
+ * const assets = await bridge.getSupportedAssets();
148
+ * console.log(`Supported: ${assets.map(a => a.tokenSymbol).join(', ')}`);
149
+ *
150
+ * // Create deposit addresses for your wallet
151
+ * const deposit = await bridge.createDepositAddresses('0xYourAddress');
152
+ * const ethUsdc = deposit.depositAddresses.find(
153
+ * d => d.chainName === 'Ethereum' && d.tokenSymbol === 'USDC'
154
+ * );
155
+ * console.log(`Send USDC on Ethereum to: ${ethUsdc.depositAddress}`);
156
+ * ```
157
+ */
158
+ export declare class BridgeClient {
159
+ private baseUrl;
160
+ private timeout;
161
+ constructor(config?: BridgeConfig);
162
+ /**
163
+ * Get all supported assets for bridge deposits
164
+ *
165
+ * @returns Array of supported assets with their chain/token details
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const assets = await bridge.getSupportedAssets();
170
+ * for (const asset of assets) {
171
+ * console.log(`${asset.chainName} ${asset.tokenSymbol}: min $${asset.minDepositUsd}`);
172
+ * }
173
+ * ```
174
+ */
175
+ getSupportedAssets(): Promise<BridgeSupportedAsset[]>;
176
+ /**
177
+ * Get unique deposit addresses for a Polymarket wallet
178
+ *
179
+ * The Bridge API returns a universal deposit address structure:
180
+ * - A single EVM address works for ALL EVM chains (Ethereum, Polygon, Arbitrum, Base, Optimism)
181
+ * - A Solana address for SVM deposits
182
+ * - A Bitcoin address for BTC deposits
183
+ *
184
+ * Funds sent to these addresses are automatically bridged to Polygon
185
+ * and converted to USDC.e for your Polymarket account.
186
+ *
187
+ * @param walletAddress - Your Polymarket wallet address (EOA address)
188
+ * @returns Universal deposit addresses for EVM, Solana, and Bitcoin
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * const result = await bridge.createDepositAddresses('0xYourPolymarketWallet');
193
+ *
194
+ * // The EVM address works for Ethereum, Polygon, Arbitrum, Base, Optimism
195
+ * console.log(`EVM deposit address: ${result.address.evm}`);
196
+ *
197
+ * // For Solana deposits
198
+ * console.log(`Solana deposit address: ${result.address.svm}`);
199
+ *
200
+ * // For Bitcoin deposits
201
+ * console.log(`Bitcoin deposit address: ${result.address.btc}`);
202
+ * ```
203
+ */
204
+ createDepositAddresses(walletAddress: string): Promise<CreateDepositResponse>;
205
+ /**
206
+ * Get the EVM deposit address for a wallet
207
+ *
208
+ * This address works for ALL supported EVM chains:
209
+ * - Ethereum (chainId: 1)
210
+ * - Polygon (chainId: 137)
211
+ * - Arbitrum (chainId: 42161)
212
+ * - Base (chainId: 8453)
213
+ * - Optimism (chainId: 10)
214
+ *
215
+ * @param walletAddress - Your Polymarket wallet address
216
+ * @returns The universal EVM deposit address
217
+ *
218
+ * @example
219
+ * ```typescript
220
+ * const evmAddr = await bridge.getEvmDepositAddress('0xYourWallet');
221
+ * // Send Native USDC on Polygon to this address
222
+ * // Or send USDC on Ethereum to this address
223
+ * console.log(`Deposit to: ${evmAddr}`);
224
+ * ```
225
+ */
226
+ getEvmDepositAddress(walletAddress: string): Promise<string>;
227
+ /**
228
+ * Get the Solana deposit address for a wallet
229
+ *
230
+ * @param walletAddress - Your Polymarket wallet address
231
+ * @returns The Solana deposit address
232
+ */
233
+ getSolanaDepositAddress(walletAddress: string): Promise<string>;
234
+ /**
235
+ * Get the Bitcoin deposit address for a wallet
236
+ *
237
+ * @param walletAddress - Your Polymarket wallet address
238
+ * @returns The Bitcoin deposit address
239
+ */
240
+ getBtcDepositAddress(walletAddress: string): Promise<string>;
241
+ /**
242
+ * @deprecated Use getEvmDepositAddress(), getSolanaDepositAddress(), or getBtcDepositAddress() instead.
243
+ *
244
+ * The Bridge API returns universal addresses by chain type (EVM/SVM/BTC),
245
+ * not by specific chain/token combinations.
246
+ *
247
+ * For EVM chains (Ethereum, Polygon, Arbitrum, Base, Optimism), use getEvmDepositAddress()
248
+ */
249
+ getDepositAddress(address: string, _chainId: number, _tokenSymbol: string): Promise<DepositAddress | null>;
250
+ /**
251
+ * Check if a chain/token combination is supported
252
+ *
253
+ * @param chainId - The chain ID to check
254
+ * @param tokenSymbol - The token symbol to check
255
+ * @returns True if supported, false otherwise
256
+ */
257
+ isSupported(chainId: number, tokenSymbol: string): Promise<boolean>;
258
+ /**
259
+ * Get minimum deposit amount for a chain/token
260
+ *
261
+ * @param chainId - The chain ID
262
+ * @param tokenSymbol - The token symbol
263
+ * @returns Minimum deposit info or null if not supported
264
+ */
265
+ getMinDeposit(chainId: number, tokenSymbol: string): Promise<{
266
+ amount: string;
267
+ usd: number;
268
+ } | null>;
269
+ /**
270
+ * Format deposit instructions for a user
271
+ *
272
+ * @param walletAddress - The Polymarket wallet address
273
+ * @returns Formatted instructions string
274
+ */
275
+ getDepositInstructions(walletAddress: string): Promise<string>;
276
+ private fetch;
277
+ }
278
+ import { ethers } from 'ethers';
279
+ export interface DepositResult {
280
+ success: boolean;
281
+ txHash?: string;
282
+ amount: string;
283
+ depositAddress: string;
284
+ error?: string;
285
+ }
286
+ export interface DepositOptions {
287
+ /** Chain ID for the deposit (default: 137 for Polygon) */
288
+ chainId?: number;
289
+ /** Token to deposit: 'NATIVE_USDC' or 'USDC_E' (default: 'NATIVE_USDC') */
290
+ token?: 'NATIVE_USDC' | 'USDC_E';
291
+ /** Gas price multiplier (default: 1.2) */
292
+ gasPriceMultiplier?: number;
293
+ }
294
+ /**
295
+ * Deposit USDC to Polymarket via Bridge
296
+ *
297
+ * This function:
298
+ * 1. Gets the deposit address for your wallet
299
+ * 2. Transfers USDC to that address
300
+ * 3. The bridge automatically converts it to USDC.e for your Polymarket account
301
+ *
302
+ * @param signer - Ethers wallet/signer to send from
303
+ * @param amount - Amount in USDC (e.g., 10.5 for $10.50)
304
+ * @param options - Deposit options
305
+ * @returns Deposit result with transaction hash
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * const bridge = new BridgeClient();
310
+ * const result = await bridge.depositUsdc(signer, 100);
311
+ * console.log(`Deposited $100: ${result.txHash}`);
312
+ * ```
313
+ */
314
+ export declare function depositUsdc(signer: ethers.Wallet, amount: number, options?: DepositOptions): Promise<DepositResult>;
315
+ export interface SwapAndDepositOptions {
316
+ /** Slippage tolerance for swap (default: 0.5%) */
317
+ slippage?: number;
318
+ /** Gas price multiplier (default: 1.2) */
319
+ gasPriceMultiplier?: number;
320
+ }
321
+ export interface SwapAndDepositResult {
322
+ success: boolean;
323
+ /** Swap transaction hash (if swap was needed) */
324
+ swapTxHash?: string;
325
+ /** Deposit transaction hash */
326
+ depositTxHash?: string;
327
+ /** Input token */
328
+ tokenIn: string;
329
+ /** Amount of input token */
330
+ amountIn: string;
331
+ /** Amount of USDC after swap */
332
+ usdcAmount: string;
333
+ /** Deposit address */
334
+ depositAddress: string;
335
+ /** Error message if failed */
336
+ error?: string;
337
+ }
338
+ /**
339
+ * Swap any supported Polygon token to USDC and deposit to Polymarket
340
+ *
341
+ * Supported tokens: MATIC, WMATIC, USDC, USDC_E, USDT, DAI, WETH
342
+ *
343
+ * Flow:
344
+ * 1. If token is not USDC, swap to USDC using QuickSwap
345
+ * 2. Deposit USDC to the bridge deposit address
346
+ *
347
+ * @param signer - Ethers wallet/signer
348
+ * @param token - Token symbol to deposit (e.g., 'MATIC', 'WETH', 'USDT')
349
+ * @param amount - Amount to deposit in token units
350
+ * @param options - Swap and deposit options
351
+ * @returns Result with transaction hashes
352
+ *
353
+ * @example
354
+ * ```typescript
355
+ * // Deposit 10 MATIC
356
+ * const result = await swapAndDeposit(signer, 'MATIC', '10');
357
+ *
358
+ * // Deposit 100 USDT
359
+ * const result = await swapAndDeposit(signer, 'USDT', '100');
360
+ *
361
+ * // Deposit 0.1 WETH
362
+ * const result = await swapAndDeposit(signer, 'WETH', '0.1');
363
+ * ```
364
+ */
365
+ export declare function swapAndDeposit(signer: ethers.Wallet, token: string, amount: string, options?: SwapAndDepositOptions): Promise<SwapAndDepositResult>;
366
+ /**
367
+ * Get list of supported tokens for swap and deposit
368
+ */
369
+ export declare function getSupportedDepositTokens(): string[];
370
+ /**
371
+ * Calculate the expected USDC.e output after bridge fees
372
+ *
373
+ * Note: This is an estimate. Actual output depends on bridge/swap fees.
374
+ *
375
+ * @param amount - Input amount in source token
376
+ * @param tokenSymbol - Source token symbol
377
+ * @returns Estimated USDC.e output
378
+ */
379
+ export declare function estimateBridgeOutput(amount: number, tokenSymbol: string): number;
380
+ /**
381
+ * Get explorer URL for a deposit transaction
382
+ *
383
+ * @param chainId - The chain ID
384
+ * @param txHash - The transaction hash
385
+ * @returns Block explorer URL
386
+ */
387
+ export declare function getExplorerUrl(chainId: number, txHash: string): string;
388
+ //# sourceMappingURL=bridge-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-client.d.ts","sourceRoot":"","sources":["../../src/clients/bridge-client.ts"],"names":[],"mappings":"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"}