agentwallet-sdk 3.2.1 → 3.4.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 (315) hide show
  1. package/README.md +2 -536
  2. package/dist/bridge/abis.d.ts +48 -171
  3. package/dist/bridge/abis.d.ts.map +1 -1
  4. package/dist/bridge/abis.js.map +1 -1
  5. package/dist/bridge/client.d.ts +2 -41
  6. package/dist/bridge/client.d.ts.map +1 -1
  7. package/dist/bridge/client.js +35 -168
  8. package/dist/bridge/client.js.map +1 -1
  9. package/dist/bridge/index.d.ts +2 -4
  10. package/dist/bridge/index.d.ts.map +1 -1
  11. package/dist/bridge/index.js +1 -8
  12. package/dist/bridge/index.js.map +1 -1
  13. package/dist/bridge/types.d.ts +15 -134
  14. package/dist/bridge/types.d.ts.map +1 -1
  15. package/dist/bridge/types.js +16 -170
  16. package/dist/bridge/types.js.map +1 -1
  17. package/dist/identity/erc8004.d.ts +2 -240
  18. package/dist/identity/erc8004.d.ts.map +1 -1
  19. package/dist/identity/erc8004.js +58 -334
  20. package/dist/identity/erc8004.js.map +1 -1
  21. package/dist/index.d.ts +313 -134
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +11 -56
  24. package/dist/index.js.map +1 -1
  25. package/dist/swap/SwapModule.d.ts +6 -50
  26. package/dist/swap/SwapModule.d.ts.map +1 -1
  27. package/dist/swap/SwapModule.js +25 -153
  28. package/dist/swap/SwapModule.js.map +1 -1
  29. package/dist/swap/abi.d.ts +47 -165
  30. package/dist/swap/abi.d.ts.map +1 -1
  31. package/dist/swap/abi.js.map +1 -1
  32. package/dist/swap/index.d.ts +2 -3
  33. package/dist/swap/index.d.ts.map +1 -1
  34. package/dist/swap/index.js +1 -4
  35. package/dist/swap/index.js.map +1 -1
  36. package/dist/swap/types.d.ts +6 -36
  37. package/dist/swap/types.d.ts.map +1 -1
  38. package/dist/swap/types.js +0 -1
  39. package/dist/swap/types.js.map +1 -1
  40. package/dist/types.d.ts +1 -2
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +0 -1
  43. package/dist/types.js.map +1 -1
  44. package/dist/x402/__tests__/budget.test.d.ts +2 -0
  45. package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
  46. package/dist/x402/__tests__/budget.test.js +114 -0
  47. package/dist/x402/__tests__/budget.test.js.map +1 -0
  48. package/dist/x402/__tests__/client.test.d.ts +2 -0
  49. package/dist/x402/__tests__/client.test.d.ts.map +1 -0
  50. package/dist/x402/__tests__/client.test.js +107 -0
  51. package/dist/x402/__tests__/client.test.js.map +1 -0
  52. package/dist/x402/chains/abstract/index.d.ts +135 -0
  53. package/dist/x402/chains/abstract/index.d.ts.map +1 -0
  54. package/dist/x402/chains/abstract/index.js +190 -0
  55. package/dist/x402/chains/abstract/index.js.map +1 -0
  56. package/dist/x402/client.d.ts.map +1 -1
  57. package/dist/x402/client.js +1 -2
  58. package/dist/x402/client.js.map +1 -1
  59. package/dist/x402/index.d.ts +3 -1
  60. package/dist/x402/index.d.ts.map +1 -1
  61. package/dist/x402/index.js +3 -1
  62. package/dist/x402/index.js.map +1 -1
  63. package/dist/x402/types.d.ts +3 -5
  64. package/dist/x402/types.d.ts.map +1 -1
  65. package/dist/x402/types.js +2 -17
  66. package/dist/x402/types.js.map +1 -1
  67. package/package.json +12 -32
  68. package/dist/ap2/index.d.ts +0 -185
  69. package/dist/ap2/index.d.ts.map +0 -1
  70. package/dist/ap2/index.js +0 -255
  71. package/dist/ap2/index.js.map +0 -1
  72. package/dist/bridge/unified.d.ts +0 -101
  73. package/dist/bridge/unified.d.ts.map +0 -1
  74. package/dist/bridge/unified.js +0 -284
  75. package/dist/bridge/unified.js.map +0 -1
  76. package/dist/chains.d.ts +0 -62
  77. package/dist/chains.d.ts.map +0 -1
  78. package/dist/chains.js +0 -108
  79. package/dist/chains.js.map +0 -1
  80. package/dist/fiat/index.d.ts +0 -10
  81. package/dist/fiat/index.d.ts.map +0 -1
  82. package/dist/fiat/index.js +0 -9
  83. package/dist/fiat/index.js.map +0 -1
  84. package/dist/fiat/onramp.d.ts +0 -101
  85. package/dist/fiat/onramp.d.ts.map +0 -1
  86. package/dist/fiat/onramp.js +0 -155
  87. package/dist/fiat/onramp.js.map +0 -1
  88. package/dist/fiat/providers/index.d.ts +0 -16
  89. package/dist/fiat/providers/index.d.ts.map +0 -1
  90. package/dist/fiat/providers/index.js +0 -30
  91. package/dist/fiat/providers/index.js.map +0 -1
  92. package/dist/fiat/providers/moonpay.d.ts +0 -22
  93. package/dist/fiat/providers/moonpay.d.ts.map +0 -1
  94. package/dist/fiat/providers/moonpay.js +0 -107
  95. package/dist/fiat/providers/moonpay.js.map +0 -1
  96. package/dist/fiat/providers/stripe.d.ts +0 -26
  97. package/dist/fiat/providers/stripe.d.ts.map +0 -1
  98. package/dist/fiat/providers/stripe.js +0 -135
  99. package/dist/fiat/providers/stripe.js.map +0 -1
  100. package/dist/fiat/providers/transak.d.ts +0 -26
  101. package/dist/fiat/providers/transak.d.ts.map +0 -1
  102. package/dist/fiat/providers/transak.js +0 -119
  103. package/dist/fiat/providers/transak.js.map +0 -1
  104. package/dist/fiat/types.d.ts +0 -106
  105. package/dist/fiat/types.d.ts.map +0 -1
  106. package/dist/fiat/types.js +0 -13
  107. package/dist/fiat/types.js.map +0 -1
  108. package/dist/flash/executor.d.ts +0 -119
  109. package/dist/flash/executor.d.ts.map +0 -1
  110. package/dist/flash/executor.js +0 -195
  111. package/dist/flash/executor.js.map +0 -1
  112. package/dist/flash/index.d.ts +0 -28
  113. package/dist/flash/index.d.ts.map +0 -1
  114. package/dist/flash/index.js +0 -25
  115. package/dist/flash/index.js.map +0 -1
  116. package/dist/flash/scanner.d.ts +0 -133
  117. package/dist/flash/scanner.d.ts.map +0 -1
  118. package/dist/flash/scanner.js +0 -212
  119. package/dist/flash/scanner.js.map +0 -1
  120. package/dist/flash/types.d.ts +0 -136
  121. package/dist/flash/types.d.ts.map +0 -1
  122. package/dist/flash/types.js +0 -23
  123. package/dist/flash/types.js.map +0 -1
  124. package/dist/gas/index.d.ts +0 -4
  125. package/dist/gas/index.d.ts.map +0 -1
  126. package/dist/gas/index.js +0 -3
  127. package/dist/gas/index.js.map +0 -1
  128. package/dist/gas/sponsor.d.ts +0 -70
  129. package/dist/gas/sponsor.d.ts.map +0 -1
  130. package/dist/gas/sponsor.js +0 -193
  131. package/dist/gas/sponsor.js.map +0 -1
  132. package/dist/gas/types.d.ts +0 -76
  133. package/dist/gas/types.d.ts.map +0 -1
  134. package/dist/gas/types.js +0 -21
  135. package/dist/gas/types.js.map +0 -1
  136. package/dist/identity/agent-identity.d.ts +0 -276
  137. package/dist/identity/agent-identity.d.ts.map +0 -1
  138. package/dist/identity/agent-identity.js +0 -300
  139. package/dist/identity/agent-identity.js.map +0 -1
  140. package/dist/identity/erc6551.d.ts +0 -441
  141. package/dist/identity/erc6551.d.ts.map +0 -1
  142. package/dist/identity/erc6551.js +0 -517
  143. package/dist/identity/erc6551.js.map +0 -1
  144. package/dist/mev/index.d.ts +0 -4
  145. package/dist/mev/index.d.ts.map +0 -1
  146. package/dist/mev/index.js +0 -4
  147. package/dist/mev/index.js.map +0 -1
  148. package/dist/mev/protection.d.ts +0 -54
  149. package/dist/mev/protection.d.ts.map +0 -1
  150. package/dist/mev/protection.js +0 -185
  151. package/dist/mev/protection.js.map +0 -1
  152. package/dist/mev/risk.d.ts +0 -19
  153. package/dist/mev/risk.d.ts.map +0 -1
  154. package/dist/mev/risk.js +0 -95
  155. package/dist/mev/risk.js.map +0 -1
  156. package/dist/mev/types.d.ts +0 -49
  157. package/dist/mev/types.d.ts.map +0 -1
  158. package/dist/mev/types.js +0 -2
  159. package/dist/mev/types.js.map +0 -1
  160. package/dist/settlement/index.d.ts +0 -4
  161. package/dist/settlement/index.d.ts.map +0 -1
  162. package/dist/settlement/index.js +0 -3
  163. package/dist/settlement/index.js.map +0 -1
  164. package/dist/settlement/types.d.ts +0 -66
  165. package/dist/settlement/types.d.ts.map +0 -1
  166. package/dist/settlement/types.js +0 -37
  167. package/dist/settlement/types.js.map +0 -1
  168. package/dist/settlement/verifier.d.ts +0 -75
  169. package/dist/settlement/verifier.d.ts.map +0 -1
  170. package/dist/settlement/verifier.js +0 -354
  171. package/dist/settlement/verifier.js.map +0 -1
  172. package/dist/solana/bridge.d.ts +0 -144
  173. package/dist/solana/bridge.d.ts.map +0 -1
  174. package/dist/solana/bridge.js +0 -352
  175. package/dist/solana/bridge.js.map +0 -1
  176. package/dist/solana/index.d.ts +0 -8
  177. package/dist/solana/index.d.ts.map +0 -1
  178. package/dist/solana/index.js +0 -6
  179. package/dist/solana/index.js.map +0 -1
  180. package/dist/solana/swap.d.ts +0 -85
  181. package/dist/solana/swap.d.ts.map +0 -1
  182. package/dist/solana/swap.js +0 -173
  183. package/dist/solana/swap.js.map +0 -1
  184. package/dist/solana/types.d.ts +0 -126
  185. package/dist/solana/types.d.ts.map +0 -1
  186. package/dist/solana/types.js +0 -10
  187. package/dist/solana/types.js.map +0 -1
  188. package/dist/solana/wallet.d.ts +0 -83
  189. package/dist/solana/wallet.d.ts.map +0 -1
  190. package/dist/solana/wallet.js +0 -164
  191. package/dist/solana/wallet.js.map +0 -1
  192. package/dist/solana/x402.d.ts +0 -69
  193. package/dist/solana/x402.d.ts.map +0 -1
  194. package/dist/solana/x402.js +0 -154
  195. package/dist/solana/x402.js.map +0 -1
  196. package/dist/solver/adapter.d.ts +0 -47
  197. package/dist/solver/adapter.d.ts.map +0 -1
  198. package/dist/solver/adapter.js +0 -138
  199. package/dist/solver/adapter.js.map +0 -1
  200. package/dist/solver/analyzer.d.ts +0 -48
  201. package/dist/solver/analyzer.d.ts.map +0 -1
  202. package/dist/solver/analyzer.js +0 -89
  203. package/dist/solver/analyzer.js.map +0 -1
  204. package/dist/solver/builder.d.ts +0 -31
  205. package/dist/solver/builder.d.ts.map +0 -1
  206. package/dist/solver/builder.js +0 -60
  207. package/dist/solver/builder.js.map +0 -1
  208. package/dist/solver/index.d.ts +0 -22
  209. package/dist/solver/index.d.ts.map +0 -1
  210. package/dist/solver/index.js +0 -21
  211. package/dist/solver/index.js.map +0 -1
  212. package/dist/solver/types.d.ts +0 -115
  213. package/dist/solver/types.d.ts.map +0 -1
  214. package/dist/solver/types.js +0 -10
  215. package/dist/solver/types.js.map +0 -1
  216. package/dist/swap/router/cache.d.ts +0 -13
  217. package/dist/swap/router/cache.d.ts.map +0 -1
  218. package/dist/swap/router/cache.js +0 -30
  219. package/dist/swap/router/cache.js.map +0 -1
  220. package/dist/swap/router/flashbots.d.ts +0 -10
  221. package/dist/swap/router/flashbots.d.ts.map +0 -1
  222. package/dist/swap/router/flashbots.js +0 -43
  223. package/dist/swap/router/flashbots.js.map +0 -1
  224. package/dist/swap/router/health.d.ts +0 -17
  225. package/dist/swap/router/health.d.ts.map +0 -1
  226. package/dist/swap/router/health.js +0 -38
  227. package/dist/swap/router/health.js.map +0 -1
  228. package/dist/swap/router/index.d.ts +0 -10
  229. package/dist/swap/router/index.d.ts.map +0 -1
  230. package/dist/swap/router/index.js +0 -10
  231. package/dist/swap/router/index.js.map +0 -1
  232. package/dist/swap/router/providers/cowswap.d.ts +0 -11
  233. package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
  234. package/dist/swap/router/providers/cowswap.js +0 -79
  235. package/dist/swap/router/providers/cowswap.js.map +0 -1
  236. package/dist/swap/router/providers/index.d.ts +0 -20
  237. package/dist/swap/router/providers/index.d.ts.map +0 -1
  238. package/dist/swap/router/providers/index.js +0 -32
  239. package/dist/swap/router/providers/index.js.map +0 -1
  240. package/dist/swap/router/providers/jupiter.d.ts +0 -12
  241. package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
  242. package/dist/swap/router/providers/jupiter.js +0 -73
  243. package/dist/swap/router/providers/jupiter.js.map +0 -1
  244. package/dist/swap/router/providers/lifi.d.ts +0 -11
  245. package/dist/swap/router/providers/lifi.d.ts.map +0 -1
  246. package/dist/swap/router/providers/lifi.js +0 -123
  247. package/dist/swap/router/providers/lifi.js.map +0 -1
  248. package/dist/swap/router/providers/oneinch.d.ts +0 -13
  249. package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
  250. package/dist/swap/router/providers/oneinch.js +0 -71
  251. package/dist/swap/router/providers/oneinch.js.map +0 -1
  252. package/dist/swap/router/providers/paraswap.d.ts +0 -11
  253. package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
  254. package/dist/swap/router/providers/paraswap.js +0 -73
  255. package/dist/swap/router/providers/paraswap.js.map +0 -1
  256. package/dist/swap/router/providers/uniswap.d.ts +0 -31
  257. package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
  258. package/dist/swap/router/providers/uniswap.js +0 -116
  259. package/dist/swap/router/providers/uniswap.js.map +0 -1
  260. package/dist/swap/router/providers/zerox.d.ts +0 -13
  261. package/dist/swap/router/providers/zerox.d.ts.map +0 -1
  262. package/dist/swap/router/providers/zerox.js +0 -94
  263. package/dist/swap/router/providers/zerox.js.map +0 -1
  264. package/dist/swap/router/router.d.ts +0 -86
  265. package/dist/swap/router/router.d.ts.map +0 -1
  266. package/dist/swap/router/router.js +0 -224
  267. package/dist/swap/router/router.js.map +0 -1
  268. package/dist/swap/router/rsi/engine.d.ts +0 -60
  269. package/dist/swap/router/rsi/engine.d.ts.map +0 -1
  270. package/dist/swap/router/rsi/engine.js +0 -483
  271. package/dist/swap/router/rsi/engine.js.map +0 -1
  272. package/dist/swap/router/rsi/index.d.ts +0 -3
  273. package/dist/swap/router/rsi/index.d.ts.map +0 -1
  274. package/dist/swap/router/rsi/index.js +0 -3
  275. package/dist/swap/router/rsi/index.js.map +0 -1
  276. package/dist/swap/router/rsi/types.d.ts +0 -106
  277. package/dist/swap/router/rsi/types.d.ts.map +0 -1
  278. package/dist/swap/router/rsi/types.js +0 -3
  279. package/dist/swap/router/rsi/types.js.map +0 -1
  280. package/dist/swap/router/types.d.ts +0 -120
  281. package/dist/swap/router/types.d.ts.map +0 -1
  282. package/dist/swap/router/types.js +0 -16
  283. package/dist/swap/router/types.js.map +0 -1
  284. package/dist/tax/engine.d.ts +0 -131
  285. package/dist/tax/engine.d.ts.map +0 -1
  286. package/dist/tax/engine.js +0 -307
  287. package/dist/tax/engine.js.map +0 -1
  288. package/dist/tax/index.d.ts +0 -9
  289. package/dist/tax/index.d.ts.map +0 -1
  290. package/dist/tax/index.js +0 -8
  291. package/dist/tax/index.js.map +0 -1
  292. package/dist/tax/lots.d.ts +0 -60
  293. package/dist/tax/lots.d.ts.map +0 -1
  294. package/dist/tax/lots.js +0 -129
  295. package/dist/tax/lots.js.map +0 -1
  296. package/dist/tax/types.d.ts +0 -113
  297. package/dist/tax/types.d.ts.map +0 -1
  298. package/dist/tax/types.js +0 -18
  299. package/dist/tax/types.js.map +0 -1
  300. package/dist/yield/index.d.ts +0 -26
  301. package/dist/yield/index.d.ts.map +0 -1
  302. package/dist/yield/index.js +0 -25
  303. package/dist/yield/index.js.map +0 -1
  304. package/dist/yield/rates.d.ts +0 -114
  305. package/dist/yield/rates.d.ts.map +0 -1
  306. package/dist/yield/rates.js +0 -351
  307. package/dist/yield/rates.js.map +0 -1
  308. package/dist/yield/types.d.ts +0 -134
  309. package/dist/yield/types.d.ts.map +0 -1
  310. package/dist/yield/types.js +0 -24
  311. package/dist/yield/types.js.map +0 -1
  312. package/dist/yield/vault.d.ts +0 -112
  313. package/dist/yield/vault.d.ts.map +0 -1
  314. package/dist/yield/vault.js +0 -264
  315. package/dist/yield/vault.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/solver/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -1,115 +0,0 @@
