agentwallet-sdk 3.3.0 → 3.4.1

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 (320) hide show
  1. package/README.md +41 -516
  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 -136
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +11 -59
  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 +1 -4
  57. package/dist/x402/client.d.ts.map +1 -1
  58. package/dist/x402/client.js +2 -16
  59. package/dist/x402/client.js.map +1 -1
  60. package/dist/x402/index.d.ts +3 -1
  61. package/dist/x402/index.d.ts.map +1 -1
  62. package/dist/x402/index.js +3 -1
  63. package/dist/x402/index.js.map +1 -1
  64. package/dist/x402/types.d.ts +3 -5
  65. package/dist/x402/types.d.ts.map +1 -1
  66. package/dist/x402/types.js +2 -17
  67. package/dist/x402/types.js.map +1 -1
  68. package/package.json +12 -32
  69. package/dist/ap2/index.d.ts +0 -185
  70. package/dist/ap2/index.d.ts.map +0 -1
  71. package/dist/ap2/index.js +0 -255
  72. package/dist/ap2/index.js.map +0 -1
  73. package/dist/bridge/unified.d.ts +0 -101
  74. package/dist/bridge/unified.d.ts.map +0 -1
  75. package/dist/bridge/unified.js +0 -284
  76. package/dist/bridge/unified.js.map +0 -1
  77. package/dist/chains.d.ts +0 -62
  78. package/dist/chains.d.ts.map +0 -1
  79. package/dist/chains.js +0 -108
  80. package/dist/chains.js.map +0 -1
  81. package/dist/fiat/index.d.ts +0 -10
  82. package/dist/fiat/index.d.ts.map +0 -1
  83. package/dist/fiat/index.js +0 -9
  84. package/dist/fiat/index.js.map +0 -1
  85. package/dist/fiat/onramp.d.ts +0 -101
  86. package/dist/fiat/onramp.d.ts.map +0 -1
  87. package/dist/fiat/onramp.js +0 -155
  88. package/dist/fiat/onramp.js.map +0 -1
  89. package/dist/fiat/providers/index.d.ts +0 -16
  90. package/dist/fiat/providers/index.d.ts.map +0 -1
  91. package/dist/fiat/providers/index.js +0 -30
  92. package/dist/fiat/providers/index.js.map +0 -1
  93. package/dist/fiat/providers/moonpay.d.ts +0 -22
  94. package/dist/fiat/providers/moonpay.d.ts.map +0 -1
  95. package/dist/fiat/providers/moonpay.js +0 -107
  96. package/dist/fiat/providers/moonpay.js.map +0 -1
  97. package/dist/fiat/providers/stripe.d.ts +0 -26
  98. package/dist/fiat/providers/stripe.d.ts.map +0 -1
  99. package/dist/fiat/providers/stripe.js +0 -135
  100. package/dist/fiat/providers/stripe.js.map +0 -1
  101. package/dist/fiat/providers/transak.d.ts +0 -26
  102. package/dist/fiat/providers/transak.d.ts.map +0 -1
  103. package/dist/fiat/providers/transak.js +0 -119
  104. package/dist/fiat/providers/transak.js.map +0 -1
  105. package/dist/fiat/types.d.ts +0 -106
  106. package/dist/fiat/types.d.ts.map +0 -1
  107. package/dist/fiat/types.js +0 -13
  108. package/dist/fiat/types.js.map +0 -1
  109. package/dist/flash/executor.d.ts +0 -119
  110. package/dist/flash/executor.d.ts.map +0 -1
  111. package/dist/flash/executor.js +0 -195
  112. package/dist/flash/executor.js.map +0 -1
  113. package/dist/flash/index.d.ts +0 -28
  114. package/dist/flash/index.d.ts.map +0 -1
  115. package/dist/flash/index.js +0 -25
  116. package/dist/flash/index.js.map +0 -1
  117. package/dist/flash/scanner.d.ts +0 -133
  118. package/dist/flash/scanner.d.ts.map +0 -1
  119. package/dist/flash/scanner.js +0 -212
  120. package/dist/flash/scanner.js.map +0 -1
  121. package/dist/flash/types.d.ts +0 -136
  122. package/dist/flash/types.d.ts.map +0 -1
  123. package/dist/flash/types.js +0 -23
  124. package/dist/flash/types.js.map +0 -1
  125. package/dist/gas/index.d.ts +0 -4
  126. package/dist/gas/index.d.ts.map +0 -1
  127. package/dist/gas/index.js +0 -3
  128. package/dist/gas/index.js.map +0 -1
  129. package/dist/gas/sponsor.d.ts +0 -70
  130. package/dist/gas/sponsor.d.ts.map +0 -1
  131. package/dist/gas/sponsor.js +0 -193
  132. package/dist/gas/sponsor.js.map +0 -1
  133. package/dist/gas/types.d.ts +0 -76
  134. package/dist/gas/types.d.ts.map +0 -1
  135. package/dist/gas/types.js +0 -21
  136. package/dist/gas/types.js.map +0 -1
  137. package/dist/identity/agent-identity.d.ts +0 -276
  138. package/dist/identity/agent-identity.d.ts.map +0 -1
  139. package/dist/identity/agent-identity.js +0 -300
  140. package/dist/identity/agent-identity.js.map +0 -1
  141. package/dist/identity/erc6551.d.ts +0 -441
  142. package/dist/identity/erc6551.d.ts.map +0 -1
  143. package/dist/identity/erc6551.js +0 -517
  144. package/dist/identity/erc6551.js.map +0 -1
  145. package/dist/mev/index.d.ts +0 -4
  146. package/dist/mev/index.d.ts.map +0 -1
  147. package/dist/mev/index.js +0 -4
  148. package/dist/mev/index.js.map +0 -1
  149. package/dist/mev/protection.d.ts +0 -54
  150. package/dist/mev/protection.d.ts.map +0 -1
  151. package/dist/mev/protection.js +0 -185
  152. package/dist/mev/protection.js.map +0 -1
  153. package/dist/mev/risk.d.ts +0 -19
  154. package/dist/mev/risk.d.ts.map +0 -1
  155. package/dist/mev/risk.js +0 -95
  156. package/dist/mev/risk.js.map +0 -1
  157. package/dist/mev/types.d.ts +0 -49
  158. package/dist/mev/types.d.ts.map +0 -1
  159. package/dist/mev/types.js +0 -2
  160. package/dist/mev/types.js.map +0 -1
  161. package/dist/settlement/index.d.ts +0 -4
  162. package/dist/settlement/index.d.ts.map +0 -1
  163. package/dist/settlement/index.js +0 -3
  164. package/dist/settlement/index.js.map +0 -1
  165. package/dist/settlement/types.d.ts +0 -66
  166. package/dist/settlement/types.d.ts.map +0 -1
  167. package/dist/settlement/types.js +0 -37
  168. package/dist/settlement/types.js.map +0 -1
  169. package/dist/settlement/verifier.d.ts +0 -75
  170. package/dist/settlement/verifier.d.ts.map +0 -1
  171. package/dist/settlement/verifier.js +0 -354
  172. package/dist/settlement/verifier.js.map +0 -1
  173. package/dist/solana/bridge.d.ts +0 -144
  174. package/dist/solana/bridge.d.ts.map +0 -1
  175. package/dist/solana/bridge.js +0 -352
  176. package/dist/solana/bridge.js.map +0 -1
  177. package/dist/solana/index.d.ts +0 -8
  178. package/dist/solana/index.d.ts.map +0 -1
  179. package/dist/solana/index.js +0 -6
  180. package/dist/solana/index.js.map +0 -1
  181. package/dist/solana/swap.d.ts +0 -85
  182. package/dist/solana/swap.d.ts.map +0 -1
  183. package/dist/solana/swap.js +0 -173
  184. package/dist/solana/swap.js.map +0 -1
  185. package/dist/solana/types.d.ts +0 -126
  186. package/dist/solana/types.d.ts.map +0 -1
  187. package/dist/solana/types.js +0 -10
  188. package/dist/solana/types.js.map +0 -1
  189. package/dist/solana/wallet.d.ts +0 -83
  190. package/dist/solana/wallet.d.ts.map +0 -1
  191. package/dist/solana/wallet.js +0 -164
  192. package/dist/solana/wallet.js.map +0 -1
  193. package/dist/solana/x402.d.ts +0 -69
  194. package/dist/solana/x402.d.ts.map +0 -1
  195. package/dist/solana/x402.js +0 -154
  196. package/dist/solana/x402.js.map +0 -1
  197. package/dist/solver/adapter.d.ts +0 -47
  198. package/dist/solver/adapter.d.ts.map +0 -1
  199. package/dist/solver/adapter.js +0 -138
  200. package/dist/solver/adapter.js.map +0 -1
  201. package/dist/solver/analyzer.d.ts +0 -48
  202. package/dist/solver/analyzer.d.ts.map +0 -1
  203. package/dist/solver/analyzer.js +0 -89
  204. package/dist/solver/analyzer.js.map +0 -1
  205. package/dist/solver/builder.d.ts +0 -31
  206. package/dist/solver/builder.d.ts.map +0 -1
  207. package/dist/solver/builder.js +0 -60
  208. package/dist/solver/builder.js.map +0 -1
  209. package/dist/solver/index.d.ts +0 -22
  210. package/dist/solver/index.d.ts.map +0 -1
  211. package/dist/solver/index.js +0 -21
  212. package/dist/solver/index.js.map +0 -1
  213. package/dist/solver/types.d.ts +0 -115
  214. package/dist/solver/types.d.ts.map +0 -1
  215. package/dist/solver/types.js +0 -10
  216. package/dist/solver/types.js.map +0 -1
  217. package/dist/spend-guard/index.d.ts +0 -125
  218. package/dist/spend-guard/index.d.ts.map +0 -1
  219. package/dist/spend-guard/index.js +0 -150
  220. package/dist/spend-guard/index.js.map +0 -1
  221. package/dist/swap/router/cache.d.ts +0 -13
  222. package/dist/swap/router/cache.d.ts.map +0 -1
  223. package/dist/swap/router/cache.js +0 -30
  224. package/dist/swap/router/cache.js.map +0 -1
  225. package/dist/swap/router/flashbots.d.ts +0 -10
  226. package/dist/swap/router/flashbots.d.ts.map +0 -1
  227. package/dist/swap/router/flashbots.js +0 -43
  228. package/dist/swap/router/flashbots.js.map +0 -1
  229. package/dist/swap/router/health.d.ts +0 -17
  230. package/dist/swap/router/health.d.ts.map +0 -1
  231. package/dist/swap/router/health.js +0 -38
  232. package/dist/swap/router/health.js.map +0 -1
  233. package/dist/swap/router/index.d.ts +0 -10
  234. package/dist/swap/router/index.d.ts.map +0 -1
  235. package/dist/swap/router/index.js +0 -10
  236. package/dist/swap/router/index.js.map +0 -1
  237. package/dist/swap/router/providers/cowswap.d.ts +0 -11
  238. package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
  239. package/dist/swap/router/providers/cowswap.js +0 -79
  240. package/dist/swap/router/providers/cowswap.js.map +0 -1
  241. package/dist/swap/router/providers/index.d.ts +0 -20
  242. package/dist/swap/router/providers/index.d.ts.map +0 -1
  243. package/dist/swap/router/providers/index.js +0 -32
  244. package/dist/swap/router/providers/index.js.map +0 -1
  245. package/dist/swap/router/providers/jupiter.d.ts +0 -12
  246. package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
  247. package/dist/swap/router/providers/jupiter.js +0 -73
  248. package/dist/swap/router/providers/jupiter.js.map +0 -1
  249. package/dist/swap/router/providers/lifi.d.ts +0 -11
  250. package/dist/swap/router/providers/lifi.d.ts.map +0 -1
  251. package/dist/swap/router/providers/lifi.js +0 -123
  252. package/dist/swap/router/providers/lifi.js.map +0 -1
  253. package/dist/swap/router/providers/oneinch.d.ts +0 -13
  254. package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
  255. package/dist/swap/router/providers/oneinch.js +0 -71
  256. package/dist/swap/router/providers/oneinch.js.map +0 -1
  257. package/dist/swap/router/providers/paraswap.d.ts +0 -11
  258. package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
  259. package/dist/swap/router/providers/paraswap.js +0 -73
  260. package/dist/swap/router/providers/paraswap.js.map +0 -1
  261. package/dist/swap/router/providers/uniswap.d.ts +0 -31
  262. package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
  263. package/dist/swap/router/providers/uniswap.js +0 -116
  264. package/dist/swap/router/providers/uniswap.js.map +0 -1
  265. package/dist/swap/router/providers/zerox.d.ts +0 -13
  266. package/dist/swap/router/providers/zerox.d.ts.map +0 -1
  267. package/dist/swap/router/providers/zerox.js +0 -94
  268. package/dist/swap/router/providers/zerox.js.map +0 -1
  269. package/dist/swap/router/router.d.ts +0 -86
  270. package/dist/swap/router/router.d.ts.map +0 -1
  271. package/dist/swap/router/router.js +0 -224
  272. package/dist/swap/router/router.js.map +0 -1
  273. package/dist/swap/router/rsi/engine.d.ts +0 -60
  274. package/dist/swap/router/rsi/engine.d.ts.map +0 -1
  275. package/dist/swap/router/rsi/engine.js +0 -483
  276. package/dist/swap/router/rsi/engine.js.map +0 -1
  277. package/dist/swap/router/rsi/index.d.ts +0 -3
  278. package/dist/swap/router/rsi/index.d.ts.map +0 -1
  279. package/dist/swap/router/rsi/index.js +0 -3
  280. package/dist/swap/router/rsi/index.js.map +0 -1
  281. package/dist/swap/router/rsi/types.d.ts +0 -106
  282. package/dist/swap/router/rsi/types.d.ts.map +0 -1
  283. package/dist/swap/router/rsi/types.js +0 -3
  284. package/dist/swap/router/rsi/types.js.map +0 -1
  285. package/dist/swap/router/types.d.ts +0 -120
  286. package/dist/swap/router/types.d.ts.map +0 -1
  287. package/dist/swap/router/types.js +0 -16
  288. package/dist/swap/router/types.js.map +0 -1
  289. package/dist/tax/engine.d.ts +0 -131
  290. package/dist/tax/engine.d.ts.map +0 -1
  291. package/dist/tax/engine.js +0 -307
  292. package/dist/tax/engine.js.map +0 -1
  293. package/dist/tax/index.d.ts +0 -9
  294. package/dist/tax/index.d.ts.map +0 -1
  295. package/dist/tax/index.js +0 -8
  296. package/dist/tax/index.js.map +0 -1
  297. package/dist/tax/lots.d.ts +0 -60
  298. package/dist/tax/lots.d.ts.map +0 -1
  299. package/dist/tax/lots.js +0 -129
  300. package/dist/tax/lots.js.map +0 -1
  301. package/dist/tax/types.d.ts +0 -113
  302. package/dist/tax/types.d.ts.map +0 -1
  303. package/dist/tax/types.js +0 -18
  304. package/dist/tax/types.js.map +0 -1
  305. package/dist/yield/index.d.ts +0 -26
  306. package/dist/yield/index.d.ts.map +0 -1
  307. package/dist/yield/index.js +0 -25
  308. package/dist/yield/index.js.map +0 -1
  309. package/dist/yield/rates.d.ts +0 -114
  310. package/dist/yield/rates.d.ts.map +0 -1
  311. package/dist/yield/rates.js +0 -351
  312. package/dist/yield/rates.js.map +0 -1
  313. package/dist/yield/types.d.ts +0 -134
  314. package/dist/yield/types.d.ts.map +0 -1
  315. package/dist/yield/types.js +0 -24
  316. package/dist/yield/types.js.map +0 -1
  317. package/dist/yield/vault.d.ts +0 -112
  318. package/dist/yield/vault.d.ts.map +0 -1
  319. package/dist/yield/vault.js +0 -264
  320. 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,125 +0,0 @@
