@eth-optimism/actions-sdk 0.1.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 (500) hide show
  1. package/LICENSE +1 -1
  2. package/dist/__mocks__/MockAssets.d.ts.map +1 -0
  3. package/dist/{test → __mocks__}/MockAssets.js +2 -0
  4. package/dist/__mocks__/MockAssets.js.map +1 -0
  5. package/dist/__mocks__/MockPrivyClient.d.ts.map +1 -0
  6. package/dist/__mocks__/MockPrivyClient.js.map +1 -0
  7. package/dist/__mocks__/utils.d.ts.map +1 -0
  8. package/dist/__mocks__/utils.js.map +1 -0
  9. package/dist/__tests__/actions.test.d.ts.map +1 -0
  10. package/dist/{actions.test.js → __tests__/actions.test.js} +5 -9
  11. package/dist/__tests__/actions.test.js.map +1 -0
  12. package/dist/actions.d.ts +20 -1
  13. package/dist/actions.d.ts.map +1 -1
  14. package/dist/actions.js +37 -13
  15. package/dist/actions.js.map +1 -1
  16. package/dist/constants/assets.d.ts +23 -0
  17. package/dist/constants/assets.d.ts.map +1 -1
  18. package/dist/constants/assets.js +99 -6
  19. package/dist/constants/assets.js.map +1 -1
  20. package/dist/constants/contracts.d.ts +4 -0
  21. package/dist/constants/contracts.d.ts.map +1 -0
  22. package/dist/constants/contracts.js +3 -0
  23. package/dist/constants/contracts.js.map +1 -0
  24. package/dist/constants/supportedChains.d.ts +1 -1
  25. package/dist/constants/supportedChains.d.ts.map +1 -1
  26. package/dist/constants/supportedChains.js +7 -3
  27. package/dist/constants/supportedChains.js.map +1 -1
  28. package/dist/core/asset/__mocks__/mockAsset.js +1 -1
  29. package/dist/core/asset/__mocks__/mockAsset.js.map +1 -1
  30. package/dist/index.d.ts +4 -3
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/{test → lend/__mocks__}/MockLendProvider.d.ts +7 -6
  35. package/dist/lend/__mocks__/MockLendProvider.d.ts.map +1 -0
  36. package/dist/{test → lend/__mocks__}/MockLendProvider.js +20 -21
  37. package/dist/lend/__mocks__/MockLendProvider.js.map +1 -0
  38. package/dist/{test → lend/__mocks__}/MockMarkets.d.ts +1 -1
  39. package/dist/lend/__mocks__/MockMarkets.d.ts.map +1 -0
  40. package/dist/{test → lend/__mocks__}/MockMarkets.js +1 -1
  41. package/dist/lend/__mocks__/MockMarkets.js.map +1 -0
  42. package/dist/lend/__mocks__/mockLendTransaction.d.ts +3 -12
  43. package/dist/lend/__mocks__/mockLendTransaction.d.ts.map +1 -1
  44. package/dist/lend/__mocks__/mockLendTransaction.js +3 -19
  45. package/dist/lend/__mocks__/mockLendTransaction.js.map +1 -1
  46. package/dist/lend/core/LendProvider.d.ts +14 -8
  47. package/dist/lend/core/LendProvider.d.ts.map +1 -1
  48. package/dist/lend/core/LendProvider.js +29 -17
  49. package/dist/lend/core/LendProvider.js.map +1 -1
  50. package/dist/lend/core/__tests__/LendProvider.test.js +4 -6
  51. package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
  52. package/dist/lend/namespaces/ActionsLendNamespace.d.ts +2 -36
  53. package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -1
  54. package/dist/lend/namespaces/ActionsLendNamespace.js +2 -48
  55. package/dist/lend/namespaces/ActionsLendNamespace.js.map +1 -1
  56. package/dist/lend/namespaces/BaseLendNamespace.d.ts +47 -0
  57. package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +1 -0
  58. package/dist/lend/namespaces/BaseLendNamespace.js +58 -0
  59. package/dist/lend/namespaces/BaseLendNamespace.js.map +1 -0
  60. package/dist/lend/namespaces/WalletLendNamespace.d.ts +8 -36
  61. package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -1
  62. package/dist/lend/namespaces/WalletLendNamespace.js +14 -69
  63. package/dist/lend/namespaces/WalletLendNamespace.js.map +1 -1
  64. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js +2 -2
  65. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +1 -1
  66. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts +2 -0
  67. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts.map +1 -0
  68. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js +110 -0
  69. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -0
  70. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js +8 -10
  71. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -1
  72. package/dist/lend/providers/aave/AaveLendProvider.d.ts +19 -27
  73. package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -1
  74. package/dist/lend/providers/aave/AaveLendProvider.js +124 -180
  75. package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -1
  76. package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts +11 -0
  77. package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts.map +1 -0
  78. package/dist/lend/providers/aave/__mocks__/mockReserve.js +80 -0
  79. package/dist/lend/providers/aave/__mocks__/mockReserve.js.map +1 -0
  80. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts +2 -0
  81. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts.map +1 -0
  82. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js +315 -0
  83. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -0
  84. package/dist/lend/providers/aave/abis/pool.d.ts +153 -0
  85. package/dist/lend/providers/aave/abis/pool.d.ts.map +1 -0
  86. package/dist/lend/providers/aave/abis/pool.js +79 -0
  87. package/dist/lend/providers/aave/abis/pool.js.map +1 -0
  88. package/dist/lend/providers/aave/sdk.d.ts.map +1 -1
  89. package/dist/lend/providers/aave/sdk.js +6 -65
  90. package/dist/lend/providers/aave/sdk.js.map +1 -1
  91. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +0 -1
  92. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -1
  93. package/dist/lend/providers/morpho/MorphoLendProvider.js +13 -28
  94. package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -1
  95. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js +5 -24
  96. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +1 -1
  97. package/dist/lend/providers/morpho/__tests__/api.test.js +248 -54
  98. package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -1
  99. package/dist/lend/providers/morpho/__tests__/sdk.test.js +3 -2
  100. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
  101. package/dist/lend/providers/morpho/api.d.ts +4 -0
  102. package/dist/lend/providers/morpho/api.d.ts.map +1 -1
  103. package/dist/lend/providers/morpho/api.js.map +1 -1
  104. package/dist/lend/providers/morpho/contracts.d.ts +19 -0
  105. package/dist/lend/providers/morpho/contracts.d.ts.map +1 -0
  106. package/dist/lend/providers/morpho/contracts.js +32 -0
  107. package/dist/lend/providers/morpho/contracts.js.map +1 -0
  108. package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
  109. package/dist/lend/providers/morpho/sdk.js +177 -71
  110. package/dist/lend/providers/morpho/sdk.js.map +1 -1
  111. package/dist/services/ChainManager.d.ts +1 -1
  112. package/dist/{test → services/__mocks__}/MockChainManager.d.ts +1 -1
  113. package/dist/services/__mocks__/MockChainManager.d.ts.map +1 -0
  114. package/dist/services/__mocks__/MockChainManager.js.map +1 -0
  115. package/dist/services/tokenBalance.d.ts.map +1 -1
  116. package/dist/services/tokenBalance.js +4 -5
  117. package/dist/services/tokenBalance.js.map +1 -1
  118. package/dist/services/tokenBalance.spec.js +2 -2
  119. package/dist/services/tokenBalance.spec.js.map +1 -1
  120. package/dist/supported/tokens.d.ts +4 -4
  121. package/dist/supported/tokens.d.ts.map +1 -1
  122. package/dist/supported/tokens.js +10 -70
  123. package/dist/supported/tokens.js.map +1 -1
  124. package/dist/swap/__mocks__/MockSwapProvider.d.ts +38 -0
  125. package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
  126. package/dist/swap/__mocks__/MockSwapProvider.js +138 -0
  127. package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -0
  128. package/dist/swap/core/SwapProvider.d.ts +56 -0
  129. package/dist/swap/core/SwapProvider.d.ts.map +1 -0
  130. package/dist/swap/core/SwapProvider.js +177 -0
  131. package/dist/swap/core/SwapProvider.js.map +1 -0
  132. package/dist/swap/core/__tests__/SwapProvider.test.d.ts +2 -0
  133. package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
  134. package/dist/swap/core/__tests__/SwapProvider.test.js +329 -0
  135. package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -0
  136. package/dist/swap/index.d.ts +7 -0
  137. package/dist/swap/index.d.ts.map +1 -0
  138. package/dist/swap/index.js +8 -0
  139. package/dist/swap/index.js.map +1 -0
  140. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +8 -0
  141. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
  142. package/dist/swap/namespaces/ActionsSwapNamespace.js +8 -0
  143. package/dist/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
  144. package/dist/swap/namespaces/BaseSwapNamespace.d.ts +33 -0
  145. package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
  146. package/dist/swap/namespaces/BaseSwapNamespace.js +58 -0
  147. package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -0
  148. package/dist/swap/namespaces/WalletSwapNamespace.d.ts +22 -0
  149. package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
  150. package/dist/swap/namespaces/WalletSwapNamespace.js +60 -0
  151. package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -0
  152. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +2 -0
  153. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
  154. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +106 -0
  155. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
  156. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +2 -0
  157. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
  158. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +132 -0
  159. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
  160. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +68 -0
  161. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
  162. package/dist/swap/providers/uniswap/UniswapSwapProvider.js +206 -0
  163. package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
  164. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +2 -0
  165. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
  166. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +257 -0
  167. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
  168. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts +2 -0
  169. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
  170. package/dist/swap/providers/uniswap/__tests__/sdk.test.js +312 -0
  171. package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
  172. package/dist/swap/providers/uniswap/abis.d.ts +227 -0
  173. package/dist/swap/providers/uniswap/abis.d.ts.map +1 -0
  174. package/dist/swap/providers/uniswap/abis.js +138 -0
  175. package/dist/swap/providers/uniswap/abis.js.map +1 -0
  176. package/dist/swap/providers/uniswap/addresses.d.ts +21 -0
  177. package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -0
  178. package/dist/swap/providers/uniswap/addresses.js +81 -0
  179. package/dist/swap/providers/uniswap/addresses.js.map +1 -0
  180. package/dist/swap/providers/uniswap/encoding.d.ts +77 -0
  181. package/dist/swap/providers/uniswap/encoding.d.ts.map +1 -0
  182. package/dist/swap/providers/uniswap/encoding.js +233 -0
  183. package/dist/swap/providers/uniswap/encoding.js.map +1 -0
  184. package/dist/swap/providers/uniswap/types.d.ts +20 -0
  185. package/dist/swap/providers/uniswap/types.d.ts.map +1 -0
  186. package/dist/swap/providers/uniswap/types.js +2 -0
  187. package/dist/swap/providers/uniswap/types.js.map +1 -0
  188. package/dist/types/actions.d.ts +19 -5
  189. package/dist/types/actions.d.ts.map +1 -1
  190. package/dist/types/asset.d.ts +3 -3
  191. package/dist/types/asset.d.ts.map +1 -1
  192. package/dist/types/index.d.ts +2 -0
  193. package/dist/types/index.d.ts.map +1 -1
  194. package/dist/types/index.js +2 -0
  195. package/dist/types/index.js.map +1 -1
  196. package/dist/types/lend/base.d.ts +7 -22
  197. package/dist/types/lend/base.d.ts.map +1 -1
  198. package/dist/types/lend/base.js.map +1 -1
  199. package/dist/types/lend/contracts.d.ts +17 -0
  200. package/dist/types/lend/contracts.d.ts.map +1 -0
  201. package/dist/types/lend/contracts.js +2 -0
  202. package/dist/types/lend/contracts.js.map +1 -0
  203. package/dist/types/lend/index.d.ts +1 -0
  204. package/dist/types/lend/index.d.ts.map +1 -1
  205. package/dist/types/lend/index.js +1 -0
  206. package/dist/types/lend/index.js.map +1 -1
  207. package/dist/types/swap/base.d.ts +238 -0
  208. package/dist/types/swap/base.d.ts.map +1 -0
  209. package/dist/types/swap/base.js +4 -0
  210. package/dist/types/swap/base.js.map +1 -0
  211. package/dist/types/swap/index.d.ts +2 -0
  212. package/dist/types/swap/index.d.ts.map +1 -0
  213. package/dist/types/swap/index.js +2 -0
  214. package/dist/types/swap/index.js.map +1 -0
  215. package/dist/types/transaction.d.ts +14 -0
  216. package/dist/types/transaction.d.ts.map +1 -0
  217. package/dist/types/transaction.js +2 -0
  218. package/dist/types/transaction.js.map +1 -0
  219. package/dist/utils/assets.d.ts +11 -6
  220. package/dist/utils/assets.d.ts.map +1 -1
  221. package/dist/utils/assets.js +16 -12
  222. package/dist/utils/assets.js.map +1 -1
  223. package/dist/utils/assets.test.js +14 -2
  224. package/dist/utils/assets.test.js.map +1 -1
  225. package/dist/utils/constants.d.ts +5 -0
  226. package/dist/utils/constants.d.ts.map +1 -0
  227. package/dist/utils/constants.js +5 -0
  228. package/dist/utils/constants.js.map +1 -0
  229. package/dist/utils/permit2.d.ts +46 -0
  230. package/dist/utils/permit2.d.ts.map +1 -0
  231. package/dist/utils/permit2.js +100 -0
  232. package/dist/utils/permit2.js.map +1 -0
  233. package/dist/utils/permit2.test.d.ts +2 -0
  234. package/dist/utils/permit2.test.d.ts.map +1 -0
  235. package/dist/utils/permit2.test.js +110 -0
  236. package/dist/utils/permit2.test.js.map +1 -0
  237. package/dist/utils/validation.d.ts +12 -0
  238. package/dist/utils/validation.d.ts.map +1 -0
  239. package/dist/utils/validation.js +44 -0
  240. package/dist/utils/validation.js.map +1 -0
  241. package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
  242. package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
  243. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +4 -4
  244. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
  245. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +4 -4
  246. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
  247. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +7 -1
  248. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
  249. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +2 -1
  250. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
  251. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +2 -2
  252. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -1
  253. package/dist/wallet/core/providers/hosted/types/index.d.ts +5 -1
  254. package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
  255. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +7 -1
  256. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
  257. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +5 -1
  258. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
  259. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +5 -5
  260. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
  261. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +13 -2
  262. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  263. package/dist/wallet/core/wallets/abstract/Wallet.js +7 -1
  264. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  265. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +2 -2
  266. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
  267. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js +2 -2
  268. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js.map +1 -1
  269. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +7 -2
  270. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  271. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +6 -5
  272. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  273. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +3 -3
  274. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
  275. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js +1 -1
  276. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js.map +1 -1
  277. package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js +1 -1
  278. package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js.map +1 -1
  279. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
  280. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  281. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -1
  282. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  283. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +4 -4
  284. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  285. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
  286. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +4 -3
  287. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
  288. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +2 -2
  289. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
  290. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +5 -1
  291. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  292. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +4 -2
  293. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  294. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +2 -2
  295. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
  296. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +6 -1
  297. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  298. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +4 -3
  299. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  300. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +3 -3
  301. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
  302. package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +2 -2
  303. package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -1
  304. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
  305. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  306. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  307. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  308. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -2
  309. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
  310. package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +1 -1
  311. package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -1
  312. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +7 -1
  313. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
  314. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +6 -2
  315. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
  316. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.d.ts.map +1 -1
  317. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js +1 -1
  318. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js.map +1 -1
  319. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +6 -2
  320. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
  321. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
  322. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  323. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -2
  324. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  325. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.d.ts.map +1 -1
  326. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js +1 -1
  327. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js.map +1 -1
  328. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +3 -2
  329. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  330. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +6 -3
  331. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  332. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +5 -4
  333. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  334. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +2 -2
  335. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
  336. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
  337. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +6 -6
  338. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
  339. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +1 -1
  340. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
  341. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +7 -1
  342. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
  343. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +5 -3
  344. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
  345. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js +2 -2
  346. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js.map +1 -1
  347. package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js +1 -1
  348. package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js.map +1 -1
  349. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -1
  350. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  351. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
  352. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  353. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +2 -2
  354. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
  355. package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +1 -1
  356. package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -1
  357. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
  358. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  359. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  360. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  361. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -2
  362. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
  363. package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +1 -1
  364. package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -1
  365. package/package.json +2 -2
  366. package/src/{test → __mocks__}/MockAssets.ts +2 -0
  367. package/src/{test → __mocks__}/MockPrivyClient.ts +1 -1
  368. package/src/{actions.test.ts → __tests__/actions.test.ts} +2 -6
  369. package/src/actions.ts +57 -19
  370. package/src/constants/assets.ts +108 -8
  371. package/src/constants/contracts.ts +5 -0
  372. package/src/constants/supportedChains.ts +10 -2
  373. package/src/core/asset/__mocks__/mockAsset.ts +1 -1
  374. package/src/index.ts +30 -2
  375. package/src/{test → lend/__mocks__}/MockLendProvider.ts +20 -23
  376. package/src/{test → lend/__mocks__}/MockMarkets.ts +1 -1
  377. package/src/lend/__mocks__/mockLendTransaction.ts +4 -26
  378. package/src/lend/core/LendProvider.ts +40 -20
  379. package/src/lend/core/__tests__/LendProvider.test.ts +4 -7
  380. package/src/lend/namespaces/ActionsLendNamespace.ts +2 -85
  381. package/src/lend/namespaces/BaseLendNamespace.ts +89 -0
  382. package/src/lend/namespaces/WalletLendNamespace.ts +25 -121
  383. package/src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts +10 -9
  384. package/src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts +137 -0
  385. package/src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts +19 -22
  386. package/src/lend/providers/aave/AaveLendProvider.ts +163 -231
  387. package/src/lend/providers/aave/__mocks__/mockReserve.ts +84 -0
  388. package/src/lend/providers/aave/__tests__/AaveLendProvider.test.ts +419 -0
  389. package/src/lend/providers/aave/abis/pool.ts +81 -0
  390. package/src/lend/providers/aave/sdk.ts +7 -69
  391. package/src/lend/providers/morpho/MorphoLendProvider.ts +20 -41
  392. package/src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts +8 -32
  393. package/src/lend/providers/morpho/__tests__/api.test.ts +277 -51
  394. package/src/lend/providers/morpho/__tests__/sdk.test.ts +3 -2
  395. package/src/lend/providers/morpho/api.ts +4 -0
  396. package/src/lend/providers/morpho/contracts.ts +37 -0
  397. package/src/lend/providers/morpho/sdk.ts +241 -84
  398. package/src/services/tokenBalance.spec.ts +2 -2
  399. package/src/services/tokenBalance.ts +6 -7
  400. package/src/supported/tokens.ts +18 -77
  401. package/src/swap/__mocks__/MockSwapProvider.ts +216 -0
  402. package/src/swap/core/SwapProvider.ts +319 -0
  403. package/src/swap/core/__tests__/SwapProvider.test.ts +478 -0
  404. package/src/swap/index.ts +14 -0
  405. package/src/swap/namespaces/ActionsSwapNamespace.ts +7 -0
  406. package/src/swap/namespaces/BaseSwapNamespace.ts +77 -0
  407. package/src/swap/namespaces/WalletSwapNamespace.ts +82 -0
  408. package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +138 -0
  409. package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +162 -0
  410. package/src/swap/providers/uniswap/UniswapSwapProvider.ts +304 -0
  411. package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +299 -0
  412. package/src/swap/providers/uniswap/__tests__/sdk.test.ts +370 -0
  413. package/src/swap/providers/uniswap/abis.ts +144 -0
  414. package/src/swap/providers/uniswap/addresses.ts +108 -0
  415. package/src/swap/providers/uniswap/encoding.ts +406 -0
  416. package/src/swap/providers/uniswap/types.ts +24 -0
  417. package/src/types/actions.ts +22 -6
  418. package/src/types/asset.ts +3 -3
  419. package/src/types/index.ts +2 -0
  420. package/src/types/lend/base.ts +12 -25
  421. package/src/types/lend/contracts.ts +18 -0
  422. package/src/types/lend/index.ts +1 -0
  423. package/src/types/swap/base.ts +259 -0
  424. package/src/types/swap/index.ts +1 -0
  425. package/src/types/transaction.ts +14 -0
  426. package/src/utils/assets.test.ts +17 -2
  427. package/src/utils/assets.ts +28 -11
  428. package/src/utils/constants.ts +4 -0
  429. package/src/utils/permit2.test.ts +142 -0
  430. package/src/utils/permit2.ts +144 -0
  431. package/src/utils/validation.ts +76 -0
  432. package/src/wallet/core/namespace/WalletNamespace.ts +2 -4
  433. package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +6 -6
  434. package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +6 -6
  435. package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +9 -1
  436. package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +3 -3
  437. package/src/wallet/core/providers/hosted/types/index.ts +5 -1
  438. package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +13 -1
  439. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +9 -9
  440. package/src/wallet/core/wallets/abstract/Wallet.ts +18 -2
  441. package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +2 -2
  442. package/src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts +2 -2
  443. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +14 -5
  444. package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +3 -3
  445. package/src/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.ts +1 -1
  446. package/src/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.ts +1 -1
  447. package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +13 -2
  448. package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +5 -5
  449. package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +10 -2
  450. package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +3 -3
  451. package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -2
  452. package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +2 -2
  453. package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +11 -2
  454. package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +4 -4
  455. package/src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +2 -2
  456. package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
  457. package/src/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -2
  458. package/src/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +1 -1
  459. package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +10 -2
  460. package/src/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.ts +1 -1
  461. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +9 -5
  462. package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +9 -2
  463. package/src/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.ts +1 -1
  464. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +5 -5
  465. package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +9 -4
  466. package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +2 -2
  467. package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +18 -6
  468. package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +5 -7
  469. package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -2
  470. package/src/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.ts +2 -2
  471. package/src/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.ts +1 -1
  472. package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +10 -2
  473. package/src/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +2 -2
  474. package/src/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +1 -1
  475. package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
  476. package/src/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -2
  477. package/src/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +1 -1
  478. package/dist/actions.test.d.ts.map +0 -1
  479. package/dist/actions.test.js.map +0 -1
  480. package/dist/test/MockAssets.d.ts.map +0 -1
  481. package/dist/test/MockAssets.js.map +0 -1
  482. package/dist/test/MockChainManager.d.ts.map +0 -1
  483. package/dist/test/MockChainManager.js.map +0 -1
  484. package/dist/test/MockLendProvider.d.ts.map +0 -1
  485. package/dist/test/MockLendProvider.js.map +0 -1
  486. package/dist/test/MockMarkets.d.ts.map +0 -1
  487. package/dist/test/MockMarkets.js.map +0 -1
  488. package/dist/test/MockPrivyClient.d.ts.map +0 -1
  489. package/dist/test/MockPrivyClient.js.map +0 -1
  490. package/dist/test/utils.d.ts.map +0 -1
  491. package/dist/test/utils.js.map +0 -1
  492. /package/dist/{test → __mocks__}/MockAssets.d.ts +0 -0
  493. /package/dist/{test → __mocks__}/MockPrivyClient.d.ts +0 -0
  494. /package/dist/{test → __mocks__}/MockPrivyClient.js +0 -0
  495. /package/dist/{test → __mocks__}/utils.d.ts +0 -0
  496. /package/dist/{test → __mocks__}/utils.js +0 -0
  497. /package/dist/{actions.test.d.ts → __tests__/actions.test.d.ts} +0 -0
  498. /package/dist/{test → services/__mocks__}/MockChainManager.js +0 -0
  499. /package/src/{test → __mocks__}/utils.ts +0 -0
  500. /package/src/{test → services/__mocks__}/MockChainManager.ts +0 -0
