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,21 +1,7 @@
1
- // [MAX-ADDED] SwapModule — Uniswap V3 token swap aggregator with 0.875% protocol fee
2
- // Integrates cleanly with AgentWallet (createWallet) on Base Mainnet.
3
- //
4
- // Architecture:
5
- // 1. getQuote() — try all fee tiers via QuoterV2, pick best amountOut
6
- // 2. ensureApproval() — ERC-20 approve if allowance insufficient
7
- // 3. swap() — deduct 0.875% fee, transfer to feeWallet, execute swap via Router
8
- //
9
- // Fee mechanics:
10
- // - Protocol fee = amountIn * 875 / 100_000 (0.875%)
11
- // - Fee is SUBTRACTED from amountIn before swapping (fee-on-input model)
12
- // - Remaining amountInNet = amountIn - feeAmount ← what actually gets swapped
13
- // - feeAmount transferred to feeWallet via ERC-20 transfer (inline with swap tx)
1
+ // SwapModule — Uniswap V3 token swap aggregator with 0.875% protocol fee
14
2
  import { encodeFunctionData, } from 'viem';
15
- import { UniswapV3RouterAbi, UniswapV3QuoterV2Abi, ERC20Abi, } from './abi.js';
3
+ import { UniswapV3RouterAbi, UniswapV3QuoterV2Abi, ERC20Abi } from './abi.js';
16
4
  import { PROTOCOL_FEE_BPS, DEFAULT_SLIPPAGE_BPS, UNISWAP_V3_BASE, } from './types.js';
17
- import { CHAIN_CONFIG } from '../chains.js';
18
- // ─── Internal Helpers ────────────────────────────────────────────────────────
19
5
  const FEE_TIERS = [100, 500, 3000, 10000];
20
6
  /** Calculate protocol fee: floor(amount * feeBps / 100_000) */