1
- /**
2
- * SpendGuard — per-session and per-merchant spend caps for agentwallet-sdk.
3
- *
4
- * Closes the PolicyLayer feature gap: gives AI agents deterministic,
5
- * non-custodial spending controls without on-chain round-trips.
6
- *
7
- * @module spend-guard
8
- */
9
- /** Reason a cap was exceeded. */
10
- export type SpendCapReason = 'session_cap' | 'merchant_cap' | 'daily_cap';
11
- /**
12
- * Configuration for SpendGuard.
13
- * All amounts are in USDC (floating point, e.g. 5.00 = $5.00 USDC).
14
- * Any omitted cap is treated as unlimited.
15
- */
16
- export interface SpendGuardConfig {
17
- /** Maximum cumulative spend per session ID. Resets on resetSession(). */
18
- sessionCapUSDC?: number;
19
- /**
20
- * Per-merchant caps keyed by merchant address (checksummed or lowercase).
21
- * Example: { "0xAbC...": 10.00 }
22
- */
23
- merchantCapUSDC?: Record<string, number>;
24
- /** Rolling 24-hour cumulative cap across all sessions and merchants. */
25
- dailyCapUSDC?: number;
26
- /** Called when a cap would be exceeded (before SpendCapError is thrown). */
27
- onCapExceeded?: (reason: SpendCapReason) => void;
28
- }
29
- /** Per-session ledger entry. */
30
- export interface SessionState {
31
- sessionId: string;
32
- spentUSDC: number;
33
- }
34
- /** Per-merchant ledger entry. */
35
- export interface MerchantState {
36
- merchantAddress: string;
37
- spentUSDC: number;
38
- }
39
- /** Snapshot of current spend state. */
40
- export interface SpendState {
41
- /** Per-session spend. If sessionId provided, only that session. */
42
- sessions: SessionState[];
43
- /** Per-merchant spend. */
44
- merchants: MerchantState[];
45
- /** Total spend in the rolling 24hr window. */
46
- dailySpentUSDC: number;
47
- /** Configured caps (for introspection). */
48
- caps: {
49
- sessionCapUSDC?: number;
50
- merchantCapUSDC?: Record<string, number>;
51
- dailyCapUSDC?: number;
52
- };
53
- }
54
- /**
55
- * Thrown when a payment would exceed a configured cap.
56
- */
57
- export declare class SpendCapError extends Error {
58
- /** Which cap was exceeded. */
59
- readonly reason: SpendCapReason;
60
- /** The configured cap value in USDC. */
61
- readonly capUSDC: number;
62
- /** How much has already been spent in this window. */
63
- readonly spentUSDC: number;
64
- /** How much the blocked payment would have added. */
65
- readonly attemptedUSDC: number;
66
- constructor(reason: SpendCapReason, capUSDC: number, spentUSDC: number, attemptedUSDC: number);
67
- }
68
- /**
69
- * SpendGuard enforces per-session, per-merchant, and rolling daily spend caps.
70
- *
71
- * Usage:
72
- * ```ts
73
- * const guard = new SpendGuard({ sessionCapUSDC: 10, dailyCapUSDC: 50 });
74
- * guard.checkPayment(2.50, '0xMerchant', 'session-abc');
75
- * guard.recordPayment(2.50, '0xMerchant', 'session-abc');
76
- * ```
77
- *
78
- * All amounts are floating-point USDC (e.g. 5.00 = $5.00).
79
- */
80
- export declare class SpendGuard {
81
- private readonly config;
82
- /** sessionId → cumulative USDC spent */
83
- private readonly sessionLedger;
84
- /** normalised merchant address → cumulative USDC spent */
85
- private readonly merchantLedger;
86
- /** Rolling 24-hr payment records */
87
- private dailyRecords;
88
- constructor(config: SpendGuardConfig);
89
- private normaliseMerchant;
90
- /** Prune records older than 24 hrs and return current daily spend. */
91
- private getDailySpent;
92
- /**
93
- * Check whether a payment is allowed under all configured caps.
94
- * Throws {@link SpendCapError} if any cap would be exceeded.
95
- * Call this BEFORE signing/sending any payment.
96
- *
97
- * @param amount - Amount in USDC (e.g. 2.50)
98
- * @param merchantAddress - Merchant wallet address
99
- * @param sessionId - Caller-defined session identifier
100
- */
101
- checkPayment(amount: number, merchantAddress: string, sessionId: string): void;
102
- /**
103
- * Record a completed payment. Call this AFTER a payment is confirmed on-chain.
104
- *
105
- * @param amount - Amount in USDC
106
- * @param merchantAddress - Merchant wallet address
107
- * @param sessionId - Session identifier
108
- */
109
- recordPayment(amount: number, merchantAddress: string, sessionId: string): void;
110
- /**
111
- * Get current spend state across all sessions, merchants, and the daily window.
112
- * If `sessionId` is provided, the `sessions` array contains only that session.
113
- *
114
- * @param sessionId - Optional filter
115
- */
116
- getSpendState(sessionId?: string): SpendState;
117
- /**
118
- * Reset the session spend for `sessionId`.
119
- * The daily and merchant ledgers are unaffected.
120
- *
121
- * @param sessionId - Session to reset
122
- */
123
- resetSession(sessionId: string): void;
124
- }
125
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spend-guard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAClD;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,0BAA0B;IAC1B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,IAAI,EAAE;QACJ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAID;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAG7B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM;CAWxB;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAE1C,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAE3D,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAE5D,oCAAoC;IACpC,OAAO,CAAC,YAAY,CAA4B;gBAEpC,MAAM,EAAE,gBAAgB;IAMpC,OAAO,CAAC,iBAAiB;IAIzB,sEAAsE;IACtE,OAAO,CAAC,aAAa;IAQrB;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAqC9E;;;;;;OAMG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAa/E;;;;;OAKG;IACH,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU;IAwB7C;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGtC"}
@@ -1,150 +0,0 @@
1
- /**
2
- * SpendGuard — per-session and per-merchant spend caps for agentwallet-sdk.
3
- *
4
- * Closes the PolicyLayer feature gap: gives AI agents deterministic,
5
- * non-custodial spending controls without on-chain round-trips.
6
- *
7
- * @module spend-guard
8
- */
9
- // ─── Errors ──────────────────────────────────────────────────────────────────
10
- /**
11
- * Thrown when a payment would exceed a configured cap.
12
- */
13
- export class SpendCapError extends Error {
14
- constructor(reason, capUSDC, spentUSDC, attemptedUSDC) {
15
- super(`SpendGuard: ${reason} exceeded — cap ${capUSDC} USDC, spent ${spentUSDC} USDC, attempted ${attemptedUSDC} USDC`);
16
- this.name = 'SpendCapError';
17
- this.reason = reason;
18
- this.capUSDC = capUSDC;
19
- this.spentUSDC = spentUSDC;
20
- this.attemptedUSDC = attemptedUSDC;
21
- }
22
- }
23
- // ─── SpendGuard ──────────────────────────────────────────────────────────────
24
- const TWENTY_FOUR_HOURS_MS = 24 * 60 * 60 * 1000;
25
- /**
26
- * SpendGuard enforces per-session, per-merchant, and rolling daily spend caps.
27
- *
28
- * Usage:
29
- * ```ts
30
- * const guard = new SpendGuard({ sessionCapUSDC: 10, dailyCapUSDC: 50 });
31
- * guard.checkPayment(2.50, '0xMerchant', 'session-abc');
32
- * guard.recordPayment(2.50, '0xMerchant', 'session-abc');
33
- * ```
34
- *
35
- * All amounts are floating-point USDC (e.g. 5.00 = $5.00).
36
- */
37
- export class SpendGuard {
38
- constructor(config) {
39
- /** sessionId → cumulative USDC spent */
40
- this.sessionLedger = new Map();
41
- /** normalised merchant address → cumulative USDC spent */
42
- this.merchantLedger = new Map();
43
- /** Rolling 24-hr payment records */
44
- this.dailyRecords = [];
45
- this.config = { ...config };
46
- }
47
- // ─── Private helpers ───────────────────────────────────────────────────────
48
- normaliseMerchant(addr) {
49
- return addr.toLowerCase();
50
- }
51
- /** Prune records older than 24 hrs and return current daily spend. */
52
- getDailySpent(now = Date.now()) {
53
- const cutoff = now - TWENTY_FOUR_HOURS_MS;
54
- this.dailyRecords = this.dailyRecords.filter(r => r.timestamp > cutoff);
55
- return this.dailyRecords.reduce((sum, r) => sum + r.amount, 0);
56
- }
57
- // ─── Public API ────────────────────────────────────────────────────────────
58
- /**
59
- * Check whether a payment is allowed under all configured caps.
60
- * Throws {@link SpendCapError} if any cap would be exceeded.
61
- * Call this BEFORE signing/sending any payment.
62
- *
63
- * @param amount - Amount in USDC (e.g. 2.50)
64
- * @param merchantAddress - Merchant wallet address
65
- * @param sessionId - Caller-defined session identifier
66
- */
67
- checkPayment(amount, merchantAddress, sessionId) {
68
- const merchant = this.normaliseMerchant(merchantAddress);
69
- // 1. Session cap
70
- if (this.config.sessionCapUSDC !== undefined) {
71
- const sessionSpent = this.sessionLedger.get(sessionId) ?? 0;
72
- if (sessionSpent + amount > this.config.sessionCapUSDC) {
73
- this.config.onCapExceeded?.('session_cap');
74
- throw new SpendCapError('session_cap', this.config.sessionCapUSDC, sessionSpent, amount);
75
- }
76
- }
77
- // 2. Merchant cap
78
- if (this.config.merchantCapUSDC) {
79
- // Check normalised address first, then original casing
80
- const cap = this.config.merchantCapUSDC[merchant] ??
81
- this.config.merchantCapUSDC[merchantAddress];
82
- if (cap !== undefined) {
83
- const merchantSpent = this.merchantLedger.get(merchant) ?? 0;
84
- if (merchantSpent + amount > cap) {
85
- this.config.onCapExceeded?.('merchant_cap');
86
- throw new SpendCapError('merchant_cap', cap, merchantSpent, amount);
87
- }
88
- }
89
- }
90
- // 3. Daily cap (rolling 24 hr)
91
- if (this.config.dailyCapUSDC !== undefined) {
92
- const dailySpent = this.getDailySpent();
93
- if (dailySpent + amount > this.config.dailyCapUSDC) {
94
- this.config.onCapExceeded?.('daily_cap');
95
- throw new SpendCapError('daily_cap', this.config.dailyCapUSDC, dailySpent, amount);
96
- }
97
- }
98
- }
99
- /**
100
- * Record a completed payment. Call this AFTER a payment is confirmed on-chain.
101
- *
102
- * @param amount - Amount in USDC
103
- * @param merchantAddress - Merchant wallet address
104
- * @param sessionId - Session identifier
105
- */
106
- recordPayment(amount, merchantAddress, sessionId) {
107
- const merchant = this.normaliseMerchant(merchantAddress);
108
- // Session ledger
109
- this.sessionLedger.set(sessionId, (this.sessionLedger.get(sessionId) ?? 0) + amount);
110
- // Merchant ledger
111
- this.merchantLedger.set(merchant, (this.merchantLedger.get(merchant) ?? 0) + amount);
112
- // Daily records
113
- this.dailyRecords.push({ amount, timestamp: Date.now() });
114
- }
115
- /**
116
- * Get current spend state across all sessions, merchants, and the daily window.
117
- * If `sessionId` is provided, the `sessions` array contains only that session.
118
- *
119
- * @param sessionId - Optional filter
120
- */
121
- getSpendState(sessionId) {
122
- const sessions = sessionId
123
- ? [{ sessionId, spentUSDC: this.sessionLedger.get(sessionId) ?? 0 }]
124
- : Array.from(this.sessionLedger.entries()).map(([sid, spent]) => ({
125
- sessionId: sid,
126
- spentUSDC: spent,
127
- }));
128
- const merchants = Array.from(this.merchantLedger.entries()).map(([addr, spent]) => ({ merchantAddress: addr, spentUSDC: spent }));
129
- return {
130
- sessions,
131
- merchants,
132
- dailySpentUSDC: this.getDailySpent(),
133
- caps: {
134
- sessionCapUSDC: this.config.sessionCapUSDC,
135
- merchantCapUSDC: this.config.merchantCapUSDC,
136
- dailyCapUSDC: this.config.dailyCapUSDC,
137
- },
138
- };
139
- }
140
- /**
141
- * Reset the session spend for `sessionId`.
142
- * The daily and merchant ledgers are unaffected.
143
- *
144
- * @param sessionId - Session to reset
145
- */
146
- resetSession(sessionId) {
147
- this.sessionLedger.delete(sessionId);
148
- }
149
- }
150
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/spend-guard/index.ts"],"names":[],"mappings":"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"}
@@ -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"}