1
- /**
2
- * CowSwap Solver Adapter — Types
3
- *
4
- * Shadow competition is FREE. Production solver requires CowSwap DAO bonding
5
- * pool approval and KYC. Never assume production credentials in this module.
6
- *
7
- * @module solver/types
8
- */
9
- /** CowSwap order types (from their protocol) */
10
- export type OrderKind = 'sell' | 'buy';
11
- export type SigningScheme = 'eip712' | 'ethsign' | 'presign' | 'eip1271';
12
- export type TokenBalance = 'erc20' | 'internal' | 'external';
13
- /** A single user order in a CowSwap auction batch */
14
- export interface CowOrder {
15
- /** Unique order UID */
16
- uid: string;
17
- /** Owner wallet */
18
- owner: string;
19
- sellToken: string;
20
- buyToken: string;
21
- sellAmount: string;
22
- buyAmount: string;
23
- feeAmount: string;
24
- kind: OrderKind;
25
- partiallyFillable: boolean;
26
- sellTokenBalance: TokenBalance;
27
- buyTokenBalance: TokenBalance;
28
- validTo: number;
29
- appData: string;
30
- signingScheme: SigningScheme;
31
- signature: string;
32
- }
33
- /** An auction batch that CowSwap sends to solvers */
34
- export interface CowAuctionBatch {
35
- id: number;
36
- instance: {
37
- /** The orders to settle */
38
- orders: Record<string, CowOrder>;
39
- /** Current on-chain token prices (used for surplus calculation) */
40
- prices: Record<string, string>;
41
- /** Available AMM pools for solver use */
42
- ammsAndLiquidity?: unknown;
43
- };
44
- /** Auction deadline (submit before this) */
45
- deadline: number;
46
- }
47
- /** A token interaction in a settlement (AMM trade, DEX swap, etc.) */
48
- export interface TokenInteraction {
49
- target: string;
50
- value: string;
51
- callData: string;
52
- }
53
- /** Our settlement solution to submit to CowSwap */
54
- export interface SolverSolution {
55
- /** Auction ID we're responding to */
56
- auctionId: number;
57
- /** Orders we're settling */
58
- trades: Array<{
59
- kind: 'fulfillment';
60
- order: string;
61
- executedAmount: string;
62
- }>;
63
- /** On-chain interactions needed to source the liquidity */
64
- interactions: {
65
- pre: TokenInteraction[];
66
- intra: TokenInteraction[];
67
- post: TokenInteraction[];
68
- };
69
- /** Token prices in our settlement (solver sets these, determines surplus) */
70
- prices: Record<string, string>;
71
- /** Gas used estimate (CowSwap v2 "score") */
72
- score?: string;
73
- }
74
- /** Result of a solution submission */
75
- export interface SolutionSubmissionResult {
76
- success: boolean;
77
- auctionId: number;
78
- solutionId?: string;
79
- won?: boolean;
80
- surplus?: string;
81
- error?: string;
82
- }
83
- /** Solver competition statistics */
84
- export interface SolverStats {
85
- auctionsProcessed: number;
86
- auctionsWon: number;
87
- auctionsLost: number;
88
- totalSurplusGenerated: string;
89
- winRate: number;
90
- avgResponseTimeMs: number;
91
- lastAuctionAt?: number;
92
- }
93
- /**
94
- * Solver configuration.
95
- *
96
- * ⚠️ Shadow mode is the default and is FREE — no registration required.
97
- * Production solver requires CowSwap DAO bonding pool approval and KYC.
98
- */
99
- export interface SolverConfig {
100
- /** CowSwap environment (default: 'shadow') */
101
- environment?: 'mainnet' | 'staging' | 'shadow';
102
- /** Solver name shown in CowSwap UI (default: 'AgentWallet') */
103
- solverName?: string;
104
- /** Chain to operate on */
105
- chain: string;
106
- /** Submission endpoint override */
107
- submissionUrl?: string;
108
- /** Maximum gas willing to pay per settlement in Gwei (default: 50) */
109
- maxGasGwei?: number;
110
- /** Minimum surplus to bother submitting in USD (default: 0.5) */
111
- minSurplusUsd?: number;
112
- /** Response timeout ms — must be < 30s for CowSwap (default: 20000) */
113
- responseTimeoutMs?: number;
114
- }
115
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/solver/types.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * CowSwap Solver Adapter — Types
3
- *
4
- * Shadow competition is FREE. Production solver requires CowSwap DAO bonding
5
- * pool approval and KYC. Never assume production credentials in this module.
6
- *
7
- * @module solver/types
8
- */
9
- export {};
10
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/solver/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1,13 +0,0 @@
1
- import type { AggregatorQuote, QuoteParams } from './types.js';
2
- export declare class QuoteCache {
3
- private cache;
4
- private ttlMs;
5
- constructor(ttlMs?: number);
6
- private key;
7
- get(params: QuoteParams): AggregatorQuote[] | null;
8
- set(params: QuoteParams, quotes: AggregatorQuote[]): void;
9
- clear(): void;
10
- /** Number of currently cached (non-expired) entries */
11
- size(): number;
12
- }
13
- //# sourceMappingURL=cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/swap/router/cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAuE;IACpF,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,SAAO;IAIxB,OAAO,CAAC,GAAG;IAIX,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,EAAE,GAAG,IAAI;IAUlD,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAIzD,KAAK,IAAI,IAAI;IAIb,uDAAuD;IACvD,IAAI,IAAI,MAAM;CAGf"}
@@ -1,30 +0,0 @@
1
- export class QuoteCache {
2
- constructor(ttlMs = 3000) {
3
- this.cache = new Map();
4
- this.ttlMs = ttlMs;
5
- }
6
- key(params) {
7
- return `${params.chain}:${params.fromToken}:${params.toToken}:${params.amount}`;
8
- }
9
- get(params) {
10
- const entry = this.cache.get(this.key(params));
11
- if (!entry)
12
- return null;
13
- if (Date.now() - entry.timestamp > this.ttlMs) {
14
- this.cache.delete(this.key(params));
15
- return null;
16
- }
17
- return entry.quotes;
18
- }
19
- set(params, quotes) {
20
- this.cache.set(this.key(params), { quotes, timestamp: Date.now() });
21
- }
22
- clear() {
23
- this.cache.clear();
24
- }
25
- /** Number of currently cached (non-expired) entries */
26
- size() {
27
- return this.cache.size;
28
- }
29
- }
30
- //# sourceMappingURL=cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/swap/router/cache.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,UAAU;IAIrB,YAAY,KAAK,GAAG,IAAI;QAHhB,UAAK,GAAG,IAAI,GAAG,EAA4D,CAAC;QAIlF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,GAAG,CAAC,MAAmB;QAC7B,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;IAClF,CAAC;IAED,GAAG,CAAC,MAAmB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,MAAmB,EAAE,MAAyB;QAChD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,uDAAuD;IACvD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -1,10 +0,0 @@
1
- export declare class FlashbotsProtectRpc {
2
- private readonly rpcUrl;
3
- constructor(options?: {
4
- fast?: boolean;
5
- useMempool?: boolean;
6
- });
7
- sendTransaction(signedTx: string): Promise<string>;
8
- getTransactionStatus(txHash: string): Promise<'pending' | 'included' | 'failed' | 'unknown'>;
9
- }
10
- //# sourceMappingURL=flashbots.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flashbots.d.ts","sourceRoot":"","sources":["../../../src/swap/router/flashbots.ts"],"names":[],"mappings":"AAOA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE;IAOxD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;CASnG"}
@@ -1,43 +0,0 @@
1
- // [MAX-ADDED] FlashbotsProtectRpc — MEV protection via Flashbots Protect RPC
2
- // Endpoint: https://rpc.flashbots.net
3
- // - Transactions are never sent to the public mempool
4
- // - Failed transactions don't cost gas
5
- // - MEV refunds if your tx creates MEV
6
- // Only works on Ethereum mainnet.
7
- export class FlashbotsProtectRpc {
8
- constructor(options) {
9
- let url = 'https://rpc.flashbots.net';
10
- if (options?.fast)
11
- url += '/fast';
12
- if (options?.useMempool)
13
- url += '?useMempool=true';
14
- this.rpcUrl = url;
15
- }
16
- async sendTransaction(signedTx) {
17
- const res = await fetch(this.rpcUrl, {
18
- method: 'POST',
19
- headers: { 'Content-Type': 'application/json' },
20
- body: JSON.stringify({
21
- jsonrpc: '2.0',
22
- id: 1,
23
- method: 'eth_sendRawTransaction',
24
- params: [signedTx],
25
- }),
26
- });
27
- const data = (await res.json());
28
- if (data.error)
29
- throw new Error(`Flashbots: ${data.error.message}`);
30
- return data.result ?? '';
31
- }
32
- async getTransactionStatus(txHash) {
33
- const res = await fetch(`https://protect.flashbots.net/tx/${txHash}`, {
34
- headers: { 'Content-Type': 'application/json' },
35
- });
36
- const data = (await res.json());
37
- const s = data.status;
38
- if (s === 'pending' || s === 'included' || s === 'failed')
39
- return s;
40
- return 'unknown';
41
- }
42
- }
43
- //# sourceMappingURL=flashbots.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flashbots.js","sourceRoot":"","sources":["../../../src/swap/router/flashbots.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,sCAAsC;AACtC,sDAAsD;AACtD,uCAAuC;AACvC,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,OAAO,mBAAmB;IAG9B,YAAY,OAAkD;QAC5D,IAAI,GAAG,GAAG,2BAA2B,CAAC;QACtC,IAAI,OAAO,EAAE,IAAI;YAAE,GAAG,IAAI,OAAO,CAAC;QAClC,IAAI,OAAO,EAAE,UAAU;YAAE,GAAG,IAAI,kBAAkB,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,wBAAwB;gBAChC,MAAM,EAAE,CAAC,QAAQ,CAAC;aACnB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqD,CAAC;QACpF,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc;QACvC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oCAAoC,MAAM,EAAE,EAAE;YACpE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB,CAAC;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -1,17 +0,0 @@
1
- export declare class ProviderHealthTracker {
2
- private failures;
3
- private lastFailureTime;
4
- private readonly maxFailures;
5
- private readonly cooldownMs;
6
- constructor(maxFailures?: number, cooldownMs?: number);
7
- recordSuccess(provider: string): void;
8
- recordFailure(provider: string): void;
9
- isHealthy(provider: string): boolean;
10
- getStats(): Record<string, {
11
- failures: number;
12
- healthy: boolean;
13
- }>;
14
- /** Reset a provider back to healthy state */
15
- reset(provider: string): void;
16
- }
17
- //# sourceMappingURL=health.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/swap/router/health.ts"],"names":[],"mappings":"AAEA,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,WAAW,SAAI,EAAE,UAAU,SAAQ;IAK/C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKrC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKrC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQpC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQlE,6CAA6C;IAC7C,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAI9B"}
@@ -1,38 +0,0 @@
1
- // [MAX-ADDED] ProviderHealthTracker — circuit-breaker style health tracking for swap providers
2
- export class ProviderHealthTracker {
3
- constructor(maxFailures = 3, cooldownMs = 60000) {
4
- this.failures = new Map(); // consecutive failures
5
- this.lastFailureTime = new Map(); // timestamp of last recorded failure
6
- this.maxFailures = maxFailures;
7
- this.cooldownMs = cooldownMs;
8
- }
9
- recordSuccess(provider) {
10
- this.failures.set(provider, 0);
11
- this.lastFailureTime.delete(provider);
12
- }
13
- recordFailure(provider) {
14
- this.failures.set(provider, (this.failures.get(provider) ?? 0) + 1);
15
- this.lastFailureTime.set(provider, Date.now());
16
- }
17
- isHealthy(provider) {
18
- const fails = this.failures.get(provider) ?? 0;
19
- if (fails < this.maxFailures)
20
- return true;
21
- // After cooldown since last failure, allow retry
22
- const lastFail = this.lastFailureTime.get(provider) ?? 0;
23
- return Date.now() - lastFail > this.cooldownMs;
24
- }
25
- getStats() {
26
- const stats = {};
27
- for (const [name, fails] of this.failures) {
28
- stats[name] = { failures: fails, healthy: this.isHealthy(name) };
29
- }
30
- return stats;
31
- }
32
- /** Reset a provider back to healthy state */
33
- reset(provider) {
34
- this.failures.delete(provider);
35
- this.lastFailureTime.delete(provider);
36
- }
37
- }
38
- //# sourceMappingURL=health.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/swap/router/health.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,MAAM,OAAO,qBAAqB;IAMhC,YAAY,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK;QALvC,aAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,uBAAuB;QAC7D,oBAAe,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,qCAAqC;QAKxF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAC1C,iDAAiD;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;IACjD,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAA2D,EAAE,CAAC;QACzE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,QAAgB;QACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -1,10 +0,0 @@
1
- export { SmartSwapRouter, scoreQuote } from './router.js';
2
- export { QuoteCache } from './cache.js';
3
- export { ProviderHealthTracker } from './health.js';
4
- export { FlashbotsProtectRpc } from './flashbots.js';
5
- export { UniswapProvider, JupiterProvider, OneInchProvider, ZeroXProvider, ParaSwapProvider, CowSwapProvider, LiFiProvider, buildDefaultProviders, buildQuote, } from './providers/index.js';
6
- export type { AggregatorQuote, AggregatorSwapResult, QuoteParams, SmartSwapConfig, SwapStrategy, ISwapProvider, TransactionReceipt, } from './types.js';
7
- export { CHAIN_IDS, CHAIN_NAMES } from './types.js';
8
- export { SwapRSIEngine } from './rsi/index.js';
9
- export type { WalletGoals, WalletDirective, RSIConfig, RSIMetric, SwapOutcome, MutationResult, RSIState, ProviderWeights, } from './rsi/index.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/swap/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EACV,WAAW,EACX,eAAe,EACf,SAAS,EACT,SAAS,EACT,WAAW,EACX,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
@@ -1,10 +0,0 @@
1
- // [MAX-ADDED] SmartSwapRouter public API
2
- export { SmartSwapRouter, scoreQuote } from './router.js';
3
- export { QuoteCache } from './cache.js';
4
- export { ProviderHealthTracker } from './health.js';
5
- export { FlashbotsProtectRpc } from './flashbots.js';
6
- export { UniswapProvider, JupiterProvider, OneInchProvider, ZeroXProvider, ParaSwapProvider, CowSwapProvider, LiFiProvider, buildDefaultProviders, buildQuote, } from './providers/index.js';
7
- export { CHAIN_IDS, CHAIN_NAMES } from './types.js';
8
- // [MAX-ADDED] RSI Engine
9
- export { SwapRSIEngine } from './rsi/index.js';
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/swap/router/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpD,yBAAyB;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { ISwapProvider, AggregatorQuote, QuoteParams } from '../types.js';
2
- export declare class CowSwapProvider implements ISwapProvider {
3
- readonly name = "cowswap";
4
- readonly supportedChains: string[];
5
- private readonly fetcher?;
6
- constructor(options?: {
7
- fetcher?: (p: QuoteParams) => Promise<AggregatorQuote | null>;
8
- });
9
- getQuote(params: QuoteParams, timeoutMs: number): Promise<AggregatorQuote | null>;
10
- }
11
- //# sourceMappingURL=cowswap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cowswap.d.ts","sourceRoot":"","sources":["../../../../src/swap/router/providers/cowswap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe/E,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,eAAe,WAAkB;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA2D;gBAExE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;KAAO;IAIrF,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAiExF"}
@@ -1,79 +0,0 @@
1
- import { buildQuote } from './uniswap.js';
2
- const COWSWAP_CHAINS = ['ethereum', 'arbitrum', 'base', 'gnosis'];
3
- /** CowSwap network slug mapping */
4
- const COW_NETWORK = {
5
- ethereum: 'mainnet',
6
- arbitrum: 'arbitrum_one',
7
- base: 'base',
8
- gnosis: 'xdai',
9
- };
10
- const COWSWAP_API_BASE = 'https://api.cow.fi';
11
- export class CowSwapProvider {
12
- constructor(options = {}) {
13
- this.name = 'cowswap';
14
- this.supportedChains = COWSWAP_CHAINS;
15
- this.fetcher = options.fetcher;
16
- }
17
- async getQuote(params, timeoutMs) {
18
- if (!COWSWAP_CHAINS.includes(params.chain.toLowerCase()))
19
- return null;
20
- if (this.fetcher)
21
- return this.fetcher(params);
22
- const network = COW_NETWORK[params.chain.toLowerCase()];
23
- if (!network)
24
- return null;
25
- const url = `${COWSWAP_API_BASE}/${network}/api/v1/quote`;
26
- // CowSwap requires a from/seller address for accurate quotes
27
- const seller = params.fromAddress ?? '0x0000000000000000000000000000000000000000';
28
- const body = {
29
- sellToken: params.fromToken,
30
- buyToken: params.toToken,
31
- sellAmountBeforeFee: params.amount,
32
- from: seller,
33
- kind: 'sell',
34
- partiallyFillable: false,
35
- };
36
- const controller = new AbortController();
37
- const timer = setTimeout(() => controller.abort(), timeoutMs);
38
- try {
39
- const res = await fetch(url, {
40
- method: 'POST',
41
- headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
42
- body: JSON.stringify(body),
43
- signal: controller.signal,
44
- });
45
- if (!res.ok)
46
- return null;
47
- const data = (await res.json());
48
- const quote = data.quote;
49
- if (!quote)
50
- return null;
51
- const toAmount = BigInt(String(quote.buyAmount ?? '0'));
52
- // CowSwap has no gas cost for the user — protocol takes fee from sell token
53
- const feeAmount = BigInt(String(quote.feeAmount ?? '0'));
54
- // Fee in bps: feeAmount / sellAmount * 10000
55
- const sellAmt = BigInt(params.amount);
56
- const platformFeeBps = sellAmt > 0n ? Number((feeAmount * 10000n) / sellAmt) : 0;
57
- return buildQuote({
58
- provider: 'cowswap',
59
- params,
60
- toAmount,
61
- gasEstimate: 0n,
62
- gasEstimateUsd: 0,
63
- platformFee: platformFeeBps,
64
- priceImpact: 0,
65
- route: ['CoW Protocol'],
66
- estimatedTimeMs: 30000, // batch auctions ~30s
67
- mevProtected: true,
68
- metadata: data,
69
- });
70
- }
71
- catch {
72
- return null;
73
- }
74
- finally {
75
- clearTimeout(timer);
76
- }
77
- }
78
- }
79
- //# sourceMappingURL=cowswap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cowswap.js","sourceRoot":"","sources":["../../../../src/swap/router/providers/cowswap.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAElE,mCAAmC;AACnC,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,MAAM,OAAO,eAAe;IAM1B,YAAY,UAA6E,EAAE;QALlF,SAAI,GAAG,SAAS,CAAC;QACjB,oBAAe,GAAG,cAAc,CAAC;QAKxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAmB,EAAE,SAAiB;QACnD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtE,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,GAAG,GAAG,GAAG,gBAAgB,IAAI,OAAO,eAAe,CAAC;QAE1D,6DAA6D;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,4CAA4C,CAAC;QAElF,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,mBAAmB,EAAE,MAAM,CAAC,MAAM;YAClC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,iBAAiB,EAAE,KAAK;SACzB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE;gBAC7E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAA4C,CAAC;YAChE,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAExB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC;YACxD,4EAA4E;YAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC;YACzD,6CAA6C;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,cAAc,GAClB,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5D,OAAO,UAAU,CAAC;gBAChB,QAAQ,EAAE,SAAS;gBACnB,MAAM;gBACN,QAAQ;gBACR,WAAW,EAAE,EAAE;gBACf,cAAc,EAAE,CAAC;gBACjB,WAAW,EAAE,cAAc;gBAC3B,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,CAAC,cAAc,CAAC;gBACvB,eAAe,EAAE,KAAK,EAAE,sBAAsB;gBAC9C,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAA+B;aAC1C,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
@@ -1,20 +0,0 @@
1
- export { UniswapProvider, buildQuote } from './uniswap.js';
2
- export { JupiterProvider } from './jupiter.js';
3
- export { OneInchProvider } from './oneinch.js';
4
- export { ZeroXProvider } from './zerox.js';
5
- export { ParaSwapProvider } from './paraswap.js';
6
- export { CowSwapProvider } from './cowswap.js';
7
- export { LiFiProvider } from './lifi.js';
8
- import type { ISwapProvider } from '../types.js';
9
- export interface ProviderRegistryOptions {
10
- oneInchApiKey?: string;
11
- zeroxApiKey?: string;
12
- /** Inject custom provider fetchers (for testing) */
13
- fetchers?: Record<string, (params: import('../types.js').QuoteParams) => Promise<import('../types.js').AggregatorQuote | null>>;
14
- }
15
- /**
16
- * Build the default provider list.
17
- * Providers requiring API keys are included but will return null gracefully if no key given.
18
- */
19
- export declare function buildDefaultProviders(options?: ProviderRegistryOptions): ISwapProvider[];
20
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/swap/router/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;CACjI;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,uBAA4B,GAAG,aAAa,EAAE,CAW5F"}
@@ -1,32 +0,0 @@
1
- // [MAX-ADDED] Provider registry for SmartSwapRouter
2
- export { UniswapProvider, buildQuote } from './uniswap.js';
3
- export { JupiterProvider } from './jupiter.js';
4
- export { OneInchProvider } from './oneinch.js';
5
- export { ZeroXProvider } from './zerox.js';
6
- export { ParaSwapProvider } from './paraswap.js';
7
- export { CowSwapProvider } from './cowswap.js';
8
- export { LiFiProvider } from './lifi.js';
9
- import { UniswapProvider } from './uniswap.js';
10
- import { JupiterProvider } from './jupiter.js';
11
- import { OneInchProvider } from './oneinch.js';
12
- import { ZeroXProvider } from './zerox.js';
13
- import { ParaSwapProvider } from './paraswap.js';
14
- import { CowSwapProvider } from './cowswap.js';
15
- import { LiFiProvider } from './lifi.js';
16
- /**
17
- * Build the default provider list.
18
- * Providers requiring API keys are included but will return null gracefully if no key given.
19
- */
20
- export function buildDefaultProviders(options = {}) {
21
- const f = options.fetchers ?? {};
22
- return [
23
- new UniswapProvider(f.uniswap ? { fetcher: f.uniswap } : {}),
24
- new JupiterProvider(f.jupiter ? { fetcher: f.jupiter } : {}),
25
- new OneInchProvider({ apiKey: options.oneInchApiKey, ...(f['1inch'] ? { fetcher: f['1inch'] } : {}) }),
26
- new ZeroXProvider({ apiKey: options.zeroxApiKey, ...(f['0x'] ? { fetcher: f['0x'] } : {}) }),
27
- new ParaSwapProvider(f.paraswap ? { fetcher: f.paraswap } : {}),
28
- new CowSwapProvider(f.cowswap ? { fetcher: f.cowswap } : {}),
29
- new LiFiProvider(f.lifi ? { fetcher: f.lifi } : {}),
30
- ];
31
- }
32
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/swap/router/providers/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AASzC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAmC,EAAE;IACzE,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACjC,OAAO;QACL,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACtG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5F,IAAI,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { ISwapProvider, AggregatorQuote, QuoteParams } from '../types.js';
2
- export declare class JupiterProvider implements ISwapProvider {
3
- readonly name = "jupiter";
4
- readonly supportedChains: string[];
5
- /** Optional fetch override for testing */
6
- private readonly fetcher?;
7
- constructor(options?: {
8
- fetcher?: (p: QuoteParams) => Promise<AggregatorQuote | null>;
9
- });
10
- getQuote(params: QuoteParams, timeoutMs: number): Promise<AggregatorQuote | null>;
11
- }
12
- //# sourceMappingURL=jupiter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jupiter.d.ts","sourceRoot":"","sources":["../../../../src/swap/router/providers/jupiter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAqB/E,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,eAAe,WAAc;IAEtC,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA2D;gBAExE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;KAAO;IAIrF,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAqDxF"}
@@ -1,73 +0,0 @@
1
- import { buildQuote } from './uniswap.js';
2
- const JUPITER_API_BASE = 'https://quote-api.jup.ag/v6';
3
- /** Well-known Solana mint addresses */
4
- const SOLANA_MINTS = {
5
- SOL: 'So11111111111111111111111111111111111111112',
6
- USDC: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
7
- USDT: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
8
- BONK: 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263',
9
- JUP: 'JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN',
10
- RAY: '4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R',
11
- WIF: 'EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm',
12
- };
13
- function resolveSolanaMint(token) {
14
- if (token.length >= 32 && token.length <= 44)
15
- return token; // already a mint
16
- return SOLANA_MINTS[token.toUpperCase()] ?? token;
17
- }
18
- export class JupiterProvider {
19
- constructor(options = {}) {
20
- this.name = 'jupiter';
21
- this.supportedChains = ['solana'];
22
- this.fetcher = options.fetcher;
23
- }
24
- async getQuote(params, timeoutMs) {
25
- if (params.chain.toLowerCase() !== 'solana')
26
- return null;
27
- if (this.fetcher) {
28
- return this.fetcher(params);
29
- }
30
- const inputMint = resolveSolanaMint(params.fromToken);
31
- const outputMint = resolveSolanaMint(params.toToken);
32
- const slippageBps = params.slippageBps ?? 50;
33
- const url = new URL(`${JUPITER_API_BASE}/quote`);
34
- url.searchParams.set('inputMint', inputMint);
35
- url.searchParams.set('outputMint', outputMint);
36
- url.searchParams.set('amount', params.amount);
37
- url.searchParams.set('slippageBps', String(slippageBps));
38
- const controller = new AbortController();
39
- const timer = setTimeout(() => controller.abort(), timeoutMs);
40
- try {
41
- const res = await fetch(url.toString(), { signal: controller.signal });
42
- if (!res.ok)
43
- return null;
44
- const data = (await res.json());
45
- const toAmount = BigInt(String(data.outAmount ?? '0'));
46
- // Jupiter quotes are gasless for the user (fees come from price impact)
47
- const priceImpact = Number(data.priceImpactPct ?? '0');
48
- // Parse route
49
- const routePlan = data.routePlan;
50
- const route = routePlan?.map((r) => r.swapInfo?.label ?? 'Unknown').filter(Boolean) ?? ['Jupiter'];
51
- return buildQuote({
52
- provider: 'jupiter',
53
- params,
54
- toAmount,
55
- gasEstimate: 0n,
56
- gasEstimateUsd: 0,
57
- platformFee: 0,
58
- priceImpact,
59
- route,
60
- estimatedTimeMs: 400,
61
- mevProtected: false,
62
- metadata: data,
63
- });
64
- }
65
- catch {
66
- return null;
67
- }
68
- finally {
69
- clearTimeout(timer);
70
- }
71
- }
72
- }
73
- //# sourceMappingURL=jupiter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jupiter.js","sourceRoot":"","sources":["../../../../src/swap/router/providers/jupiter.ts"],"names":[],"mappings":"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"}