@@ -0,0 +1,238 @@
1
+ import type { Address } from 'viem';
2
+ import type { SupportedChainId } from '../../constants/supportedChains.js';
3
+ import type { SwapProvider } from '../../swap/core/SwapProvider.js';
4
+ import type { Asset } from '../asset.js';
5
+ import type { TransactionData } from '../transaction.js';
6
+ import type { BatchTransactionReturnType, TransactionReturnType } from '../../wallet/core/wallets/abstract/types/index.js';
7
+ export { SwapProvider } from '../../swap/core/SwapProvider.js';
8
+ export { ActionsSwapNamespace } from '../../swap/namespaces/ActionsSwapNamespace.js';
9
+ export { WalletSwapNamespace } from '../../swap/namespaces/WalletSwapNamespace.js';
10
+ /**
11
+ * Map of available swap providers keyed by provider name
12
+ */
13
+ export type SwapProviders = {
14
+ uniswap?: SwapProvider<SwapProviderConfig>;
15
+ };
16
+ /**
17
+ * Swap provider configuration
18
+ * @description Configuration for a single swap provider (mirrors LendProviderConfig pattern)
19
+ */
20
+ export interface SwapProviderConfig {
21
+ /** Default slippage tolerance (e.g., 0.005 for 0.5%) */
22
+ defaultSlippage?: number;
23
+ /** Maximum allowed slippage (e.g., 0.5 for 50%). Defaults to 0.5. */
24
+ maxSlippage?: number;
25
+ /** Allowlist of swap markets (optional - defaults to all supported assets) */
26
+ marketAllowlist?: SwapMarketConfig[];
27
+ /** Blocklist of swap markets to exclude */
28
+ marketBlocklist?: SwapMarketConfig[];
29
+ }
30
+ /**
31
+ * Swap market filter
32
+ * @description Define allowed/blocked trading markets by assets.
33
+ * 2 assets = one explicit pair. 3+ = all pairs between them.
34
+ */
35
+ export interface SwapMarketConfig {
36
+ /** 2 assets = one explicit pair. 3+ = all pairs between them. */
37
+ assets: [Asset, Asset, ...Asset[]];
38
+ /** Restrict to a specific chain. Omit = all configured chains. */
39
+ chainId?: SupportedChainId;
40
+ }
41
+ /**
42
+ * Swap market identifier
43
+ * @description Unique identifier for a swap market (mirrors LendMarketId pattern)
44
+ */
45
+ export type SwapMarketId = {
46
+ /** Pool identifier (keccak256 hash of PoolKey) */
47
+ poolId: string;
48
+ /** Chain ID where this market exists */
49
+ chainId: SupportedChainId;
50
+ };
51
+ /**
52
+ * Parameters for getting a specific swap market
53
+ */
54
+ export type GetSwapMarketParams = SwapMarketId;
55
+ /**
56
+ * Parameters for getting swap markets
57
+ */
58
+ export interface GetSwapMarketsParams {
59
+ /** Filter by chain ID */
60
+ chainId?: SupportedChainId;
61
+ /** Filter by asset (returns markets containing this asset) */
62
+ asset?: Asset;
63
+ }
64
+ /**
65
+ * Parameters for a wallet swap — what the developer passes.
66
+ * Exactly one of amountIn or amountOut must be provided.
67
+ */
68
+ export interface WalletSwapParams {
69
+ /** Amount of input token (human-readable). For exact-in swaps. Mutually exclusive with amountOut. */
70
+ amountIn?: number;
71
+ /** Amount of output token (human-readable). For exact-out swaps. Mutually exclusive with amountIn. */
72
+ amountOut?: number;
73
+ /** Token to sell */
74
+ assetIn: Asset;
75
+ /** Token to buy */
76
+ assetOut: Asset;
77
+ /** Chain to execute swap on */
78
+ chainId: SupportedChainId;
79
+ /** Slippage tolerance override (e.g., 0.01 for 1%). Overrides provider and config defaults. */
80
+ slippage?: number;
81
+ /** Transaction deadline as Unix timestamp. Defaults to now + 1 minute. */
82
+ deadline?: number;
83
+ /** Recipient address. Defaults to wallet address. */
84
+ recipient?: Address;
85
+ }
86
+ /**
87
+ * Full swap execute parameters including wallet address.
88
+ * walletAddress is auto-injected by the wallet namespace.
89
+ */
90
+ export interface SwapExecuteParams extends WalletSwapParams {
91
+ walletAddress: Address;
92
+ }
93
+ /**
94
+ * Fully resolved swap parameters with defaults applied and amounts in wei.
95
+ * Passed to provider _execute() implementations.
96
+ */
97
+ export interface ResolvedSwapParams {
98
+ amountInWei?: bigint;
99
+ amountOutWei?: bigint;
100
+ assetIn: Asset;
101
+ assetOut: Asset;
102
+ slippage: number;
103
+ deadline: number;
104
+ recipient: Address;
105
+ walletAddress: Address;
106
+ chainId: SupportedChainId;
107
+ }
108
+ /**
109
+ * Parameters for getting a swap price quote
110
+ * @description Specify either amountIn (for exact-in) or amountOut (for exact-out),
111
+ * not both. Amounts should be human-readable numbers (e.g., 100 for 100 USDC).
112
+ */
113
+ export interface SwapPriceParams {
114
+ /** Token to get price for (required) */
115
+ assetIn: Asset;
116
+ /** Token to price against. Defaults to USDC if not provided. */
117
+ assetOut?: Asset;
118
+ /** Amount of input token (human-readable). Defaults to 1 unit. For exact-in quotes. */
119
+ amountIn?: number;
120
+ /** Amount of output token (human-readable). For exact-out quotes. */
121
+ amountOut?: number;
122
+ /** Chain to get price on */
123
+ chainId: SupportedChainId;
124
+ }
125
+ /**
126
+ * Market information for a swap hop
127
+ */
128
+ export interface SwapMarketInfo {
129
+ /** Market address or identifier */
130
+ address: Address;
131
+ /** Fee tier in pips */
132
+ fee: number;
133
+ /** Protocol version used (v2, v3, v4) */
134
+ version: 'v2' | 'v3' | 'v4';
135
+ }
136
+ /**
137
+ * Swap route information
138
+ */
139
+ export interface SwapRoute {
140
+ /** Ordered list of assets in the route path */
141
+ path: Asset[];
142
+ /** Market information for each hop */
143
+ pools: SwapMarketInfo[];
144
+ }
145
+ /**
146
+ * Swap price quote response
147
+ */
148
+ export interface SwapPrice {
149
+ /** Exchange rate as human-readable string (e.g., "3245.50") */
150
+ price: string;
151
+ /** Inverse exchange rate */
152
+ priceInverse: string;
153
+ /** Human-readable input amount */
154
+ amountIn: number;
155
+ /** Human-readable output amount */
156
+ amountOut: number;
157
+ /** Input amount in wei */
158
+ amountInWei: bigint;
159
+ /** Expected output amount in wei */
160
+ amountOutWei: bigint;
161
+ /** Price impact as decimal (0.03 = 3%). Derived from pool mid-price vs execution price. */
162
+ priceImpact: number;
163
+ /** Route taken for the swap */
164
+ route: SwapRoute;
165
+ /** Estimated gas cost in wei */
166
+ gasEstimate?: bigint;
167
+ }
168
+ /**
169
+ * Transaction data for swap execution
170
+ */
171
+ export interface SwapTransactionData {
172
+ /** Permit2 approval transaction (if needed) */
173
+ permit2Approval?: TransactionData;
174
+ /** Token approval to Permit2 (if needed) */
175
+ tokenApproval?: TransactionData;
176
+ /** Main swap transaction */
177
+ swap: TransactionData;
178
+ }
179
+ /**
180
+ * Swap transaction result
181
+ */
182
+ export interface SwapTransaction {
183
+ /** Human-readable input amount */
184
+ amountIn: number;
185
+ /** Human-readable output amount */
186
+ amountOut: number;
187
+ /** Input amount in wei */
188
+ amountInWei: bigint;
189
+ /** Output amount in wei (expected) */
190
+ amountOutWei: bigint;
191
+ /** Input asset */
192
+ assetIn: Asset;
193
+ /** Output asset */
194
+ assetOut: Asset;
195
+ /** Execution price */
196
+ price: string;
197
+ /** Price impact as decimal (0.03 = 3%) */
198
+ priceImpact: number;
199
+ /** Transaction data for execution */
200
+ transactionData: SwapTransactionData;
201
+ }
202
+ /**
203
+ * Swap execution receipt
204
+ */
205
+ export interface SwapReceipt {
206
+ /** Transaction receipt(s) */
207
+ receipt: TransactionReturnType | BatchTransactionReturnType;
208
+ /** Human-readable input amount */
209
+ amountIn: number;
210
+ /** Human-readable output amount */
211
+ amountOut: number;
212
+ /** Actual input amount in wei */
213
+ amountInWei: bigint;
214
+ /** Actual output amount in wei */
215
+ amountOutWei: bigint;
216
+ /** Input asset */
217
+ assetIn: Asset;
218
+ /** Output asset */
219
+ assetOut: Asset;
220
+ /** Execution price as human-readable string */
221
+ price: string;
222
+ /** Price impact as decimal (0.03 = 3%) */
223
+ priceImpact: number;
224
+ }
225
+ /**
226
+ * Swap market information
227
+ */
228
+ export interface SwapMarket {
229
+ /** Market identifier (contains poolId and chainId) */
230
+ marketId: SwapMarketId;
231
+ /** Token pair in the market */
232
+ assets: [Asset, Asset];
233
+ /** Fee tier in pips (500 = 0.05%) */
234
+ fee: number;
235
+ /** Provider name */
236
+ provider: 'uniswap';
237
+ }
238
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/types/swap/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { SwapProvider } from '../../swap/core/SwapProvider.js';
2
+ export { ActionsSwapNamespace } from '../../swap/namespaces/ActionsSwapNamespace.js';
3
+ export { WalletSwapNamespace } from '../../swap/namespaces/WalletSwapNamespace.js';
4
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/types/swap/base.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './base.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/swap/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './base.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/swap/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,14 @@
1
+ import type { Address, Hex } from 'viem';
2
+ /**
3
+ * Transaction data for execution
4
+ * @description Raw transaction data for wallet execution
5
+ */
6
+ export interface TransactionData {
7
+ /** Target contract address */
8
+ to: Address;
9
+ /** Encoded function call data */
10
+ data: Hex;
11
+ /** ETH value to send */
12
+ value: bigint;
13
+ }
14
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/types/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,EAAE,EAAE,OAAO,CAAA;IACX,iCAAiC;IACjC,IAAI,EAAE,GAAG,CAAA;IACT,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAA;CACd"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/types/transaction.ts"],"names":[],"mappings":""}
@@ -2,12 +2,11 @@ import type { Address } from 'viem';
2
2
  import type { SupportedChainId } from '../constants/supportedChains.js';