21
7
  export function calcProtocolFee(amount, feeBps) {
@@ -29,37 +15,22 @@ export function applySlippage(amount, slippageBps) {
29
15
  export function calcDeadline(deadlineSecs) {
30
16
  return BigInt(Math.floor(Date.now() / 1000) + deadlineSecs);
31
17
  }
32
- // ─── SwapModule ──────────────────────────────────────────────────────────────
33
18
  export class SwapModule {
34
19
  constructor(publicClient, walletClient, accountAddress, config) {
35
20
  this.publicClient = publicClient;
36
21
  this.walletClient = walletClient;
37
22
  this.accountAddress = accountAddress;
38
- // Resolve defaults from chain config if a chain is specified
39
- const chain = config?.chain ?? 'base';
40
- const chainCfg = CHAIN_CONFIG[chain];
41
23
  this.config = {
42
- routerAddress: chainCfg?.uniswapRouter ?? UNISWAP_V3_BASE.ROUTER,
43
- quoterAddress: chainCfg?.uniswapQuoter ?? UNISWAP_V3_BASE.QUOTER_V2,
24
+ routerAddress: UNISWAP_V3_BASE.ROUTER,
25
+ quoterAddress: UNISWAP_V3_BASE.QUOTER_V2,
44
26
  feeBps: PROTOCOL_FEE_BPS,
45
- feeWallet: accountAddress, // default: self (owner sets proper fee wallet in production)
46
- chain,
27
+ feeWallet: accountAddress,
47
28
  ...config,
48
29
  };
49
30
  }
50
- // ─── Quote ─────────────────────────────────────────────────────────────────
51
- /**
52
- * Fetch the best Uniswap V3 quote across all pool fee tiers.
53
- * Tries 100, 500, 3000, 10000 bps pools and returns the one with
54
- * the highest amountOut (best price for the trader).
55
- *
56
- * NOTE: Protocol fee is deducted from amountIn before quoting, so the
57
- * quote reflects the real net amount that will be swapped.
58
- */
59
31
  async getQuote(tokenIn, tokenOut, amountIn, options = {}) {
60
32
  const slippageBps = options.slippageBps ?? DEFAULT_SLIPPAGE_BPS;
61
33
  const tiersToTry = options.feeTiers ?? FEE_TIERS;
62
- // Deduct protocol fee first
63
34
  const feeAmount = calcProtocolFee(amountIn, this.config.feeBps);
64
35
  const amountInNet = amountIn - feeAmount;
65
36
  if (amountInNet <= 0n) {
@@ -72,15 +43,7 @@ export class SwapModule {
72
43
  address: this.config.quoterAddress,
73
44
  abi: UniswapV3QuoterV2Abi,
74
45
  functionName: 'quoteExactInputSingle',
75
- args: [
76
- {
77
- tokenIn,
78
- tokenOut,
79
- amount: amountInNet,
80
- fee,
81
- sqrtPriceLimitX96: 0n,
82
- },
83
- ],
46
+ args: [{ tokenIn, tokenOut, amount: amountInNet, fee, sqrtPriceLimitX96: 0n }],
84
47
  });
85
48
  const [amountOut, , , gasEstimate] = result;
86
49
  if (!bestQuote || amountOut > bestQuote.amountOut) {
@@ -88,123 +51,63 @@ export class SwapModule {
88
51
  }
89
52
  }
90
53
  catch {
91
- // Pool doesn't exist for this fee tier — skip silently
54
+ // Pool doesn't exist for this fee tier
92
55
  }
93
56
  }
94
57
  if (!bestQuote) {
95
- throw new Error(`SwapModule: No Uniswap V3 pool found for ${tokenIn} → ${tokenOut} on Base. ` +
96
- `Tried fee tiers: ${tiersToTry.join(', ')}`);
58
+ throw new Error(`SwapModule: No Uniswap V3 pool found for ${tokenIn} → ${tokenOut} on Base.`);
97
59
  }
98
60
  const amountOutMinimum = applySlippage(bestQuote.amountOut, slippageBps);
99
- const effectiveRate = amountInNet > 0n
100
- ? Number(bestQuote.amountOut) / Number(amountInNet)
101
- : 0;
61
+ const effectiveRate = amountInNet > 0n ? Number(bestQuote.amountOut) / Number(amountInNet) : 0;
102
62
  return {
103
- tokenIn,
104
- tokenOut,
105
- amountInRaw: amountIn,
106
- amountInNet,
107
- feeAmount,
108
- amountOut: bestQuote.amountOut,
109
- amountOutMinimum,
110
- poolFeeTier: bestQuote.feeTier,
111
- effectiveRate,
112
- gasEstimate: bestQuote.gasEstimate,
63
+ tokenIn, tokenOut, amountInRaw: amountIn, amountInNet, feeAmount,
64
+ amountOut: bestQuote.amountOut, amountOutMinimum,
65
+ poolFeeTier: bestQuote.feeTier, effectiveRate, gasEstimate: bestQuote.gasEstimate,
113
66
  };
114
67
  }
115
- // ─── Approval ──────────────────────────────────────────────────────────────
116
- /**
117
- * Check ERC-20 allowance and approve if needed.
118
- * Returns the approval tx hash if an approval was submitted, or undefined.
119
- */
120
68
  async ensureApproval(token, spender, amount) {
121
69
  const currentAllowance = (await this.publicClient.readContract({
122
- address: token,
123
- abi: ERC20Abi,
124
- functionName: 'allowance',
70
+ address: token, abi: ERC20Abi, functionName: 'allowance',
125
71
  args: [this.accountAddress, spender],
126
72
  }));
127
73
  if (currentAllowance >= amount)
128
74
  return undefined;
129
- // Use max uint256 to avoid repeated approvals (standard UX pattern)
130
75
  const MAX_UINT256 = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
131
76
  const account = this.walletClient.account;
132
77
  if (!account)
133
78
  throw new Error('SwapModule: walletClient has no account');
134
79
  const approveData = encodeFunctionData({
135
- abi: ERC20Abi,
136
- functionName: 'approve',
137
- args: [spender, MAX_UINT256],
80
+ abi: ERC20Abi, functionName: 'approve', args: [spender, MAX_UINT256],
138
81
  });
139
- // Execute approval through the agent account (respects spend policies)
140
- const hash = await this.walletClient.sendTransaction({
141
- account,
142
- to: token,
143
- data: approveData,
144
- chain: this.walletClient.chain ?? null,
82
+ return this.walletClient.sendTransaction({
83
+ account, to: token, data: approveData, chain: this.walletClient.chain ?? null,
145
84
  });
146
- return hash;
147
85
  }
148
- // ─── Fee Transfer ──────────────────────────────────────────────────────────
149
- /**
150
- * Transfer protocol fee to the fee wallet via ERC-20 transfer.
151
- * Called internally before the swap.
152
- */
153
86
  async transferFee(token, feeAmount, feeWallet) {
154
87
  const account = this.walletClient.account;
155
88
  if (!account)
156
89
  throw new Error('SwapModule: walletClient has no account');
157
90
  const transferData = encodeFunctionData({
158
- abi: ERC20Abi,
159
- functionName: 'transfer',
160
- args: [feeWallet, feeAmount],
91
+ abi: ERC20Abi, functionName: 'transfer', args: [feeWallet, feeAmount],
161
92
  });
162
93
  return this.walletClient.sendTransaction({
163
- account,
164
- to: token,
165
- data: transferData,
166
- chain: this.walletClient.chain ?? null,
94
+ account, to: token, data: transferData, chain: this.walletClient.chain ?? null,
167
95
  });
168
96
  }
169
- // ─── Swap ──────────────────────────────────────────────────────────────────
170
- /**
171
- * Execute a token swap via Uniswap V3 with automatic protocol fee collection.
172
- *
173
- * Flow:
174
- * 1. Get best quote across all fee tiers (post-fee amount)
175
- * 2. Ensure ERC-20 approval for tokenIn (full amountIn including fee)
176
- * 3. Transfer 0.875% protocol fee to feeWallet
177
- * 4. Execute exactInputSingle swap with amountInNet
178
- *
179
- * @param tokenIn ERC-20 address of input token
180
- * @param tokenOut ERC-20 address of output token
181
- * @param amountIn Raw input amount (protocol fee deducted from this)
182
- * @param options Optional: slippageBps, feeTiers, deadlineSecs, feeWallet override
183
- * @returns SwapResult with txHash, feeTxHash, quote, approval info
184
- */
185
97
  async swap(tokenIn, tokenOut, amountIn, options = {}) {
186
98
  const slippageBps = options.slippageBps ?? DEFAULT_SLIPPAGE_BPS;
187
99
  const deadlineSecs = options.deadlineSecs ?? 300;
188
100
  const feeWallet = options.feeWallet ?? this.config.feeWallet;
189
- // 1. Get best quote
190
- const quote = await this.getQuote(tokenIn, tokenOut, amountIn, {
191
- slippageBps,
192
- feeTiers: options.feeTiers,
193
- });
194
- // 2. Gas estimate check (informational — actual gas set by client)
195
- // We log the estimate from the quoter; a very high gas estimate is a warning sign.
101
+ const quote = await this.getQuote(tokenIn, tokenOut, amountIn, { slippageBps, feeTiers: options.feeTiers });
196
102
  if (quote.gasEstimate > 2000000n) {
197
103
  console.warn(`SwapModule: High gas estimate (${quote.gasEstimate}). Pool may be illiquid.`);
198
104
  }
199
- // 3. Ensure approval for full amountIn (fee + net amount both need allowance)
200
105
  const approvalTxHash = await this.ensureApproval(tokenIn, this.config.routerAddress, amountIn);
201
106
  const approvalRequired = approvalTxHash !== undefined;
202
- // 4. Transfer protocol fee to feeWallet (only if feeWallet != self or fee > 0)
203
107
  let feeTxHash;
204
108
  if (quote.feeAmount > 0n && feeWallet !== this.accountAddress) {
205
109
  feeTxHash = await this.transferFee(tokenIn, quote.feeAmount, feeWallet);
206
110
  }
207
- // 5. Execute swap: exactInputSingle via Uniswap V3 Router
208
111
  const account = this.walletClient.account;
209
112
  if (!account)
210
113
  throw new Error('SwapModule: walletClient has no account');
@@ -212,54 +115,23 @@ export class SwapModule {
212
115
  const swapData = encodeFunctionData({
213
116
  abi: UniswapV3RouterAbi,
214
117
  functionName: 'exactInputSingle',
215
- args: [
216
- {
217
- tokenIn,
218
- tokenOut,
219
- fee: quote.poolFeeTier,
220
- recipient: this.accountAddress, // output goes to the agent wallet
221
- amountIn: quote.amountInNet,
222
- amountOutMinimum: quote.amountOutMinimum,
223
- sqrtPriceLimitX96: 0n,
224
- },
225
- ],
118
+ args: [{
119
+ tokenIn, tokenOut, fee: quote.poolFeeTier, recipient: this.accountAddress,
120
+ amountIn: quote.amountInNet, amountOutMinimum: quote.amountOutMinimum, sqrtPriceLimitX96: 0n,
121
+ }],
226
122
  });
227
123
  const txHash = await this.walletClient.sendTransaction({
228
- account,
229
- to: this.config.routerAddress,
230
- data: swapData,
231
- chain: this.walletClient.chain ?? null,
124
+ account, to: this.config.routerAddress, data: swapData, chain: this.walletClient.chain ?? null,
232
125
  });
233
- return {
234
- txHash,
235
- feeTxHash,
236
- quote,
237
- approvalRequired,
238
- approvalTxHash,
239
- };
126
+ return { txHash, feeTxHash, quote, approvalRequired, approvalTxHash };
240
127
  }
241
- // ─── Config Accessors ──────────────────────────────────────────────────────
242
128
  getConfig() {
243
129
  return { ...this.config };
244
130
  }
245
- /**
246
- * Set the fee wallet address (only owner should call this).
247
- * In production the owner configures this to the team multisig.
248
- */
249
131
  setFeeWallet(address) {
250
132
  this.config.feeWallet = address;
251
133
  }
252
134
  }
253
- // ─── Factory / Attachment ────────────────────────────────────────────────────
254
- /**
255
- * Attach a SwapModule to an existing wallet object (from createWallet()).
256
- * Returns the wallet enriched with a `.swap()` method and full SwapModule access.
257
- *
258
- * @example
259
- * const wallet = createWallet(config);
260
- * const swapWallet = attachSwap(wallet, { feeWallet: '0xYourFeeAddress' });
261
- * const result = await swapWallet.swap(USDC, WETH, parseUnits('100', 6));
262
- */
263
135
  export function attachSwap(wallet, config) {
264
136
  const swapModule = new SwapModule(wallet.publicClient, wallet.walletClient, wallet.address, config);
265
137
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"SwapModule.js","sourceRoot":"","sources":["../../src/swap/SwapModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SwapModule.js","sourceRoot":"","sources":["../../src/swap/SwapModule.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EACL,kBAAkB,GAKnB,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAML,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,SAAS,GAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc;IAC5D,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;AAC7C,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,WAAmB;IAC/D,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC;AACzD,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,OAAO,UAAU;IAMrB,YACE,YAA0B,EAC1B,YAA0B,EAC1B,cAAuB,EACvB,MAAkC;QAElC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG;YACZ,aAAa,EAAE,eAAe,CAAC,MAAM;YACrC,aAAa,EAAE,eAAe,CAAC,SAAS;YACxC,MAAM,EAAE,gBAAgB;YACxB,SAAS,EAAE,cAAc;YACzB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAgB,EAChB,QAAiB,EACjB,QAAgB,EAChB,UAAyD,EAAE;QAE3D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;QAChE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;QACjD,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;QACzC,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,yBAAyB,SAAS,iBAAiB,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,SAAS,GAA+E,IAAI,CAAC;QACjG,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;oBAClD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;oBAClC,GAAG,EAAE,oBAAoB;oBACzB,YAAY,EAAE,uBAAuB;oBACrC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;iBAC/E,CAAC,CAAC;gBACH,MAAM,CAAC,SAAS,EAAE,AAAD,EAAG,AAAD,EAAG,WAAW,CAAC,GAAG,MAA0C,CAAC;gBAChF,IAAI,CAAC,SAAS,IAAI,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;oBAClD,SAAS,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAqB,EAAE,CAAC;gBACzE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,MAAM,QAAQ,WAAW,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/F,OAAO;YACL,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS;YAChE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,gBAAgB;YAChD,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW;SAClF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAc,EAAE,OAAgB,EAAE,MAAc;QACnE,MAAM,gBAAgB,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC7D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW;YACxD,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;SACrC,CAAC,CAAW,CAAC;QAEd,IAAI,gBAAgB,IAAI,MAAM;YAAE,OAAO,SAAS,CAAC;QAEjD,MAAM,WAAW,GAAG,+EAA+E,CAAC;QACpG,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAEzE,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;SACrE,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;YACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI;SAC9E,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAc,EAAE,SAAiB,EAAE,SAAkB;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAEzE,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;SACtE,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;YACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAAgB,EAChB,QAAiB,EACjB,QAAgB,EAChB,UAAuB,EAAE;QAEzB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;QAChE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC;QACjD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAE7D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5G,IAAI,KAAK,CAAC,WAAW,GAAG,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,WAAW,0BAA0B,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC/F,MAAM,gBAAgB,GAAG,cAAc,KAAK,SAAS,CAAC;QAEtD,IAAI,SAA2B,CAAC;QAChC,IAAI,KAAK,CAAC,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9D,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;YAClC,GAAG,EAAE,kBAAkB;YACvB,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC;oBACL,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc;oBACzE,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,EAAE;iBAC7F,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;YACrD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI;SAC/F,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACxE,CAAC;IAED,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,OAAgB;QAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;IAClC,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CACxB,MAAoF,EACpF,MAAkC;IAElC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpG,OAAO;QACL,GAAG,MAAM;QACT,UAAU;QACV,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACtC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,169 +1,51 @@
1
1
  /** Uniswap V3 SwapRouter02 ABI — exactInputSingle */
2
- export declare const UniswapV3RouterAbi: readonly [{
3
- readonly name: "exactInputSingle";
4
- readonly type: "function";
5
- readonly stateMutability: "payable";
6
- readonly inputs: readonly [{
7
- readonly name: "params";
8
- readonly type: "tuple";
9
- readonly components: readonly [{
10
- readonly name: "tokenIn";
11
- readonly type: "address";
12
- }, {
13
- readonly name: "tokenOut";
14
- readonly type: "address";
15
- }, {
16
- readonly name: "fee";
17
- readonly type: "uint24";
18
- }, {
19
- readonly name: "recipient";
20
- readonly type: "address";
21
- }, {
22
- readonly name: "amountIn";
23
- readonly type: "uint256";
24
- }, {
25
- readonly name: "amountOutMinimum";
26
- readonly type: "uint256";
27
- }, {
28
- readonly name: "sqrtPriceLimitX96";
29
- readonly type: "uint160";
30
- }];
31
- }];
32
- readonly outputs: readonly [{
33
- readonly name: "amountOut";
34
- readonly type: "uint256";
35
- }];
36
- }, {
37
- readonly name: "exactInput";
38
- readonly type: "function";
39
- readonly stateMutability: "payable";
40
- readonly inputs: readonly [{
41
- readonly name: "params";
42
- readonly type: "tuple";
43
- readonly components: readonly [{
44
- readonly name: "path";
45
- readonly type: "bytes";
46
- }, {
47
- readonly name: "recipient";
48
- readonly type: "address";
49
- }, {
50
- readonly name: "amountIn";
51
- readonly type: "uint256";
52
- }, {
53
- readonly name: "amountOutMinimum";
54
- readonly type: "uint256";
55
- }];
56
- }];
57
- readonly outputs: readonly [{
58
- readonly name: "amountOut";
59
- readonly type: "uint256";
60
- }];
61
- }];
2
+ export declare const UniswapV3RouterAbi: {
3
+ name: string;
4
+ type: string;
5
+ stateMutability: string;
6
+ inputs: {
7
+ name: string;
8
+ type: string;
9
+ components: {
10
+ name: string;
11
+ type: string;
12
+ }[];
13
+ }[];
14
+ outputs: {
15
+ name: string;
16
+ type: string;
17
+ }[];
18
+ }[];
62
19
  /** Uniswap V3 QuoterV2 ABI — quoteExactInputSingle */
63
- export declare const UniswapV3QuoterV2Abi: readonly [{
64
- readonly name: "quoteExactInputSingle";
65
- readonly type: "function";
66
- readonly stateMutability: "nonpayable";
67
- readonly inputs: readonly [{
68
- readonly name: "params";
69
- readonly type: "tuple";
70
- readonly components: readonly [{
71
- readonly name: "tokenIn";
72
- readonly type: "address";
73
- }, {
74
- readonly name: "tokenOut";
75
- readonly type: "address";
76
- }, {
77
- readonly name: "amount";
78
- readonly type: "uint256";
79
- }, {
80
- readonly name: "fee";
81
- readonly type: "uint24";
82
- }, {
83
- readonly name: "sqrtPriceLimitX96";
84
- readonly type: "uint160";
85
- }];
86
- }];
87
- readonly outputs: readonly [{
88
- readonly name: "amountOut";
89
- readonly type: "uint256";
90
- }, {
91
- readonly name: "sqrtPriceX96After";
92
- readonly type: "uint160";
93
- }, {
94
- readonly name: "initializedTicksCrossed";
95
- readonly type: "uint32";
96
- }, {
97
- readonly name: "gasEstimate";
98
- readonly type: "uint256";
99
- }];
100
- }];
20
+ export declare const UniswapV3QuoterV2Abi: {
21
+ name: string;
22
+ type: string;
23
+ stateMutability: string;
24
+ inputs: {
25
+ name: string;
26
+ type: string;
27
+ components: {
28
+ name: string;
29
+ type: string;
30
+ }[];
31
+ }[];
32
+ outputs: {
33
+ name: string;
34
+ type: string;
35
+ }[];
36
+ }[];
101
37
  /** Minimal ERC-20 ABI for allowance, approve, transferFrom */
102
- export declare const ERC20Abi: readonly [{
103
- readonly name: "allowance";
104
- readonly type: "function";
105
- readonly stateMutability: "view";
106
- readonly inputs: readonly [{
107
- readonly name: "owner";
108
- readonly type: "address";
109
- }, {
110
- readonly name: "spender";
111
- readonly type: "address";
112
- }];
113
- readonly outputs: readonly [{
114
- readonly name: "";
115
- readonly type: "uint256";
116
- }];
117
- }, {
118
- readonly name: "approve";
119
- readonly type: "function";
120
- readonly stateMutability: "nonpayable";
121
- readonly inputs: readonly [{
122
- readonly name: "spender";
123
- readonly type: "address";
124
- }, {
125
- readonly name: "amount";
126
- readonly type: "uint256";
127
- }];
128
- readonly outputs: readonly [{
129
- readonly name: "";
130
- readonly type: "bool";
131
- }];
132
- }, {
133
- readonly name: "transfer";
134
- readonly type: "function";
135
- readonly stateMutability: "nonpayable";
136
- readonly inputs: readonly [{
137
- readonly name: "to";
138
- readonly type: "address";
139
- }, {
140
- readonly name: "amount";
141
- readonly type: "uint256";
142
- }];
143
- readonly outputs: readonly [{
144
- readonly name: "";
145
- readonly type: "bool";
146
- }];
147
- }, {
148
- readonly name: "balanceOf";
149
- readonly type: "function";
150
- readonly stateMutability: "view";
151
- readonly inputs: readonly [{
152
- readonly name: "account";
153
- readonly type: "address";
154
- }];
155
- readonly outputs: readonly [{
156
- readonly name: "";
157
- readonly type: "uint256";
158
- }];
159
- }, {
160
- readonly name: "decimals";
161
- readonly type: "function";
162
- readonly stateMutability: "view";
163
- readonly inputs: readonly [];
164
- readonly outputs: readonly [{
165
- readonly name: "";
166
- readonly type: "uint8";
167
- }];
168
- }];
38
+ export declare const ERC20Abi: {
39
+ name: string;
40
+ type: string;
41
+ stateMutability: string;
42
+ inputs: {
43
+ name: string;
44
+ type: string;
45
+ }[];
46
+ outputs: {
47
+ name: string;
48
+ type: string;
49
+ }[];
50
+ }[];
169
51
  //# sourceMappingURL=abi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/swap/abi.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCrB,CAAC;AAEX,sDAAsD;AACtD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBvB,CAAC;AAEX,8DAA8D;AAC9D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CX,CAAC"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/swap/abi.ts"],"names":[],"mappings":"AACA,qDAAqD;AACrD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;GAwC9B,CAAC;AACF,sDAAsD;AACtD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;GAyBhC,CAAC;AACF,8DAA8D;AAC9D,eAAO,MAAM,QAAQ;;;;;;;;;;;;GA6CpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/swap/abi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/swap/abi.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- export * from './router/index.js';
2
1
  export { SwapModule, attachSwap, calcProtocolFee, applySlippage, calcDeadline } from './SwapModule.js';
3
2
  export { UniswapV3RouterAbi, UniswapV3QuoterV2Abi, ERC20Abi } from './abi.js';
4
- export { BASE_TOKENS, UNISWAP_V3_BASE, PROTOCOL_FEE_BPS, DEFAULT_SLIPPAGE_BPS, } from './types.js';
5
- export type { UniswapFeeTier, SwapQuote, SwapOptions, SwapResult, SwapModuleConfig, } from './types.js';
3
+ export { BASE_TOKENS, UNISWAP_V3_BASE, PROTOCOL_FEE_BPS, DEFAULT_SLIPPAGE_BPS } from './types.js';
4
+ export type { UniswapFeeTier, SwapQuote, SwapOptions, SwapResult, SwapModuleConfig } from './types.js';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAEA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClG,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,7 +1,4 @@
1
- // [MAX-ADDED] SwapModule public API — Uniswap V3 aggregator with 0.875% protocol fee
2
- // SmartSwapRouter — multi-DEX meta-aggregation
3
- export * from './router/index.js';
4
1
  export { SwapModule, attachSwap, calcProtocolFee, applySlippage, calcDeadline } from './SwapModule.js';
5
2
  export { UniswapV3RouterAbi, UniswapV3QuoterV2Abi, ERC20Abi } from './abi.js';
6
- export { BASE_TOKENS, UNISWAP_V3_BASE, PROTOCOL_FEE_BPS, DEFAULT_SLIPPAGE_BPS, } from './types.js';
3
+ export { BASE_TOKENS, UNISWAP_V3_BASE, PROTOCOL_FEE_BPS, DEFAULT_SLIPPAGE_BPS } from './types.js';
7
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,+CAA+C;AAC/C,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}