@eth-optimism/actions-sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/dist/__mocks__/MockAssets.d.ts.map +1 -1
  2. package/dist/__mocks__/MockAssets.js +2 -0
  3. package/dist/__mocks__/MockAssets.js.map +1 -1
  4. package/dist/__tests__/actions.test.js +0 -4
  5. package/dist/__tests__/actions.test.js.map +1 -1
  6. package/dist/actions.d.ts +20 -1
  7. package/dist/actions.d.ts.map +1 -1
  8. package/dist/actions.js +37 -13
  9. package/dist/actions.js.map +1 -1
  10. package/dist/constants/assets.d.ts +4 -0
  11. package/dist/constants/assets.d.ts.map +1 -1
  12. package/dist/constants/assets.js +15 -0
  13. package/dist/constants/assets.js.map +1 -1
  14. package/dist/constants/contracts.d.ts +4 -0
  15. package/dist/constants/contracts.d.ts.map +1 -0
  16. package/dist/constants/contracts.js +3 -0
  17. package/dist/constants/contracts.js.map +1 -0
  18. package/dist/index.d.ts +4 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/lend/core/LendProvider.d.ts +0 -6
  23. package/dist/lend/core/LendProvider.d.ts.map +1 -1
  24. package/dist/lend/core/LendProvider.js +6 -15
  25. package/dist/lend/core/LendProvider.js.map +1 -1
  26. package/dist/lend/core/__tests__/LendProvider.test.js +2 -4
  27. package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
  28. package/dist/lend/providers/morpho/__tests__/sdk.test.js +3 -2
  29. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
  30. package/dist/lend/providers/morpho/api.d.ts +4 -0
  31. package/dist/lend/providers/morpho/api.d.ts.map +1 -1
  32. package/dist/lend/providers/morpho/api.js.map +1 -1
  33. package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
  34. package/dist/lend/providers/morpho/sdk.js +10 -1
  35. package/dist/lend/providers/morpho/sdk.js.map +1 -1
  36. package/dist/supported/tokens.d.ts.map +1 -1
  37. package/dist/supported/tokens.js +9 -2
  38. package/dist/supported/tokens.js.map +1 -1
  39. package/dist/swap/__mocks__/MockSwapProvider.d.ts +38 -0
  40. package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
  41. package/dist/swap/__mocks__/MockSwapProvider.js +138 -0
  42. package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -0
  43. package/dist/swap/core/SwapProvider.d.ts +56 -0
  44. package/dist/swap/core/SwapProvider.d.ts.map +1 -0
  45. package/dist/swap/core/SwapProvider.js +177 -0
  46. package/dist/swap/core/SwapProvider.js.map +1 -0
  47. package/dist/swap/core/__tests__/SwapProvider.test.d.ts +2 -0
  48. package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
  49. package/dist/swap/core/__tests__/SwapProvider.test.js +329 -0
  50. package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -0
  51. package/dist/swap/index.d.ts +7 -0
  52. package/dist/swap/index.d.ts.map +1 -0
  53. package/dist/swap/index.js +8 -0
  54. package/dist/swap/index.js.map +1 -0
  55. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +8 -0
  56. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
  57. package/dist/swap/namespaces/ActionsSwapNamespace.js +8 -0
  58. package/dist/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
  59. package/dist/swap/namespaces/BaseSwapNamespace.d.ts +33 -0
  60. package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
  61. package/dist/swap/namespaces/BaseSwapNamespace.js +58 -0
  62. package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -0
  63. package/dist/swap/namespaces/WalletSwapNamespace.d.ts +22 -0
  64. package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
  65. package/dist/swap/namespaces/WalletSwapNamespace.js +60 -0
  66. package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -0
  67. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +2 -0
  68. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
  69. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +106 -0
  70. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
  71. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +2 -0
  72. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
  73. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +132 -0
  74. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
  75. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +68 -0
  76. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
  77. package/dist/swap/providers/uniswap/UniswapSwapProvider.js +206 -0
  78. package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
  79. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +2 -0
  80. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
  81. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +257 -0
  82. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
  83. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts +2 -0
  84. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
  85. package/dist/swap/providers/uniswap/__tests__/sdk.test.js +312 -0
  86. package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
  87. package/dist/swap/providers/uniswap/abis.d.ts +227 -0
  88. package/dist/swap/providers/uniswap/abis.d.ts.map +1 -0
  89. package/dist/swap/providers/uniswap/abis.js +138 -0
  90. package/dist/swap/providers/uniswap/abis.js.map +1 -0
  91. package/dist/swap/providers/uniswap/addresses.d.ts +21 -0
  92. package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -0
  93. package/dist/swap/providers/uniswap/addresses.js +81 -0
  94. package/dist/swap/providers/uniswap/addresses.js.map +1 -0
  95. package/dist/swap/providers/uniswap/encoding.d.ts +77 -0
  96. package/dist/swap/providers/uniswap/encoding.d.ts.map +1 -0
  97. package/dist/swap/providers/uniswap/encoding.js +233 -0
  98. package/dist/swap/providers/uniswap/encoding.js.map +1 -0
  99. package/dist/swap/providers/uniswap/types.d.ts +20 -0
  100. package/dist/swap/providers/uniswap/types.d.ts.map +1 -0
  101. package/dist/swap/providers/uniswap/types.js +2 -0
  102. package/dist/swap/providers/uniswap/types.js.map +1 -0
  103. package/dist/types/actions.d.ts +19 -5
  104. package/dist/types/actions.d.ts.map +1 -1
  105. package/dist/types/index.d.ts +2 -0
  106. package/dist/types/index.d.ts.map +1 -1
  107. package/dist/types/index.js +2 -0
  108. package/dist/types/index.js.map +1 -1
  109. package/dist/types/lend/base.d.ts +3 -13
  110. package/dist/types/lend/base.d.ts.map +1 -1
  111. package/dist/types/lend/base.js.map +1 -1
  112. package/dist/types/swap/base.d.ts +238 -0
  113. package/dist/types/swap/base.d.ts.map +1 -0
  114. package/dist/types/swap/base.js +4 -0
  115. package/dist/types/swap/base.js.map +1 -0
  116. package/dist/types/swap/index.d.ts +2 -0
  117. package/dist/types/swap/index.d.ts.map +1 -0
  118. package/dist/types/swap/index.js +2 -0
  119. package/dist/types/swap/index.js.map +1 -0
  120. package/dist/types/transaction.d.ts +14 -0
  121. package/dist/types/transaction.d.ts.map +1 -0
  122. package/dist/types/transaction.js +2 -0
  123. package/dist/types/transaction.js.map +1 -0
  124. package/dist/utils/assets.d.ts +4 -5
  125. package/dist/utils/assets.d.ts.map +1 -1
  126. package/dist/utils/assets.js +4 -11
  127. package/dist/utils/assets.js.map +1 -1
  128. package/dist/utils/assets.test.js +13 -1
  129. package/dist/utils/assets.test.js.map +1 -1
  130. package/dist/utils/permit2.d.ts +46 -0
  131. package/dist/utils/permit2.d.ts.map +1 -0
  132. package/dist/utils/permit2.js +100 -0
  133. package/dist/utils/permit2.js.map +1 -0
  134. package/dist/utils/permit2.test.d.ts +2 -0
  135. package/dist/utils/permit2.test.d.ts.map +1 -0
  136. package/dist/utils/permit2.test.js +110 -0
  137. package/dist/utils/permit2.test.js.map +1 -0
  138. package/dist/utils/validation.d.ts +12 -0
  139. package/dist/utils/validation.d.ts.map +1 -0
  140. package/dist/utils/validation.js +44 -0
  141. package/dist/utils/validation.js.map +1 -0
  142. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +7 -1
  143. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
  144. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +2 -1
  145. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
  146. package/dist/wallet/core/providers/hosted/types/index.d.ts +5 -1
  147. package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
  148. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +7 -1
  149. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
  150. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +5 -1
  151. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
  152. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +2 -2
  153. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
  154. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +13 -2
  155. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  156. package/dist/wallet/core/wallets/abstract/Wallet.js +7 -1
  157. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  158. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +7 -2
  159. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  160. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +6 -5
  161. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  162. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
  163. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  164. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -1
  165. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  166. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
  167. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +4 -3
  168. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
  169. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +5 -1
  170. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  171. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +4 -2
  172. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  173. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +6 -1
  174. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  175. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +4 -3
  176. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  177. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
  178. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  179. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  180. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  181. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +7 -1
  182. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
  183. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +6 -2
  184. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
  185. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -0
  186. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
  187. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
  188. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  189. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -2
  190. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  191. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -0
  192. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  193. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +6 -3
  194. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  195. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +5 -4
  196. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  197. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
  198. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +6 -6
  199. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
  200. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +7 -1
  201. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
  202. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +5 -3
  203. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
  204. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -1
  205. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  206. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
  207. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  208. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
  209. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  210. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  211. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  212. package/package.json +2 -2
  213. package/src/__mocks__/MockAssets.ts +2 -0
  214. package/src/__tests__/actions.test.ts +0 -4
  215. package/src/actions.ts +57 -19
  216. package/src/constants/assets.ts +16 -0
  217. package/src/constants/contracts.ts +5 -0
  218. package/src/index.ts +30 -2
  219. package/src/lend/core/LendProvider.ts +6 -18
  220. package/src/lend/core/__tests__/LendProvider.test.ts +2 -5
  221. package/src/lend/providers/morpho/__tests__/sdk.test.ts +3 -2
  222. package/src/lend/providers/morpho/api.ts +4 -0
  223. package/src/lend/providers/morpho/sdk.ts +10 -1
  224. package/src/supported/tokens.ts +16 -2
  225. package/src/swap/__mocks__/MockSwapProvider.ts +216 -0
  226. package/src/swap/core/SwapProvider.ts +319 -0
  227. package/src/swap/core/__tests__/SwapProvider.test.ts +478 -0
  228. package/src/swap/index.ts +14 -0
  229. package/src/swap/namespaces/ActionsSwapNamespace.ts +7 -0
  230. package/src/swap/namespaces/BaseSwapNamespace.ts +77 -0
  231. package/src/swap/namespaces/WalletSwapNamespace.ts +82 -0
  232. package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +138 -0
  233. package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +162 -0
  234. package/src/swap/providers/uniswap/UniswapSwapProvider.ts +304 -0
  235. package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +299 -0
  236. package/src/swap/providers/uniswap/__tests__/sdk.test.ts +370 -0
  237. package/src/swap/providers/uniswap/abis.ts +144 -0
  238. package/src/swap/providers/uniswap/addresses.ts +108 -0
  239. package/src/swap/providers/uniswap/encoding.ts +406 -0
  240. package/src/swap/providers/uniswap/types.ts +24 -0
  241. package/src/types/actions.ts +22 -6
  242. package/src/types/index.ts +2 -0
  243. package/src/types/lend/base.ts +4 -14
  244. package/src/types/swap/base.ts +259 -0
  245. package/src/types/swap/index.ts +1 -0
  246. package/src/types/transaction.ts +14 -0
  247. package/src/utils/assets.test.ts +16 -1
  248. package/src/utils/assets.ts +13 -10
  249. package/src/utils/permit2.test.ts +142 -0
  250. package/src/utils/permit2.ts +144 -0
  251. package/src/utils/validation.ts +76 -0
  252. package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +9 -1
  253. package/src/wallet/core/providers/hosted/types/index.ts +5 -1
  254. package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +13 -1
  255. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +2 -0
  256. package/src/wallet/core/wallets/abstract/Wallet.ts +18 -2
  257. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +14 -5
  258. package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +13 -2
  259. package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +10 -2
  260. package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -2
  261. package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +11 -2
  262. package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
  263. package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +10 -2
  264. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -0
  265. package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +9 -2
  266. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -0
  267. package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +9 -4
  268. package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +18 -6
  269. package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -2
  270. package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +10 -2
  271. package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