3
3
  import type { Asset } from '../types/asset.js';
4
4
  /**
5
- * Parse human-readable amount to wei/smallest unit
6
- * @param amount - Human-readable amount (e.g. 1.5)
7
- * @param decimals - Token decimals
8
- * @returns Amount in smallest unit (wei equivalent)
5
+ * Parse human-readable amount to wei using an asset's decimals.
6
+ * Returns undefined when amount is undefined.
9
7
  */
10
- export declare function parseAssetAmount(amount: number, decimals: number): bigint;
8
+ export declare function parseAssetAmount(asset: Asset, amount: number): bigint;
9
+ export declare function parseAssetAmount(asset: Asset, amount: number | undefined): bigint | undefined;
11
10
  /**
12
11
  * Convert wei/smallest unit back to human-readable amount
13
12
  * @param amount - Amount in smallest unit
@@ -15,6 +14,12 @@ export declare function parseAssetAmount(amount: number, decimals: number): bigi
15
14
  * @returns Human-readable amount as number
16
15
  */
17
16
  export declare function formatAssetAmount(amount: bigint, decimals: number): number;
17
+ /**
18
+ * Check if asset is a native asset (e.g. ETH)
19
+ * @param asset - Asset definition
20
+ * @returns Whether the asset is native
21
+ */
22
+ export declare function isNativeAsset(asset: Asset): boolean;
18
23
  /**
19
24
  * Check if asset is supported on a specific chain
20
25
  * @param asset - Asset definition
@@ -27,7 +32,7 @@ export declare function isAssetSupportedOnChain(asset: Asset, chainId: Supported
27
32
  * @param asset - Asset definition
28
33
  * @param chainId - Chain ID
29
34
  * @returns Asset address on the specified chain
30
- * @throws Error if asset is not supported on the chain
35
+ * @throws Error if asset is not supported on the chain or is a native asset
31
36
  */
32
37
  export declare function getAssetAddress(asset: Asset, chainId: SupportedChainId): Address;
33
38
  //# sourceMappingURL=assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW1E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAQT"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;AACtE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAAA;AASrB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW1E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAaT"}
@@ -1,15 +1,8 @@
1
1
  import { parseUnits } from 'viem';
2
- /**
3
- * Parse human-readable amount to wei/smallest unit
4
- * @param amount - Human-readable amount (e.g. 1.5)
5
- * @param decimals - Token decimals
6
- * @returns Amount in smallest unit (wei equivalent)
7
- */
8
- export function parseAssetAmount(amount, decimals) {
9
- // Convert number to string with proper precision
10
- const amountStr = amount.toString();
11
- // Use viem's parseUnits for proper decimal handling
12
- return parseUnits(amountStr, decimals);
2
+ export function parseAssetAmount(asset, amount) {
3
+ if (amount === undefined)
4
+ return undefined;
5
+ return parseUnits(amount.toString(), asset.metadata.decimals);
13
6
  }
14
7
  /**
15
8
  * Convert wei/smallest unit back to human-readable amount
@@ -27,6 +20,14 @@ export function formatAssetAmount(amount, decimals) {
27
20
  const result = `${wholePart}.${fractionalStr}`;
28
21
  return parseFloat(result);
29
22
  }
23
+ /**
24
+ * Check if asset is a native asset (e.g. ETH)
25
+ * @param asset - Asset definition
26
+ * @returns Whether the asset is native
27
+ */
28
+ export function isNativeAsset(asset) {
29
+ return asset.type === 'native';
30
+ }
30
31
  /**
31
32
  * Check if asset is supported on a specific chain
32
33
  * @param asset - Asset definition
@@ -41,13 +42,16 @@ export function isAssetSupportedOnChain(asset, chainId) {
41
42
  * @param asset - Asset definition
42
43
  * @param chainId - Chain ID
43
44
  * @returns Asset address on the specified chain
44
- * @throws Error if asset is not supported on the chain
45
+ * @throws Error if asset is not supported on the chain or is a native asset
45
46
  */
46
47
  export function getAssetAddress(asset, chainId) {
47
48
  const address = asset.address[chainId];
48
49
  if (!address) {
49
50
  throw new Error(`Asset ${asset.metadata.symbol} is not supported on chain ${chainId}`);
50
51
  }
52
+ if (address === 'native') {
53
+ throw new Error(`Asset ${asset.metadata.symbol} is a native asset and has no contract address.`);
54
+ }
51
55
  return address;
52
56
  }
53
57
  //# sourceMappingURL=assets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAKjC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAAgB;IAC/D,iDAAiD;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAEnC,oDAAoD;IACpD,OAAO,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,QAAgB;IAChE,oCAAoC;IACpC,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;IAClC,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAA;IAEvC,+CAA+C;IAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,aAAa,EAAE,CAAA;IAE9C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAY,EACZ,OAAyB;IAEzB,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,OAAyB;IAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,CAAC,QAAQ,CAAC,MAAM,8BAA8B,OAAO,EAAE,CACtE,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAcjC,MAAM,UAAU,gBAAgB,CAC9B,KAAY,EACZ,MAA0B;IAE1B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,QAAgB;IAChE,oCAAoC;IACpC,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;IAClC,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAA;IAEvC,+CAA+C;IAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,aAAa,EAAE,CAAA;IAE9C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAY,EACZ,OAAyB;IAEzB,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,OAAyB;IAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,CAAC,QAAQ,CAAC,MAAM,8BAA8B,OAAO,EAAE,CACtE,CAAA;IACH,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,CAAC,QAAQ,CAAC,MAAM,iDAAiD,CAChF,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, it } from 'vitest';
2
- import { MockUSDCAsset, MockWETHAsset } from '../test/MockAssets.js';
3
- import { isAssetSupportedOnChain } from './assets.js';
2
+ import { MockUSDCAsset, MockWETHAsset } from '../__mocks__/MockAssets.js';
3
+ import { isAssetSupportedOnChain, parseAssetAmount } from './assets.js';
4
4
  describe('Asset Utilities', () => {
5
5
  describe('isAssetSupportedOnChain', () => {
6
6
  it('should return true for asset on supported chain', () => {
@@ -20,5 +20,17 @@ describe('Asset Utilities', () => {
20
20
  expect(MockWETHAsset.type).toBe('erc20');
21
21
  });
22
22
  });
23
+ describe('parseAssetAmount', () => {
24
+ it('converts human-readable amount to wei using asset decimals', () => {
25
+ expect(parseAssetAmount(MockUSDCAsset, 100)).toBe(100000000n);
26
+ expect(parseAssetAmount(MockWETHAsset, 1)).toBe(1000000000000000000n);
27
+ });
28
+ it('returns undefined when amount is undefined', () => {
29
+ expect(parseAssetAmount(MockUSDCAsset, undefined)).toBeUndefined();
30
+ });
31
+ it('handles fractional amounts', () => {
32
+ expect(parseAssetAmount(MockUSDCAsset, 0.5)).toBe(500000n);
33
+ });
34
+ });
23
35
  });
24
36
  //# sourceMappingURL=assets.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.test.js","sourceRoot":"","sources":["../../src/utils/assets.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,uBAAuB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,CAAC,uBAAuB,CAAC,aAAa,EAAE,GAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAChD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"assets.test.js","sourceRoot":"","sources":["../../src/utils/assets.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE7E,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,uBAAuB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,CAAC,uBAAuB,CAAC,aAAa,EAAE,GAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAChD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC7D,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACvE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACpE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Seconds per year for APY calculations (365 days)
3
+ */
4
+ export declare const SECONDS_PER_YEAR = 31536000n;
5
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Seconds per year for APY calculations (365 days)
3
+ */
4
+ export const SECONDS_PER_YEAR = 31536000n;
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAA"}
@@ -0,0 +1,46 @@
1
+ import type { Address, PublicClient } from 'viem';
2
+ import type { TransactionData } from '../types/transaction.js';
3
+ /** Default Permit2 approval expiry: 30 days in seconds */
4
+ export declare const DEFAULT_PERMIT2_EXPIRY_SECONDS: number;
5
+ /**
6
+ * Permit2 allowance info
7
+ */
8
+ export interface Permit2Allowance {
9
+ amount: bigint;
10
+ expiration: number;
11
+ nonce: number;
12
+ }
13
+ /**
14
+ * Check Permit2 allowance for a token/spender pair
15
+ */
16
+ export declare function checkPermit2Allowance(params: {
17
+ publicClient: PublicClient;
18
+ permit2Address: Address;
19
+ owner: Address;
20
+ token: Address;
21
+ spender: Address;
22
+ }): Promise<Permit2Allowance>;
23
+ /**
24
+ * Build ERC20 token approval transaction to Permit2
25
+ */
26
+ export declare function buildTokenApprovalTx(token: Address, permit2Address: Address): TransactionData;
27
+ /**
28
+ * Build Permit2 approval transaction for a spender
29
+ */
30
+ export declare function buildPermit2ApprovalTx(params: {
31
+ permit2Address: Address;
32
+ token: Address;
33
+ spender: Address;
34
+ amount: bigint;
35
+ expirySeconds?: number;
36
+ }): TransactionData;
37
+ /**
38
+ * Check ERC20 token allowance
39
+ */
40
+ export declare function checkTokenAllowance(params: {
41
+ publicClient: PublicClient;
42
+ token: Address;
43
+ owner: Address;
44
+ spender: Address;
45
+ }): Promise<bigint>;
46
+ //# sourceMappingURL=permit2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permit2.d.ts","sourceRoot":"","sources":["../../src/utils/permit2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAGjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,0DAA0D;AAC1D,eAAO,MAAM,8BAA8B,QAAoB,CAAA;AAmC/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACjB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAe5B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,OAAO,GACtB,eAAe,CAcjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,eAAe,CAiBlB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACjB,GAAG,OAAO,CAAC,MAAM,CAAC,CASlB"}
@@ -0,0 +1,100 @@
1
+ import { encodeFunctionData, erc20Abi, maxUint256 } from 'viem';
2
+ /** Default Permit2 approval expiry: 30 days in seconds */
3
+ export const DEFAULT_PERMIT2_EXPIRY_SECONDS = 30 * 24 * 60 * 60;
4
+ /**
5
+ * Permit2 ABI (subset for approvals)
6
+ */
7
+ const PERMIT2_ABI = [
8
+ {
9
+ name: 'allowance',
10
+ type: 'function',
11
+ stateMutability: 'view',
12
+ inputs: [
13
+ { name: 'owner', type: 'address' },
14
+ { name: 'token', type: 'address' },
15
+ { name: 'spender', type: 'address' },
16
+ ],
17
+ outputs: [
18
+ { name: 'amount', type: 'uint160' },
19
+ { name: 'expiration', type: 'uint48' },
20
+ { name: 'nonce', type: 'uint48' },
21
+ ],
22
+ },
23
+ {
24
+ name: 'approve',
25
+ type: 'function',
26
+ stateMutability: 'nonpayable',
27
+ inputs: [
28
+ { name: 'token', type: 'address' },
29
+ { name: 'spender', type: 'address' },
30
+ { name: 'amount', type: 'uint160' },
31
+ { name: 'expiration', type: 'uint48' },
32
+ ],
33
+ outputs: [],
34
+ },
35
+ ];
36
+ /**
37
+ * Check Permit2 allowance for a token/spender pair
38
+ */
39
+ export async function checkPermit2Allowance(params) {
40
+ const { publicClient, permit2Address, owner, token, spender } = params;
41
+ const result = await publicClient.readContract({
42
+ address: permit2Address,
43
+ abi: PERMIT2_ABI,
44
+ functionName: 'allowance',
45
+ args: [owner, token, spender],
46
+ });
47
+ return {
48
+ amount: BigInt(result[0]),
49
+ expiration: Number(result[1]),
50
+ nonce: Number(result[2]),
51
+ };
52
+ }
53
+ /**
54
+ * Build ERC20 token approval transaction to Permit2
55
+ */
56
+ export function buildTokenApprovalTx(token, permit2Address) {
57
+ const data = encodeFunctionData({
58
+ abi: erc20Abi,
59
+ functionName: 'approve',
60
+ // ERC20 -> Permit2: maxUint256 is the Uniswap-canonical pattern.
61
+ // Permit2 is immutable with no owner — spending is scoped by its own allowance system.
62
+ args: [permit2Address, maxUint256],
63
+ });
64
+ return {
65
+ to: token,
66
+ data,
67
+ value: 0n,
68
+ };
69
+ }
70
+ /**
71
+ * Build Permit2 approval transaction for a spender
72
+ */
73
+ export function buildPermit2ApprovalTx(params) {
74
+ const { permit2Address, token, spender, amount } = params;
75
+ const expiration = Math.floor(Date.now() / 1000) +
76
+ (params.expirySeconds ?? DEFAULT_PERMIT2_EXPIRY_SECONDS);
77
+ const data = encodeFunctionData({
78
+ abi: PERMIT2_ABI,
79
+ functionName: 'approve',
80
+ args: [token, spender, amount, expiration],
81
+ });
82
+ return {
83
+ to: permit2Address,
84
+ data,
85
+ value: 0n,
86
+ };
87
+ }
88
+ /**
89
+ * Check ERC20 token allowance
90
+ */
91
+ export async function checkTokenAllowance(params) {
92
+ const { publicClient, token, owner, spender } = params;
93
+ return publicClient.readContract({
94
+ address: token,
95
+ abi: erc20Abi,
96
+ functionName: 'allowance',
97
+ args: [owner, spender],
98
+ });
99
+ }
100
+ //# sourceMappingURL=permit2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permit2.js","sourceRoot":"","sources":["../../src/utils/permit2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=permit2.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permit2.test.d.ts","sourceRoot":"","sources":["../../src/utils/permit2.test.ts"],"names":[],"mappings":""}