@@ -0,0 +1,227 @@
1
+ /**
2
+ * V4 Quoter ABI (subset for quoting)
3
+ * @see https://docs.uniswap.org/contracts/v4/reference/periphery/interfaces/IQuoter
4
+ */
5
+ export declare const QUOTER_ABI: readonly [{
6
+ readonly name: "quoteExactInputSingle";
7
+ readonly type: "function";
8
+ readonly stateMutability: "nonpayable";
9
+ readonly inputs: readonly [{
10
+ readonly name: "params";
11
+ readonly type: "tuple";
12
+ readonly components: readonly [{
13
+ readonly name: "poolKey";
14
+ readonly type: "tuple";
15
+ readonly components: readonly [{
16
+ readonly name: "currency0";
17
+ readonly type: "address";
18
+ }, {
19
+ readonly name: "currency1";
20
+ readonly type: "address";
21
+ }, {
22
+ readonly name: "fee";
23
+ readonly type: "uint24";
24
+ }, {
25
+ readonly name: "tickSpacing";
26
+ readonly type: "int24";
27
+ }, {
28
+ readonly name: "hooks";
29
+ readonly type: "address";
30
+ }];
31
+ }, {
32
+ readonly name: "zeroForOne";
33
+ readonly type: "bool";
34
+ }, {
35
+ readonly name: "exactAmount";
36
+ readonly type: "uint128";
37
+ }, {
38
+ readonly name: "hookData";
39
+ readonly type: "bytes";
40
+ }];
41
+ }];
42
+ readonly outputs: readonly [{
43
+ readonly name: "amountOut";
44
+ readonly type: "uint256";
45
+ }, {
46
+ readonly name: "gasEstimate";
47
+ readonly type: "uint256";
48
+ }];
49
+ }, {
50
+ readonly name: "quoteExactOutputSingle";
51
+ readonly type: "function";
52
+ readonly stateMutability: "nonpayable";
53
+ readonly inputs: readonly [{
54
+ readonly name: "params";
55
+ readonly type: "tuple";
56
+ readonly components: readonly [{
57
+ readonly name: "poolKey";
58
+ readonly type: "tuple";
59
+ readonly components: readonly [{
60
+ readonly name: "currency0";
61
+ readonly type: "address";
62
+ }, {
63
+ readonly name: "currency1";
64
+ readonly type: "address";
65
+ }, {
66
+ readonly name: "fee";
67
+ readonly type: "uint24";
68
+ }, {
69
+ readonly name: "tickSpacing";
70
+ readonly type: "int24";
71
+ }, {
72
+ readonly name: "hooks";
73
+ readonly type: "address";
74
+ }];
75
+ }, {
76
+ readonly name: "zeroForOne";
77
+ readonly type: "bool";
78
+ }, {
79
+ readonly name: "exactAmount";
80
+ readonly type: "uint128";
81
+ }, {
82
+ readonly name: "hookData";
83
+ readonly type: "bytes";
84
+ }];
85
+ }];
86
+ readonly outputs: readonly [{
87
+ readonly name: "amountIn";
88
+ readonly type: "uint256";
89
+ }, {
90
+ readonly name: "gasEstimate";
91
+ readonly type: "uint256";
92
+ }];
93
+ }];
94
+ /**
95
+ * Universal Router ABI (subset for swaps)
96
+ * @see https://docs.uniswap.org/contracts/v4/reference/periphery/UniversalRouter
97
+ */
98
+ export declare const UNIVERSAL_ROUTER_ABI: readonly [{
99
+ readonly name: "execute";
100
+ readonly type: "function";
101
+ readonly stateMutability: "payable";
102
+ readonly inputs: readonly [{
103
+ readonly name: "commands";
104
+ readonly type: "bytes";
105
+ }, {
106
+ readonly name: "inputs";
107
+ readonly type: "bytes[]";
108
+ }, {
109
+ readonly name: "deadline";
110
+ readonly type: "uint256";
111
+ }];
112
+ readonly outputs: readonly [];
113
+ }];
114
+ /** ABI type for ExactInputSingleParams */
115
+ export declare const EXACT_INPUT_SINGLE_PARAMS: readonly [{
116
+ readonly type: "tuple";
117
+ readonly components: readonly [{
118
+ readonly name: "poolKey";
119
+ readonly type: "tuple";
120
+ readonly components: readonly [{
121
+ readonly name: "currency0";
122
+ readonly type: "address";
123
+ }, {
124
+ readonly name: "currency1";
125
+ readonly type: "address";
126
+ }, {
127
+ readonly name: "fee";
128
+ readonly type: "uint24";
129
+ }, {
130
+ readonly name: "tickSpacing";
131
+ readonly type: "int24";
132
+ }, {
133
+ readonly name: "hooks";
134
+ readonly type: "address";
135
+ }];
136
+ }, {
137
+ readonly name: "zeroForOne";
138
+ readonly type: "bool";
139
+ }, {
140
+ readonly name: "amountIn";
141
+ readonly type: "uint128";
142
+ }, {
143
+ readonly name: "amountOutMinimum";
144
+ readonly type: "uint128";
145
+ }, {
146
+ readonly name: "hookData";
147
+ readonly type: "bytes";
148
+ }];
149
+ }];
150
+ /** ABI type for ExactOutputSingleParams */
151
+ export declare const EXACT_OUTPUT_SINGLE_PARAMS: readonly [{
152
+ readonly type: "tuple";
153
+ readonly components: readonly [{
154
+ readonly name: "poolKey";
155
+ readonly type: "tuple";
156
+ readonly components: readonly [{
157
+ readonly name: "currency0";
158
+ readonly type: "address";
159
+ }, {
160
+ readonly name: "currency1";
161
+ readonly type: "address";
162
+ }, {
163
+ readonly name: "fee";
164
+ readonly type: "uint24";
165
+ }, {
166
+ readonly name: "tickSpacing";
167
+ readonly type: "int24";
168
+ }, {
169
+ readonly name: "hooks";
170
+ readonly type: "address";
171
+ }];
172
+ }, {
173
+ readonly name: "zeroForOne";
174
+ readonly type: "bool";
175
+ }, {
176
+ readonly name: "amountOut";
177
+ readonly type: "uint128";
178
+ }, {
179
+ readonly name: "amountInMaximum";
180
+ readonly type: "uint128";
181
+ }, {
182
+ readonly name: "hookData";
183
+ readonly type: "bytes";
184
+ }];
185
+ }];
186
+ /** ABI type for SETTLE_ALL / TAKE_ALL params */
187
+ export declare const CURRENCY_AMOUNT_PARAMS: readonly [{
188
+ readonly type: "address";
189
+ }, {
190
+ readonly type: "uint256";
191
+ }];
192
+ /**
193
+ * PoolManager extsload ABI — reads arbitrary storage slots via SLOAD
194
+ * @see https://docs.uniswap.org/contracts/v4/guides/read-pool-state
195
+ */
196
+ export declare const EXTSLOAD_ABI: readonly [{
197
+ readonly name: "extsload";
198
+ readonly type: "function";
199
+ readonly stateMutability: "view";
200
+ readonly inputs: readonly [{
201
+ readonly name: "slot";
202
+ readonly type: "bytes32";
203
+ }];
204
+ readonly outputs: readonly [{
205
+ readonly type: "bytes32";
206
+ }];
207
+ }];
208
+ /**
209
+ * PoolKey ABI encoding type for computing PoolId
210
+ */
211
+ export declare const POOL_KEY_ABI_TYPE: readonly [{
212
+ readonly name: "currency0";
213
+ readonly type: "address";
214
+ }, {
215
+ readonly name: "currency1";
216
+ readonly type: "address";
217
+ }, {
218
+ readonly name: "fee";
219
+ readonly type: "uint24";
220
+ }, {
221
+ readonly name: "tickSpacing";
222
+ readonly type: "int24";
223
+ }, {
224
+ readonly name: "hooks";
225
+ readonly type: "address";
226
+ }];
227
+ //# sourceMappingURL=abis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/abis.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Cb,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAYvB,CAAA;AAEV,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe5B,CAAA;AAEV,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe7B,CAAA;AAEV,gDAAgD;AAChD,eAAO,MAAM,sBAAsB;;;;EAGzB,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;EAQf,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAMpB,CAAA"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * PoolKey tuple components (shared across V4 ABI definitions)
3
+ */
4
+ const POOL_KEY_COMPONENTS = [
5
+ { name: 'currency0', type: 'address' },
6
+ { name: 'currency1', type: 'address' },
7
+ { name: 'fee', type: 'uint24' },
8
+ { name: 'tickSpacing', type: 'int24' },
9
+ { name: 'hooks', type: 'address' },
10
+ ];
11
+ /**
12
+ * V4 Quoter ABI (subset for quoting)
13
+ * @see https://docs.uniswap.org/contracts/v4/reference/periphery/interfaces/IQuoter
14
+ */
15
+ export const QUOTER_ABI = [
16
+ {
17
+ name: 'quoteExactInputSingle',
18
+ type: 'function',
19
+ stateMutability: 'nonpayable',
20
+ inputs: [
21
+ {
22
+ name: 'params',
23
+ type: 'tuple',
24
+ components: [
25
+ { name: 'poolKey', type: 'tuple', components: POOL_KEY_COMPONENTS },
26
+ { name: 'zeroForOne', type: 'bool' },
27
+ { name: 'exactAmount', type: 'uint128' },
28
+ { name: 'hookData', type: 'bytes' },
29
+ ],
30
+ },
31
+ ],
32
+ outputs: [
33
+ { name: 'amountOut', type: 'uint256' },
34
+ { name: 'gasEstimate', type: 'uint256' },
35
+ ],
36
+ },
37
+ {
38
+ name: 'quoteExactOutputSingle',
39
+ type: 'function',
40
+ stateMutability: 'nonpayable',
41
+ inputs: [
42
+ {
43
+ name: 'params',
44
+ type: 'tuple',
45
+ components: [
46
+ { name: 'poolKey', type: 'tuple', components: POOL_KEY_COMPONENTS },
47
+ { name: 'zeroForOne', type: 'bool' },
48
+ { name: 'exactAmount', type: 'uint128' },
49
+ { name: 'hookData', type: 'bytes' },
50
+ ],
51
+ },
52
+ ],
53
+ outputs: [
54
+ { name: 'amountIn', type: 'uint256' },
55
+ { name: 'gasEstimate', type: 'uint256' },
56
+ ],
57
+ },
58
+ ];
59
+ /**
60
+ * Universal Router ABI (subset for swaps)
61
+ * @see https://docs.uniswap.org/contracts/v4/reference/periphery/UniversalRouter
62
+ */
63
+ export const UNIVERSAL_ROUTER_ABI = [
64
+ {
65
+ name: 'execute',
66
+ type: 'function',
67
+ stateMutability: 'payable',
68
+ inputs: [
69
+ { name: 'commands', type: 'bytes' },
70
+ { name: 'inputs', type: 'bytes[]' },
71
+ { name: 'deadline', type: 'uint256' },
72
+ ],
73
+ outputs: [],
74
+ },
75
+ ];
76
+ /** ABI type for ExactInputSingleParams */
77
+ export const EXACT_INPUT_SINGLE_PARAMS = [
78
+ {
79
+ type: 'tuple',
80
+ components: [
81
+ {
82
+ name: 'poolKey',
83
+ type: 'tuple',
84
+ components: [...POOL_KEY_COMPONENTS],
85
+ },
86
+ { name: 'zeroForOne', type: 'bool' },
87
+ { name: 'amountIn', type: 'uint128' },
88
+ { name: 'amountOutMinimum', type: 'uint128' },
89
+ { name: 'hookData', type: 'bytes' },
90
+ ],
91
+ },
92
+ ];
93
+ /** ABI type for ExactOutputSingleParams */
94
+ export const EXACT_OUTPUT_SINGLE_PARAMS = [
95
+ {
96
+ type: 'tuple',
97
+ components: [
98
+ {
99
+ name: 'poolKey',
100
+ type: 'tuple',
101
+ components: [...POOL_KEY_COMPONENTS],
102
+ },
103
+ { name: 'zeroForOne', type: 'bool' },
104
+ { name: 'amountOut', type: 'uint128' },
105
+ { name: 'amountInMaximum', type: 'uint128' },
106
+ { name: 'hookData', type: 'bytes' },
107
+ ],
108
+ },
109
+ ];
110
+ /** ABI type for SETTLE_ALL / TAKE_ALL params */
111
+ export const CURRENCY_AMOUNT_PARAMS = [
112
+ { type: 'address' },
113
+ { type: 'uint256' },
114
+ ];
115
+ /**
116
+ * PoolManager extsload ABI — reads arbitrary storage slots via SLOAD
117
+ * @see https://docs.uniswap.org/contracts/v4/guides/read-pool-state
118
+ */
119
+ export const EXTSLOAD_ABI = [
120
+ {
121
+ name: 'extsload',
122
+ type: 'function',
123
+ stateMutability: 'view',
124
+ inputs: [{ name: 'slot', type: 'bytes32' }],
125
+ outputs: [{ type: 'bytes32' }],
126
+ },
127
+ ];
128
+ /**
129
+ * PoolKey ABI encoding type for computing PoolId
130
+ */
131
+ export const POOL_KEY_ABI_TYPE = [
132
+ { name: 'currency0', type: 'address' },
133
+ { name: 'currency1', type: 'address' },
134
+ { name: 'fee', type: 'uint24' },
135
+ { name: 'tickSpacing', type: 'int24' },
136
+ { name: 'hooks', type: 'address' },
137
+ ];
138
+ //# sourceMappingURL=abis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/abis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Address } from 'viem';
2
+ import type { SupportedChainId } from '../../../constants/supportedChains.js';
3
+ /**
4
+ * Uniswap contract addresses
5
+ */
6
+ export interface UniswapAddresses {
7
+ poolManager: Address;
8
+ positionManager: Address;
9
+ universalRouter: Address;
10
+ quoter: Address;
11
+ permit2: Address;
12
+ }
13
+ /**
14
+ * Get Uniswap contract addresses for a chain
15
+ */
16
+ export declare function getUniswapAddresses(chainId: SupportedChainId): UniswapAddresses;
17
+ /**
18
+ * Get supported chain IDs for Uniswap
19
+ */
20
+ export declare function getSupportedChainIds(): SupportedChainId[];
21
+ //# sourceMappingURL=addresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAanC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAiED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,GACxB,gBAAgB,CAMlB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAEzD"}
@@ -0,0 +1,81 @@
1
+ import { base, baseSepolia, mainnet, optimism, sepolia, unichain, unichainSepolia, worldchain, } from 'viem/chains';
2
+ import { PERMIT2_ADDRESS } from '../../../constants/contracts.js';
3
+ /**
4
+ * Uniswap V4 contract addresses per chain
5
+ * @see https://docs.uniswap.org/contracts/v4/deployments
6
+ */
7
+ const UNISWAP_ADDRESSES = {
8
+ [mainnet.id]: {
9
+ poolManager: '0x000000000004444c5dc75cB358380D2e3dE08A90',
10
+ positionManager: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',
11
+ universalRouter: '0x66a9893cc07d91d95644aedd05d03f95e1dba8af',
12
+ quoter: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',
13
+ permit2: PERMIT2_ADDRESS,
14
+ },
15
+ [optimism.id]: {
16
+ poolManager: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',
17
+ positionManager: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',
18
+ universalRouter: '0x851116d9223fabed8e56c0e6b8ad0c31d98b3507',
19
+ quoter: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',
20
+ permit2: PERMIT2_ADDRESS,
21
+ },
22
+ [base.id]: {
23
+ poolManager: '0x498581ff718922c3f8e6a244956af099b2652b2b',
24
+ positionManager: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',
25
+ universalRouter: '0x6ff5693b99212da76ad316178a184ab56d299b43',
26
+ quoter: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',
27
+ permit2: PERMIT2_ADDRESS,
28
+ },
29
+ [unichain.id]: {
30
+ poolManager: '0x1f98400000000000000000000000000000000004',
31
+ positionManager: '0x4529a01c7a0410167c5740c487a8de60232617bf',
32
+ universalRouter: '0xef740bf23acae26f6492b10de645d6b98dc8eaf3',
33
+ quoter: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',
34
+ permit2: PERMIT2_ADDRESS,
35
+ },
36
+ [worldchain.id]: {
37
+ poolManager: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',
38
+ positionManager: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',
39
+ universalRouter: '0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743',
40
+ quoter: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',
41
+ permit2: PERMIT2_ADDRESS,
42
+ },
43
+ [sepolia.id]: {
44
+ poolManager: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',
45
+ positionManager: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',
46
+ universalRouter: '0x3A9D48AB9751398BbFa63ad67599Bb04e4BdF98b',
47
+ quoter: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',
48
+ permit2: PERMIT2_ADDRESS,
49
+ },
50
+ [baseSepolia.id]: {
51
+ poolManager: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',
52
+ positionManager: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',
53
+ universalRouter: '0x492e6456d9528771018deb9e87ef7750ef184104',
54
+ quoter: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',
55
+ permit2: PERMIT2_ADDRESS,
56
+ },
57
+ [unichainSepolia.id]: {
58
+ poolManager: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',
59
+ positionManager: '0xf969aee60879c54baaed9f3ed26147db216fd664',
60
+ universalRouter: '0xf70536b3bcc1bd1a972dc186a2cf84cc6da6be5d',
61
+ quoter: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',
62
+ permit2: PERMIT2_ADDRESS,
63
+ },
64
+ };
65
+ /**
66
+ * Get Uniswap contract addresses for a chain
67
+ */
68
+ export function getUniswapAddresses(chainId) {
69
+ const addresses = UNISWAP_ADDRESSES[chainId];
70
+ if (!addresses) {
71
+ throw new Error(`Uniswap not supported on chain ${chainId}`);
72
+ }
73
+ return addresses;
74
+ }
75
+ /**
76
+ * Get supported chain IDs for Uniswap
77
+ */
78
+ export function getSupportedChainIds() {
79
+ return Object.keys(UNISWAP_ADDRESSES).map(Number);
80
+ }
81
+ //# sourceMappingURL=addresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/addresses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,IAAI,EACJ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,eAAe,EACf,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAc1D;;;GAGG;AACH,MAAM,iBAAiB,GAAwD;IAC7E,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACZ,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACb,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACT,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACb,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;QACf,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACZ,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;QAChB,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;QACpB,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAyB;IAEzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAuB,CAAA;AACzE,CAAC"}
@@ -0,0 +1,77 @@
1
+ import type { Address, Hex, PublicClient } from 'viem';
2
+ import type { SupportedChainId } from '../../../constants/supportedChains.js';
3
+ import type { Asset } from '../../../types/asset.js';
4
+ import type { SwapPrice } from '../../../types/swap/index.js';
5
+ /**
6
+ * Resolved V4 pool parameters
7
+ */
8
+ interface ResolvedPoolParams {
9
+ tokenIn: Address;
10
+ tokenOut: Address;
11
+ zeroForOne: boolean;
12
+ poolKey: {
13
+ currency0: Address;
14
+ currency1: Address;
15
+ fee: number;
16
+ tickSpacing: number;
17
+ hooks: Address;
18
+ };
19
+ }
20
+ export interface GetQuoteParams {
21
+ assetIn: Asset;
22
+ assetOut: Asset;
23
+ amountInWei?: bigint;
24
+ amountOutWei?: bigint;
25
+ chainId: SupportedChainId;
26
+ publicClient: PublicClient;
27
+ quoterAddress: Address;
28
+ poolManagerAddress: Address;
29
+ /** Fee tier in pips (e.g. 100 = 0.01%) */
30
+ fee: number;
31
+ /** Tick spacing for the pool */
32
+ tickSpacing: number;
33
+ }
34
+ /**
35
+ * Get a swap quote from the Quoter contract
36
+ */
37
+ export declare function getQuote(params: GetQuoteParams): Promise<SwapPrice>;
38
+ export interface EncodeSwapParams {
39
+ amountInWei?: bigint;
40
+ amountOutWei?: bigint;
41
+ assetIn: Asset;
42
+ assetOut: Asset;
43
+ slippage: number;
44
+ deadline: number;
45
+ recipient: Address;
46
+ chainId: SupportedChainId;
47
+ quote: SwapPrice;
48
+ universalRouterAddress: Address;
49
+ /** Fee tier in pips (e.g. 100 = 0.01%) */
50
+ fee: number;
51
+ /** Tick spacing for the pool */
52
+ tickSpacing: number;
53
+ }
54
+ /**
55
+ * Encode Universal Router V4 swap calldata
56
+ * @description Builds calldata for executing a V4 swap through Universal Router
57
+ */
58
+ export declare function encodeUniversalRouterSwap(params: EncodeSwapParams): Hex;
59
+ /**
60
+ * Read sqrtPriceX96 from a V4 pool via PoolManager.extsload (single SLOAD)
61
+ */
62
+ export declare function getPoolSqrtPrice(params: {
63
+ publicClient: PublicClient;
64
+ poolManagerAddress: Address;
65
+ poolKey: ResolvedPoolParams['poolKey'];
66
+ }): Promise<bigint>;
67
+ /**
68
+ * Price impact as a decimal (0.03 = 3%). Returns 0 if unavailable.
69
+ */
70
+ export declare function calculatePriceImpact(params: {
71
+ sqrtPriceX96: bigint;
72
+ amountIn: bigint;
73
+ amountOut: bigint;
74
+ zeroForOne: boolean;
75
+ }): number;
76
+ export {};
77
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAStD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAUtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,uBAAuB,CAAA;AAUjE;;GAEG;AACH,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE;QACP,SAAS,EAAE,OAAO,CAAA;QAClB,SAAS,EAAE,OAAO,CAAA;QAClB,GAAG,EAAE,MAAM,CAAA;QACX,WAAW,EAAE,MAAM,CAAA;QACnB,KAAK,EAAE,OAAO,CAAA;KACf,CAAA;CACF;AAsCD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,gBAAgB,CAAA;IACzB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA2FzE;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,gBAAgB,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;IAChB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB;AAWD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,GAAG,CAuFvE;AA2BD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,YAAY,EAAE,YAAY,CAAA;IAC1B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;CACvC,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BlB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB,GAAG,MAAM,CAqBT"}