@eth-optimism/actions-sdk 0.5.0 → 0.6.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 (778) hide show
  1. package/dist/__tests__/actions.test.js +1 -1
  2. package/dist/__tests__/actions.test.js.map +1 -1
  3. package/dist/{lend → actions/lend}/__mocks__/MockLendProvider.d.ts +6 -6
  4. package/dist/actions/lend/__mocks__/MockLendProvider.d.ts.map +1 -0
  5. package/dist/{lend → actions/lend}/__mocks__/MockLendProvider.js +20 -7
  6. package/dist/actions/lend/__mocks__/MockLendProvider.js.map +1 -0
  7. package/dist/{lend → actions/lend}/__mocks__/MockMarkets.d.ts +1 -1
  8. package/dist/actions/lend/__mocks__/MockMarkets.d.ts.map +1 -0
  9. package/dist/{lend → actions/lend}/__mocks__/MockMarkets.js +1 -1
  10. package/dist/actions/lend/__mocks__/MockMarkets.js.map +1 -0
  11. package/dist/{lend → actions/lend}/__mocks__/mockLendTransaction.d.ts +2 -2
  12. package/dist/actions/lend/__mocks__/mockLendTransaction.d.ts.map +1 -0
  13. package/dist/{lend → actions/lend}/__mocks__/mockLendTransaction.js +1 -1
  14. package/dist/actions/lend/__mocks__/mockLendTransaction.js.map +1 -0
  15. package/dist/{lend → actions/lend}/core/LendProvider.d.ts +38 -22
  16. package/dist/actions/lend/core/LendProvider.d.ts.map +1 -0
  17. package/dist/{lend → actions/lend}/core/LendProvider.js +61 -22
  18. package/dist/actions/lend/core/LendProvider.js.map +1 -0
  19. package/dist/actions/lend/core/__tests__/LendProvider.test.d.ts.map +1 -0
  20. package/dist/{lend → actions/lend}/core/__tests__/LendProvider.test.js +57 -3
  21. package/dist/actions/lend/core/__tests__/LendProvider.test.js.map +1 -0
  22. package/dist/actions/lend/index.d.ts.map +1 -0
  23. package/dist/actions/lend/index.js.map +1 -0
  24. package/dist/actions/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -0
  25. package/dist/actions/lend/namespaces/ActionsLendNamespace.js.map +1 -0
  26. package/dist/actions/lend/namespaces/BaseLendNamespace.d.ts +33 -0
  27. package/dist/actions/lend/namespaces/BaseLendNamespace.d.ts.map +1 -0
  28. package/dist/{lend → actions/lend}/namespaces/BaseLendNamespace.js +11 -24
  29. package/dist/actions/lend/namespaces/BaseLendNamespace.js.map +1 -0
  30. package/dist/{lend → actions/lend}/namespaces/WalletLendNamespace.d.ts +8 -11
  31. package/dist/actions/lend/namespaces/WalletLendNamespace.d.ts.map +1 -0
  32. package/dist/{lend → actions/lend}/namespaces/WalletLendNamespace.js +13 -15
  33. package/dist/actions/lend/namespaces/WalletLendNamespace.js.map +1 -0
  34. package/dist/actions/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts.map +1 -0
  35. package/dist/{lend → actions/lend}/namespaces/__tests__/ActionsLendNamespace.spec.js +1 -1
  36. package/dist/actions/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +1 -0
  37. package/dist/actions/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts.map +1 -0
  38. package/dist/{lend → actions/lend}/namespaces/__tests__/BaseLendNamespace.spec.js +2 -2
  39. package/dist/actions/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -0
  40. package/dist/actions/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts.map +1 -0
  41. package/dist/{lend → actions/lend}/namespaces/__tests__/WalletLendNamespace.spec.js +5 -5
  42. package/dist/actions/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -0
  43. package/dist/{lend → actions/lend}/providers/aave/AaveLendProvider.d.ts +18 -20
  44. package/dist/actions/lend/providers/aave/AaveLendProvider.d.ts.map +1 -0
  45. package/dist/{lend → actions/lend}/providers/aave/AaveLendProvider.js +56 -54
  46. package/dist/actions/lend/providers/aave/AaveLendProvider.js.map +1 -0
  47. package/dist/{lend → actions/lend}/providers/aave/__mocks__/mockReserve.d.ts +1 -1
  48. package/dist/actions/lend/providers/aave/__mocks__/mockReserve.d.ts.map +1 -0
  49. package/dist/actions/lend/providers/aave/__mocks__/mockReserve.js.map +1 -0
  50. package/dist/actions/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts.map +1 -0
  51. package/dist/{lend → actions/lend}/providers/aave/__tests__/AaveLendProvider.test.js +4 -4
  52. package/dist/actions/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -0
  53. package/dist/actions/lend/providers/aave/abis/pool.d.ts.map +1 -0
  54. package/dist/actions/lend/providers/aave/abis/pool.js.map +1 -0
  55. package/dist/actions/lend/providers/aave/addresses.d.ts.map +1 -0
  56. package/dist/actions/lend/providers/aave/addresses.js.map +1 -0
  57. package/dist/{lend → actions/lend}/providers/aave/sdk.d.ts +4 -4
  58. package/dist/actions/lend/providers/aave/sdk.d.ts.map +1 -0
  59. package/dist/{lend → actions/lend}/providers/aave/sdk.js +10 -5
  60. package/dist/actions/lend/providers/aave/sdk.js.map +1 -0
  61. package/dist/{lend → actions/lend}/providers/morpho/MorphoLendProvider.d.ts +18 -14
  62. package/dist/actions/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -0
  63. package/dist/{lend → actions/lend}/providers/morpho/MorphoLendProvider.js +48 -44
  64. package/dist/actions/lend/providers/morpho/MorphoLendProvider.js.map +1 -0
  65. package/dist/actions/lend/providers/morpho/__mocks__/mockVault.d.ts.map +1 -0
  66. package/dist/actions/lend/providers/morpho/__mocks__/mockVault.js.map +1 -0
  67. package/dist/actions/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts.map +1 -0
  68. package/dist/{lend → actions/lend}/providers/morpho/__tests__/MorphoLendProvider.test.js +58 -3
  69. package/dist/actions/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +1 -0
  70. package/dist/actions/lend/providers/morpho/__tests__/api.test.d.ts.map +1 -0
  71. package/dist/{lend → actions/lend}/providers/morpho/__tests__/api.test.js +2 -2
  72. package/dist/actions/lend/providers/morpho/__tests__/api.test.js.map +1 -0
  73. package/dist/actions/lend/providers/morpho/__tests__/sdk.test.d.ts.map +1 -0
  74. package/dist/{lend → actions/lend}/providers/morpho/__tests__/sdk.test.js +1 -1
  75. package/dist/actions/lend/providers/morpho/__tests__/sdk.test.js.map +1 -0
  76. package/dist/actions/lend/providers/morpho/api.d.ts.map +1 -0
  77. package/dist/actions/lend/providers/morpho/api.js.map +1 -0
  78. package/dist/{lend → actions/lend}/providers/morpho/sdk.d.ts +4 -4
  79. package/dist/actions/lend/providers/morpho/sdk.d.ts.map +1 -0
  80. package/dist/{lend → actions/lend}/providers/morpho/sdk.js +18 -7
  81. package/dist/actions/lend/providers/morpho/sdk.js.map +1 -0
  82. package/dist/actions/lend/utils/markets.d.ts +26 -0
  83. package/dist/actions/lend/utils/markets.d.ts.map +1 -0
  84. package/dist/actions/lend/utils/markets.js +44 -0
  85. package/dist/actions/lend/utils/markets.js.map +1 -0
  86. package/dist/actions/shared/BaseNamespace.d.ts +29 -0
  87. package/dist/actions/shared/BaseNamespace.d.ts.map +1 -0
  88. package/dist/actions/shared/BaseNamespace.js +31 -0
  89. package/dist/actions/shared/BaseNamespace.js.map +1 -0
  90. package/dist/actions/shared/__tests__/BaseNamespace.spec.d.ts +2 -0
  91. package/dist/actions/shared/__tests__/BaseNamespace.spec.d.ts.map +1 -0
  92. package/dist/actions/shared/__tests__/BaseNamespace.spec.js +42 -0
  93. package/dist/actions/shared/__tests__/BaseNamespace.spec.js.map +1 -0
  94. package/dist/{lend/providers → actions/shared}/morpho/contracts.d.ts +1 -1
  95. package/dist/actions/shared/morpho/contracts.d.ts.map +1 -0
  96. package/dist/{lend/providers → actions/shared}/morpho/contracts.js.map +1 -1
  97. package/dist/{types/lend/contracts.d.ts → actions/shared/morpho/types.d.ts} +2 -2
  98. package/dist/actions/shared/morpho/types.d.ts.map +1 -0
  99. package/dist/actions/shared/morpho/types.js.map +1 -0
  100. package/dist/{swap → actions/swap}/__mocks__/MockSwapProvider.d.ts +7 -6
  101. package/dist/actions/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
  102. package/dist/{swap → actions/swap}/__mocks__/MockSwapProvider.js +5 -2
  103. package/dist/actions/swap/__mocks__/MockSwapProvider.js.map +1 -0
  104. package/dist/{swap → actions/swap}/core/SwapProvider.d.ts +29 -14
  105. package/dist/actions/swap/core/SwapProvider.d.ts.map +1 -0
  106. package/dist/{swap → actions/swap}/core/SwapProvider.js +57 -38
  107. package/dist/actions/swap/core/SwapProvider.js.map +1 -0
  108. package/dist/actions/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
  109. package/dist/{swap → actions/swap}/core/__tests__/SwapProvider.test.js +39 -0
  110. package/dist/actions/swap/core/__tests__/SwapProvider.test.js.map +1 -0
  111. package/dist/{swap → actions/swap}/core/markets.d.ts +3 -3
  112. package/dist/actions/swap/core/markets.d.ts.map +1 -0
  113. package/dist/{swap → actions/swap}/core/markets.js +2 -1
  114. package/dist/actions/swap/core/markets.js.map +1 -0
  115. package/dist/actions/swap/index.d.ts.map +1 -0
  116. package/dist/actions/swap/index.js.map +1 -0
  117. package/dist/actions/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
  118. package/dist/actions/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
  119. package/dist/{swap → actions/swap}/namespaces/BaseSwapNamespace.d.ts +25 -28
  120. package/dist/actions/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
  121. package/dist/{swap → actions/swap}/namespaces/BaseSwapNamespace.js +58 -59
  122. package/dist/actions/swap/namespaces/BaseSwapNamespace.js.map +1 -0
  123. package/dist/actions/swap/namespaces/WalletSwapNamespace.d.ts +56 -0
  124. package/dist/actions/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
  125. package/dist/{swap → actions/swap}/namespaces/WalletSwapNamespace.js +43 -23
  126. package/dist/actions/swap/namespaces/WalletSwapNamespace.js.map +1 -0
  127. package/dist/actions/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
  128. package/dist/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.js +2 -2
  129. package/dist/actions/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
  130. package/dist/actions/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
  131. package/dist/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.js +83 -19
  132. package/dist/actions/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
  133. package/dist/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.d.ts +8 -5
  134. package/dist/actions/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
  135. package/dist/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.js +14 -5
  136. package/dist/actions/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
  137. package/dist/actions/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
  138. package/dist/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.js +1 -1
  139. package/dist/actions/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
  140. package/dist/actions/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
  141. package/dist/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.js +47 -1
  142. package/dist/actions/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
  143. package/dist/actions/swap/providers/uniswap/abis.d.ts.map +1 -0
  144. package/dist/actions/swap/providers/uniswap/abis.js.map +1 -0
  145. package/dist/{swap → actions/swap}/providers/uniswap/addresses.d.ts +1 -1
  146. package/dist/actions/swap/providers/uniswap/addresses.d.ts.map +1 -0
  147. package/dist/{swap → actions/swap}/providers/uniswap/addresses.js +6 -2
  148. package/dist/actions/swap/providers/uniswap/addresses.js.map +1 -0
  149. package/dist/{swap → actions/swap}/providers/uniswap/encoding.d.ts +3 -3
  150. package/dist/actions/swap/providers/uniswap/encoding.d.ts.map +1 -0
  151. package/dist/{swap → actions/swap}/providers/uniswap/encoding.js +2 -2
  152. package/dist/actions/swap/providers/uniswap/encoding.js.map +1 -0
  153. package/dist/{swap → actions/swap}/providers/uniswap/markets.d.ts +3 -3
  154. package/dist/actions/swap/providers/uniswap/markets.d.ts.map +1 -0
  155. package/dist/{swap → actions/swap}/providers/uniswap/markets.js +1 -1
  156. package/dist/actions/swap/providers/uniswap/markets.js.map +1 -0
  157. package/dist/{swap → actions/swap}/providers/uniswap/types.d.ts +1 -1
  158. package/dist/actions/swap/providers/uniswap/types.d.ts.map +1 -0
  159. package/dist/actions/swap/providers/uniswap/types.js.map +1 -0
  160. package/dist/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.d.ts +9 -4
  161. package/dist/actions/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +1 -0
  162. package/dist/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.js +37 -11
  163. package/dist/actions/swap/providers/velodrome/VelodromeSwapProvider.js.map +1 -0
  164. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +1 -0
  165. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +1 -0
  166. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +1 -0
  167. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js +7 -6
  168. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +1 -0
  169. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +1 -0
  170. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.js +39 -4
  171. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +1 -0
  172. package/dist/actions/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +1 -0
  173. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.js +22 -1
  174. package/dist/actions/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +1 -0
  175. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.d.ts +1 -1
  176. package/dist/actions/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +1 -0
  177. package/dist/actions/swap/providers/velodrome/__tests__/encoding.helpers.js.map +1 -0
  178. package/dist/actions/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +1 -0
  179. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.js +25 -1
  180. package/dist/actions/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +1 -0
  181. package/dist/actions/swap/providers/velodrome/abis.d.ts.map +1 -0
  182. package/dist/actions/swap/providers/velodrome/abis.js.map +1 -0
  183. package/dist/{swap → actions/swap}/providers/velodrome/addresses.d.ts +1 -1
  184. package/dist/actions/swap/providers/velodrome/addresses.d.ts.map +1 -0
  185. package/dist/actions/swap/providers/velodrome/addresses.js.map +1 -0
  186. package/dist/{swap → actions/swap}/providers/velodrome/config.d.ts +1 -1
  187. package/dist/actions/swap/providers/velodrome/config.d.ts.map +1 -0
  188. package/dist/{swap → actions/swap}/providers/velodrome/config.js +5 -1
  189. package/dist/actions/swap/providers/velodrome/config.js.map +1 -0
  190. package/dist/{swap → actions/swap}/providers/velodrome/encoding/helpers.d.ts +3 -3
  191. package/dist/actions/swap/providers/velodrome/encoding/helpers.d.ts.map +1 -0
  192. package/dist/{swap → actions/swap}/providers/velodrome/encoding/helpers.js +4 -3
  193. package/dist/actions/swap/providers/velodrome/encoding/helpers.js.map +1 -0
  194. package/dist/{swap → actions/swap}/providers/velodrome/encoding/index.d.ts +0 -1
  195. package/dist/actions/swap/providers/velodrome/encoding/index.d.ts.map +1 -0
  196. package/dist/{swap → actions/swap}/providers/velodrome/encoding/index.js +0 -1
  197. package/dist/actions/swap/providers/velodrome/encoding/index.js.map +1 -0
  198. package/dist/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.d.ts +3 -3
  199. package/dist/actions/swap/providers/velodrome/encoding/poolRouter.d.ts.map +1 -0
  200. package/dist/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.js +2 -1
  201. package/dist/actions/swap/providers/velodrome/encoding/poolRouter.js.map +1 -0
  202. package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.d.ts +24 -3
  203. package/dist/actions/swap/providers/velodrome/encoding/routers/cl.d.ts.map +1 -0
  204. package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.js +22 -10
  205. package/dist/actions/swap/providers/velodrome/encoding/routers/cl.js.map +1 -0
  206. package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.d.ts +23 -3
  207. package/dist/actions/swap/providers/velodrome/encoding/routers/v2.d.ts.map +1 -0
  208. package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.js +24 -13
  209. package/dist/actions/swap/providers/velodrome/encoding/routers/v2.js.map +1 -0
  210. package/dist/{swap → actions/swap}/providers/velodrome/markets.d.ts +3 -3
  211. package/dist/actions/swap/providers/velodrome/markets.d.ts.map +1 -0
  212. package/dist/{swap → actions/swap}/providers/velodrome/markets.js +4 -3
  213. package/dist/actions/swap/providers/velodrome/markets.js.map +1 -0
  214. package/dist/{swap → actions/swap}/providers/velodrome/types.d.ts +1 -1
  215. package/dist/actions/swap/providers/velodrome/types.d.ts.map +1 -0
  216. package/dist/actions/swap/providers/velodrome/types.js +2 -0
  217. package/dist/actions/swap/providers/velodrome/types.js.map +1 -0
  218. package/dist/actions.d.ts +4 -3
  219. package/dist/actions.d.ts.map +1 -1
  220. package/dist/actions.js +45 -22
  221. package/dist/actions.js.map +1 -1
  222. package/dist/core/error/__tests__/errors.test.d.ts +2 -0
  223. package/dist/core/error/__tests__/errors.test.d.ts.map +1 -0
  224. package/dist/core/error/__tests__/errors.test.js +195 -0
  225. package/dist/core/error/__tests__/errors.test.js.map +1 -0
  226. package/dist/core/error/errors.d.ts +131 -15
  227. package/dist/core/error/errors.d.ts.map +1 -1
  228. package/dist/core/error/errors.js +201 -17
  229. package/dist/core/error/errors.js.map +1 -1
  230. package/dist/index.d.ts +7 -5
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +6 -4
  233. package/dist/index.js.map +1 -1
  234. package/dist/services/ChainManager.d.ts.map +1 -1
  235. package/dist/services/ChainManager.js +26 -7
  236. package/dist/services/ChainManager.js.map +1 -1
  237. package/dist/services/__tests__/ChainManager.spec.d.ts.map +1 -0
  238. package/dist/services/{ChainManager.spec.js → __tests__/ChainManager.spec.js} +7 -7
  239. package/dist/services/__tests__/ChainManager.spec.js.map +1 -0
  240. package/dist/services/__tests__/tokenBalance.spec.d.ts.map +1 -0
  241. package/dist/services/{tokenBalance.spec.js → __tests__/tokenBalance.spec.js} +42 -5
  242. package/dist/services/__tests__/tokenBalance.spec.js.map +1 -0
  243. package/dist/{ens → services/nameservices/ens}/EnsNamespace.d.ts +1 -1
  244. package/dist/services/nameservices/ens/EnsNamespace.d.ts.map +1 -0
  245. package/dist/{ens → services/nameservices/ens}/EnsNamespace.js +1 -1
  246. package/dist/services/nameservices/ens/EnsNamespace.js.map +1 -0
  247. package/dist/services/nameservices/ens/__tests__/EnsNamespace.spec.d.ts.map +1 -0
  248. package/dist/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.js +2 -2
  249. package/dist/services/nameservices/ens/__tests__/EnsNamespace.spec.js.map +1 -0
  250. package/dist/services/nameservices/ens/__tests__/utils.spec.d.ts +2 -0
  251. package/dist/services/nameservices/ens/__tests__/utils.spec.d.ts.map +1 -0
  252. package/dist/{utils/ens.test.js → services/nameservices/ens/__tests__/utils.spec.js} +3 -3
  253. package/dist/services/nameservices/ens/__tests__/utils.spec.js.map +1 -0
  254. package/dist/services/nameservices/ens/errors.d.ts.map +1 -0
  255. package/dist/services/nameservices/ens/errors.js.map +1 -0
  256. package/dist/{ens → services/nameservices/ens}/index.d.ts +1 -0
  257. package/dist/services/nameservices/ens/index.d.ts.map +1 -0
  258. package/dist/{ens → services/nameservices/ens}/index.js +1 -0
  259. package/dist/services/nameservices/ens/index.js.map +1 -0
  260. package/dist/{ens → services/nameservices/ens}/types.d.ts +1 -1
  261. package/dist/services/nameservices/ens/types.d.ts.map +1 -0
  262. package/dist/services/nameservices/ens/types.js.map +1 -0
  263. package/dist/{utils/ens.d.ts → services/nameservices/ens/utils.d.ts} +3 -3
  264. package/dist/services/nameservices/ens/utils.d.ts.map +1 -0
  265. package/dist/{utils/ens.js → services/nameservices/ens/utils.js} +3 -3
  266. package/dist/services/nameservices/ens/utils.js.map +1 -0
  267. package/dist/services/tokenBalance.d.ts +8 -5
  268. package/dist/services/tokenBalance.d.ts.map +1 -1
  269. package/dist/services/tokenBalance.js +15 -8
  270. package/dist/services/tokenBalance.js.map +1 -1
  271. package/dist/types/actions.d.ts +69 -7
  272. package/dist/types/actions.d.ts.map +1 -1
  273. package/dist/types/asset.d.ts +7 -0
  274. package/dist/types/asset.d.ts.map +1 -1
  275. package/dist/types/common/FilterAssetChain.d.ts +13 -0
  276. package/dist/types/common/FilterAssetChain.d.ts.map +1 -0
  277. package/dist/types/common/FilterAssetChain.js +2 -0
  278. package/dist/types/common/FilterAssetChain.js.map +1 -0
  279. package/dist/types/common/TransactionOptions.d.ts +13 -0
  280. package/dist/types/common/TransactionOptions.d.ts.map +1 -0
  281. package/dist/types/common/TransactionOptions.js +2 -0
  282. package/dist/types/common/TransactionOptions.js.map +1 -0
  283. package/dist/types/common/index.d.ts +3 -0
  284. package/dist/types/common/index.d.ts.map +1 -0
  285. package/dist/types/common/index.js +3 -0
  286. package/dist/types/common/index.js.map +1 -0
  287. package/dist/types/index.d.ts +1 -0
  288. package/dist/types/index.d.ts.map +1 -1
  289. package/dist/types/index.js +1 -0
  290. package/dist/types/index.js.map +1 -1
  291. package/dist/types/lend/base.d.ts +44 -34
  292. package/dist/types/lend/base.d.ts.map +1 -1
  293. package/dist/types/lend/base.js +3 -3
  294. package/dist/types/lend/base.js.map +1 -1
  295. package/dist/types/lend/index.d.ts +0 -1
  296. package/dist/types/lend/index.d.ts.map +1 -1
  297. package/dist/types/lend/index.js +0 -1
  298. package/dist/types/lend/index.js.map +1 -1
  299. package/dist/types/providers.d.ts +2 -2
  300. package/dist/types/providers.d.ts.map +1 -1
  301. package/dist/types/swap/base.d.ts +25 -13
  302. package/dist/types/swap/base.d.ts.map +1 -1
  303. package/dist/types/swap/base.js +3 -3
  304. package/dist/types/swap/base.js.map +1 -1
  305. package/dist/utils/__tests__/approve.test.d.ts.map +1 -0
  306. package/dist/utils/{approve.test.js → __tests__/approve.test.js} +40 -18
  307. package/dist/utils/__tests__/approve.test.js.map +1 -0
  308. package/dist/utils/__tests__/assets.test.d.ts.map +1 -0
  309. package/dist/utils/{assets.test.js → __tests__/assets.test.js} +2 -2
  310. package/dist/utils/__tests__/assets.test.js.map +1 -0
  311. package/dist/utils/__tests__/serializers.test.d.ts +2 -0
  312. package/dist/utils/__tests__/serializers.test.d.ts.map +1 -0
  313. package/dist/utils/__tests__/serializers.test.js +43 -0
  314. package/dist/utils/__tests__/serializers.test.js.map +1 -0
  315. package/dist/utils/__tests__/validateAddresses.test.d.ts.map +1 -0
  316. package/dist/utils/{validateAddresses.test.js → __tests__/validateAddresses.test.js} +10 -10
  317. package/dist/utils/__tests__/validateAddresses.test.js.map +1 -0
  318. package/dist/utils/abi/permit2.d.ts +48 -0
  319. package/dist/utils/abi/permit2.d.ts.map +1 -0
  320. package/dist/utils/abi/permit2.js +34 -0
  321. package/dist/utils/abi/permit2.js.map +1 -0
  322. package/dist/utils/approve.d.ts +26 -3
  323. package/dist/utils/approve.d.ts.map +1 -1
  324. package/dist/utils/approve.js +34 -37
  325. package/dist/utils/approve.js.map +1 -1
  326. package/dist/utils/assets.d.ts.map +1 -1
  327. package/dist/utils/assets.js +3 -2
  328. package/dist/utils/assets.js.map +1 -1
  329. package/dist/utils/serializers.d.ts +16 -0
  330. package/dist/utils/serializers.d.ts.map +1 -0
  331. package/dist/utils/serializers.js +18 -0
  332. package/dist/utils/serializers.js.map +1 -0
  333. package/dist/utils/validation.d.ts +8 -1
  334. package/dist/utils/validation.d.ts.map +1 -1
  335. package/dist/utils/validation.js +28 -8
  336. package/dist/utils/validation.js.map +1 -1
  337. package/dist/wallet/core/error/errors.d.ts +21 -0
  338. package/dist/wallet/core/error/errors.d.ts.map +1 -0
  339. package/dist/wallet/core/error/errors.js +24 -0
  340. package/dist/wallet/core/error/errors.js.map +1 -0
  341. package/dist/wallet/core/namespace/WalletNamespace.d.ts +24 -8
  342. package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
  343. package/dist/wallet/core/namespace/WalletNamespace.js +48 -17
  344. package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
  345. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +105 -10
  346. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
  347. package/dist/wallet/core/providers/WalletProvider.d.ts +3 -2
  348. package/dist/wallet/core/providers/WalletProvider.d.ts.map +1 -1
  349. package/dist/wallet/core/providers/WalletProvider.js +8 -2
  350. package/dist/wallet/core/providers/WalletProvider.js.map +1 -1
  351. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +1 -1
  352. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
  353. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.d.ts.map +1 -1
  354. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js +2 -1
  355. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js.map +1 -1
  356. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +1 -1
  357. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -1
  358. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +1 -1
  359. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
  360. package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.d.ts +2 -0
  361. package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.d.ts.map +1 -0
  362. package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.js +31 -0
  363. package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.js.map +1 -0
  364. package/dist/wallet/core/utils/__tests__/retryOnStaleRead.spec.d.ts.map +1 -0
  365. package/dist/wallet/core/utils/__tests__/retryOnStaleRead.spec.js.map +1 -0
  366. package/dist/wallet/core/utils/executeTransactionBatch.d.ts +22 -0
  367. package/dist/wallet/core/utils/executeTransactionBatch.d.ts.map +1 -0
  368. package/dist/wallet/core/utils/executeTransactionBatch.js +26 -0
  369. package/dist/wallet/core/utils/executeTransactionBatch.js.map +1 -0
  370. package/dist/wallet/core/utils/retryOnStaleRead.d.ts.map +1 -0
  371. package/dist/wallet/core/utils/retryOnStaleRead.js.map +1 -0
  372. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +8 -8
  373. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  374. package/dist/wallet/core/wallets/abstract/Wallet.js +13 -12
  375. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  376. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +3 -3
  377. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -1
  378. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -1
  379. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +28 -2
  380. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
  381. package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts +1 -1
  382. package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts.map +1 -1
  383. package/dist/wallet/core/wallets/eoa/EOAWallet.js.map +1 -1
  384. package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts +1 -1
  385. package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts.map +1 -1
  386. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +1 -1
  387. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  388. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +2 -2
  389. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  390. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +1 -1
  391. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
  392. package/dist/wallet/node/index.d.ts +1 -0
  393. package/dist/wallet/node/index.d.ts.map +1 -1
  394. package/dist/wallet/node/index.js +1 -0
  395. package/dist/wallet/node/index.js.map +1 -1
  396. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -1
  397. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  398. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +1 -1
  399. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
  400. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +1 -1
  401. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
  402. package/dist/wallet/node/wallets/local/LocalWallet.d.ts +24 -0
  403. package/dist/wallet/node/wallets/local/LocalWallet.d.ts.map +1 -0
  404. package/dist/wallet/node/wallets/local/LocalWallet.js +21 -0
  405. package/dist/wallet/node/wallets/local/LocalWallet.js.map +1 -0
  406. package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.d.ts +2 -0
  407. package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.d.ts.map +1 -0
  408. package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.js +51 -0
  409. package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.js.map +1 -0
  410. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -1
  411. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
  412. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -1
  413. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  414. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +1 -1
  415. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
  416. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +1 -1
  417. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
  418. package/package.json +2 -2
  419. package/src/__tests__/actions.test.ts +3 -1
  420. package/src/{lend → actions/lend}/__mocks__/MockLendProvider.ts +24 -9
  421. package/src/{lend → actions/lend}/__mocks__/mockLendTransaction.ts +2 -2
  422. package/src/{lend → actions/lend}/core/LendProvider.ts +123 -39
  423. package/src/{lend → actions/lend}/core/__tests__/LendProvider.test.ts +82 -3
  424. package/src/actions/lend/index.ts +3 -0
  425. package/src/{lend → actions/lend}/namespaces/BaseLendNamespace.ts +20 -37
  426. package/src/{lend → actions/lend}/namespaces/WalletLendNamespace.ts +15 -22
  427. package/src/{lend → actions/lend}/namespaces/__tests__/ActionsLendNamespace.spec.ts +3 -3
  428. package/src/{lend → actions/lend}/namespaces/__tests__/BaseLendNamespace.spec.ts +3 -3
  429. package/src/{lend → actions/lend}/namespaces/__tests__/WalletLendNamespace.spec.ts +6 -6
  430. package/src/{lend → actions/lend}/providers/aave/AaveLendProvider.ts +65 -73
  431. package/src/{lend → actions/lend}/providers/aave/__tests__/AaveLendProvider.test.ts +7 -7
  432. package/src/{lend → actions/lend}/providers/aave/sdk.ts +15 -9
  433. package/src/{lend → actions/lend}/providers/morpho/MorphoLendProvider.ts +67 -53
  434. package/src/{lend → actions/lend}/providers/morpho/__tests__/MorphoLendProvider.test.ts +79 -5
  435. package/src/{lend → actions/lend}/providers/morpho/__tests__/api.test.ts +3 -3
  436. package/src/{lend → actions/lend}/providers/morpho/__tests__/sdk.test.ts +2 -2
  437. package/src/{lend → actions/lend}/providers/morpho/sdk.ts +23 -12
  438. package/src/actions/lend/utils/markets.ts +62 -0
  439. package/src/actions/shared/BaseNamespace.ts +46 -0
  440. package/src/actions/shared/__tests__/BaseNamespace.spec.ts +58 -0
  441. package/src/{lend/providers → actions/shared}/morpho/contracts.ts +2 -2
  442. package/src/{swap → actions/swap}/__mocks__/MockSwapProvider.ts +6 -2
  443. package/src/{swap → actions/swap}/core/SwapProvider.ts +88 -55
  444. package/src/{swap → actions/swap}/core/__tests__/SwapProvider.test.ts +51 -1
  445. package/src/{swap → actions/swap}/core/markets.ts +2 -1
  446. package/src/actions/swap/index.ts +19 -0
  447. package/src/{swap → actions/swap}/namespaces/ActionsSwapNamespace.ts +1 -1
  448. package/src/{swap → actions/swap}/namespaces/BaseSwapNamespace.ts +92 -90
  449. package/src/actions/swap/namespaces/WalletSwapNamespace.ts +154 -0
  450. package/src/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.ts +6 -6
  451. package/src/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.ts +110 -22
  452. package/src/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.ts +34 -14
  453. package/src/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +2 -2
  454. package/src/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.ts +65 -3
  455. package/src/{swap → actions/swap}/providers/uniswap/addresses.ts +5 -1
  456. package/src/{swap → actions/swap}/providers/uniswap/encoding.ts +3 -3
  457. package/src/{swap → actions/swap}/providers/uniswap/markets.ts +2 -2
  458. package/src/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.ts +71 -31
  459. package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.ts +2 -2
  460. package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.ts +8 -7
  461. package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.ts +46 -5
  462. package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.ts +31 -2
  463. package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.ts +34 -3
  464. package/src/{swap → actions/swap}/providers/velodrome/config.ts +5 -1
  465. package/src/{swap → actions/swap}/providers/velodrome/encoding/helpers.ts +3 -2
  466. package/src/{swap → actions/swap}/providers/velodrome/encoding/index.ts +0 -1
  467. package/src/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.ts +4 -3
  468. package/src/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.ts +31 -23
  469. package/src/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.ts +34 -27
  470. package/src/{swap → actions/swap}/providers/velodrome/markets.ts +4 -3
  471. package/src/actions.ts +68 -37
  472. package/src/core/error/__tests__/errors.test.ts +236 -0
  473. package/src/core/error/errors.ts +282 -22
  474. package/src/index.ts +18 -12
  475. package/src/services/ChainManager.ts +26 -9
  476. package/src/services/{ChainManager.spec.ts → __tests__/ChainManager.spec.ts} +6 -6
  477. package/src/services/{tokenBalance.spec.ts → __tests__/tokenBalance.spec.ts} +56 -1
  478. package/src/{ens → services/nameservices/ens}/EnsNamespace.ts +1 -1
  479. package/src/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.ts +6 -4
  480. package/src/{utils/ens.test.ts → services/nameservices/ens/__tests__/utils.spec.ts} +3 -2
  481. package/src/{ens → services/nameservices/ens}/index.ts +5 -0
  482. package/src/{utils/ens.ts → services/nameservices/ens/utils.ts} +3 -3
  483. package/src/services/tokenBalance.ts +16 -7
  484. package/src/types/actions.ts +72 -7
  485. package/src/types/asset.ts +8 -0
  486. package/src/types/common/FilterAssetChain.ts +13 -0
  487. package/src/types/common/TransactionOptions.ts +12 -0
  488. package/src/types/common/index.ts +2 -0
  489. package/src/types/index.ts +1 -0
  490. package/src/types/lend/base.ts +48 -36
  491. package/src/types/lend/index.ts +0 -1
  492. package/src/types/providers.ts +2 -2
  493. package/src/types/swap/base.ts +25 -13
  494. package/src/utils/{approve.test.ts → __tests__/approve.test.ts} +51 -18
  495. package/src/utils/__tests__/serializers.test.ts +53 -0
  496. package/src/utils/{validateAddresses.test.ts → __tests__/validateAddresses.test.ts} +9 -9
  497. package/src/utils/abi/permit2.ts +33 -0
  498. package/src/utils/approve.ts +48 -37
  499. package/src/utils/assets.ts +6 -6
  500. package/src/utils/serializers.ts +21 -0
  501. package/src/utils/validation.ts +42 -15
  502. package/src/wallet/core/error/errors.ts +30 -0
  503. package/src/wallet/core/namespace/WalletNamespace.ts +82 -20
  504. package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +141 -16
  505. package/src/wallet/core/providers/WalletProvider.ts +12 -3
  506. package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +1 -1
  507. package/src/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.ts +2 -1
  508. package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +1 -1
  509. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +1 -1
  510. package/src/wallet/core/utils/__tests__/executeTransactionBatch.spec.ts +42 -0
  511. package/src/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.ts +1 -1
  512. package/src/wallet/core/utils/executeTransactionBatch.ts +37 -0
  513. package/src/wallet/core/wallets/abstract/Wallet.ts +17 -15
  514. package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +3 -3
  515. package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +54 -3
  516. package/src/wallet/core/wallets/eoa/EOAWallet.ts +1 -1
  517. package/src/wallet/core/wallets/smart/abstract/SmartWallet.ts +1 -1
  518. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +3 -3
  519. package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +1 -1
  520. package/src/wallet/node/index.ts +1 -0
  521. package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -1
  522. package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +1 -1
  523. package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +1 -1
  524. package/src/wallet/node/wallets/local/LocalWallet.ts +48 -0
  525. package/src/wallet/node/wallets/local/__tests__/LocalWallet.spec.ts +64 -0
  526. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -1
  527. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -1
  528. package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +1 -1
  529. package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +1 -1
  530. package/dist/core/asset/__mocks__/mockAsset.d.ts +0 -6
  531. package/dist/core/asset/__mocks__/mockAsset.d.ts.map +0 -1
  532. package/dist/core/asset/__mocks__/mockAsset.js +0 -12
  533. package/dist/core/asset/__mocks__/mockAsset.js.map +0 -1
  534. package/dist/core/utils/__tests__/retryOnStaleRead.spec.d.ts.map +0 -1
  535. package/dist/core/utils/__tests__/retryOnStaleRead.spec.js.map +0 -1
  536. package/dist/core/utils/retryOnStaleRead.d.ts.map +0 -1
  537. package/dist/core/utils/retryOnStaleRead.js.map +0 -1
  538. package/dist/ens/EnsNamespace.d.ts.map +0 -1
  539. package/dist/ens/EnsNamespace.js.map +0 -1
  540. package/dist/ens/EnsNamespace.spec.d.ts.map +0 -1
  541. package/dist/ens/EnsNamespace.spec.js.map +0 -1
  542. package/dist/ens/errors.d.ts.map +0 -1
  543. package/dist/ens/errors.js.map +0 -1
  544. package/dist/ens/index.d.ts.map +0 -1
  545. package/dist/ens/index.js.map +0 -1
  546. package/dist/ens/types.d.ts.map +0 -1
  547. package/dist/ens/types.js.map +0 -1
  548. package/dist/lend/__mocks__/MockLendProvider.d.ts.map +0 -1
  549. package/dist/lend/__mocks__/MockLendProvider.js.map +0 -1
  550. package/dist/lend/__mocks__/MockMarkets.d.ts.map +0 -1
  551. package/dist/lend/__mocks__/MockMarkets.js.map +0 -1
  552. package/dist/lend/__mocks__/mockLendTransaction.d.ts.map +0 -1
  553. package/dist/lend/__mocks__/mockLendTransaction.js.map +0 -1
  554. package/dist/lend/core/LendProvider.d.ts.map +0 -1
  555. package/dist/lend/core/LendProvider.js.map +0 -1
  556. package/dist/lend/core/__tests__/LendProvider.test.d.ts.map +0 -1
  557. package/dist/lend/core/__tests__/LendProvider.test.js.map +0 -1
  558. package/dist/lend/index.d.ts.map +0 -1
  559. package/dist/lend/index.js.map +0 -1
  560. package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +0 -1
  561. package/dist/lend/namespaces/ActionsLendNamespace.js.map +0 -1
  562. package/dist/lend/namespaces/BaseLendNamespace.d.ts +0 -43
  563. package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +0 -1
  564. package/dist/lend/namespaces/BaseLendNamespace.js.map +0 -1
  565. package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +0 -1
  566. package/dist/lend/namespaces/WalletLendNamespace.js.map +0 -1
  567. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts.map +0 -1
  568. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +0 -1
  569. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts.map +0 -1
  570. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +0 -1
  571. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts.map +0 -1
  572. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +0 -1
  573. package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +0 -1
  574. package/dist/lend/providers/aave/AaveLendProvider.js.map +0 -1
  575. package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts.map +0 -1
  576. package/dist/lend/providers/aave/__mocks__/mockReserve.js.map +0 -1
  577. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts.map +0 -1
  578. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +0 -1
  579. package/dist/lend/providers/aave/abis/pool.d.ts.map +0 -1
  580. package/dist/lend/providers/aave/abis/pool.js.map +0 -1
  581. package/dist/lend/providers/aave/addresses.d.ts.map +0 -1
  582. package/dist/lend/providers/aave/addresses.js.map +0 -1
  583. package/dist/lend/providers/aave/sdk.d.ts.map +0 -1
  584. package/dist/lend/providers/aave/sdk.js.map +0 -1
  585. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +0 -1
  586. package/dist/lend/providers/morpho/MorphoLendProvider.js.map +0 -1
  587. package/dist/lend/providers/morpho/__mocks__/mockVault.d.ts.map +0 -1
  588. package/dist/lend/providers/morpho/__mocks__/mockVault.js.map +0 -1
  589. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts.map +0 -1
  590. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +0 -1
  591. package/dist/lend/providers/morpho/__tests__/api.test.d.ts.map +0 -1
  592. package/dist/lend/providers/morpho/__tests__/api.test.js.map +0 -1
  593. package/dist/lend/providers/morpho/__tests__/sdk.test.d.ts.map +0 -1
  594. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +0 -1
  595. package/dist/lend/providers/morpho/api.d.ts.map +0 -1
  596. package/dist/lend/providers/morpho/api.js.map +0 -1
  597. package/dist/lend/providers/morpho/contracts.d.ts.map +0 -1
  598. package/dist/lend/providers/morpho/sdk.d.ts.map +0 -1
  599. package/dist/lend/providers/morpho/sdk.js.map +0 -1
  600. package/dist/services/ChainManager.spec.d.ts.map +0 -1
  601. package/dist/services/ChainManager.spec.js.map +0 -1
  602. package/dist/services/tokenBalance.spec.d.ts.map +0 -1
  603. package/dist/services/tokenBalance.spec.js.map +0 -1
  604. package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +0 -1
  605. package/dist/swap/__mocks__/MockSwapProvider.js.map +0 -1
  606. package/dist/swap/core/SwapProvider.d.ts.map +0 -1
  607. package/dist/swap/core/SwapProvider.js.map +0 -1
  608. package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +0 -1
  609. package/dist/swap/core/__tests__/SwapProvider.test.js.map +0 -1
  610. package/dist/swap/core/markets.d.ts.map +0 -1
  611. package/dist/swap/core/markets.js.map +0 -1
  612. package/dist/swap/index.d.ts.map +0 -1
  613. package/dist/swap/index.js.map +0 -1
  614. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +0 -1
  615. package/dist/swap/namespaces/ActionsSwapNamespace.js.map +0 -1
  616. package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +0 -1
  617. package/dist/swap/namespaces/BaseSwapNamespace.js.map +0 -1
  618. package/dist/swap/namespaces/WalletSwapNamespace.d.ts +0 -35
  619. package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +0 -1
  620. package/dist/swap/namespaces/WalletSwapNamespace.js.map +0 -1
  621. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +0 -1
  622. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +0 -1
  623. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +0 -1
  624. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +0 -1
  625. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +0 -1
  626. package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +0 -1
  627. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +0 -1
  628. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +0 -1
  629. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +0 -1
  630. package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +0 -1
  631. package/dist/swap/providers/uniswap/abis.d.ts.map +0 -1
  632. package/dist/swap/providers/uniswap/abis.js.map +0 -1
  633. package/dist/swap/providers/uniswap/addresses.d.ts.map +0 -1
  634. package/dist/swap/providers/uniswap/addresses.js.map +0 -1
  635. package/dist/swap/providers/uniswap/encoding.d.ts.map +0 -1
  636. package/dist/swap/providers/uniswap/encoding.js.map +0 -1
  637. package/dist/swap/providers/uniswap/markets.d.ts.map +0 -1
  638. package/dist/swap/providers/uniswap/markets.js.map +0 -1
  639. package/dist/swap/providers/uniswap/types.d.ts.map +0 -1
  640. package/dist/swap/providers/uniswap/types.js.map +0 -1
  641. package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +0 -1
  642. package/dist/swap/providers/velodrome/VelodromeSwapProvider.js.map +0 -1
  643. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +0 -1
  644. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +0 -1
  645. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +0 -1
  646. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +0 -1
  647. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +0 -1
  648. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +0 -1
  649. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +0 -1
  650. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +0 -1
  651. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +0 -1
  652. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js.map +0 -1
  653. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +0 -1
  654. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +0 -1
  655. package/dist/swap/providers/velodrome/abis.d.ts.map +0 -1
  656. package/dist/swap/providers/velodrome/abis.js.map +0 -1
  657. package/dist/swap/providers/velodrome/addresses.d.ts.map +0 -1
  658. package/dist/swap/providers/velodrome/addresses.js.map +0 -1
  659. package/dist/swap/providers/velodrome/config.d.ts.map +0 -1
  660. package/dist/swap/providers/velodrome/config.js.map +0 -1
  661. package/dist/swap/providers/velodrome/encoding/helpers.d.ts.map +0 -1
  662. package/dist/swap/providers/velodrome/encoding/helpers.js.map +0 -1
  663. package/dist/swap/providers/velodrome/encoding/index.d.ts.map +0 -1
  664. package/dist/swap/providers/velodrome/encoding/index.js.map +0 -1
  665. package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts.map +0 -1
  666. package/dist/swap/providers/velodrome/encoding/poolRouter.js.map +0 -1
  667. package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts +0 -15
  668. package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts.map +0 -1
  669. package/dist/swap/providers/velodrome/encoding/routers/approval.js +0 -33
  670. package/dist/swap/providers/velodrome/encoding/routers/approval.js.map +0 -1
  671. package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts.map +0 -1
  672. package/dist/swap/providers/velodrome/encoding/routers/cl.js.map +0 -1
  673. package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts.map +0 -1
  674. package/dist/swap/providers/velodrome/encoding/routers/v2.js.map +0 -1
  675. package/dist/swap/providers/velodrome/markets.d.ts.map +0 -1
  676. package/dist/swap/providers/velodrome/markets.js.map +0 -1
  677. package/dist/swap/providers/velodrome/types.d.ts.map +0 -1
  678. package/dist/swap/providers/velodrome/types.js.map +0 -1
  679. package/dist/types/lend/contracts.d.ts.map +0 -1
  680. package/dist/types/lend/contracts.js +0 -2
  681. package/dist/types/lend/contracts.js.map +0 -1
  682. package/dist/utils/approve.test.d.ts.map +0 -1
  683. package/dist/utils/approve.test.js.map +0 -1
  684. package/dist/utils/assets.test.d.ts.map +0 -1
  685. package/dist/utils/assets.test.js.map +0 -1
  686. package/dist/utils/ens.d.ts.map +0 -1
  687. package/dist/utils/ens.js.map +0 -1
  688. package/dist/utils/ens.test.d.ts +0 -2
  689. package/dist/utils/ens.test.d.ts.map +0 -1
  690. package/dist/utils/ens.test.js.map +0 -1
  691. package/dist/utils/markets.d.ts +0 -17
  692. package/dist/utils/markets.d.ts.map +0 -1
  693. package/dist/utils/markets.js +0 -25
  694. package/dist/utils/markets.js.map +0 -1
  695. package/dist/utils/validateAddresses.test.d.ts.map +0 -1
  696. package/dist/utils/validateAddresses.test.js.map +0 -1
  697. package/src/core/asset/__mocks__/mockAsset.ts +0 -13
  698. package/src/lend/index.ts +0 -3
  699. package/src/swap/index.ts +0 -19
  700. package/src/swap/namespaces/WalletSwapNamespace.ts +0 -129
  701. package/src/swap/providers/velodrome/encoding/routers/approval.ts +0 -45
  702. package/src/utils/markets.ts +0 -35
  703. /package/dist/{lend → actions/lend}/core/__tests__/LendProvider.test.d.ts +0 -0
  704. /package/dist/{lend → actions/lend}/index.d.ts +0 -0
  705. /package/dist/{lend → actions/lend}/index.js +0 -0
  706. /package/dist/{lend → actions/lend}/namespaces/ActionsLendNamespace.d.ts +0 -0
  707. /package/dist/{lend → actions/lend}/namespaces/ActionsLendNamespace.js +0 -0
  708. /package/dist/{lend → actions/lend}/namespaces/__tests__/ActionsLendNamespace.spec.d.ts +0 -0
  709. /package/dist/{lend → actions/lend}/namespaces/__tests__/BaseLendNamespace.spec.d.ts +0 -0
  710. /package/dist/{lend → actions/lend}/namespaces/__tests__/WalletLendNamespace.spec.d.ts +0 -0
  711. /package/dist/{lend → actions/lend}/providers/aave/__mocks__/mockReserve.js +0 -0
  712. /package/dist/{lend → actions/lend}/providers/aave/__tests__/AaveLendProvider.test.d.ts +0 -0
  713. /package/dist/{lend → actions/lend}/providers/aave/abis/pool.d.ts +0 -0
  714. /package/dist/{lend → actions/lend}/providers/aave/abis/pool.js +0 -0
  715. /package/dist/{lend → actions/lend}/providers/aave/addresses.d.ts +0 -0
  716. /package/dist/{lend → actions/lend}/providers/aave/addresses.js +0 -0
  717. /package/dist/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.d.ts +0 -0
  718. /package/dist/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.js +0 -0
  719. /package/dist/{lend → actions/lend}/providers/morpho/__tests__/MorphoLendProvider.test.d.ts +0 -0
  720. /package/dist/{lend → actions/lend}/providers/morpho/__tests__/api.test.d.ts +0 -0
  721. /package/dist/{lend → actions/lend}/providers/morpho/__tests__/sdk.test.d.ts +0 -0
  722. /package/dist/{lend → actions/lend}/providers/morpho/api.d.ts +0 -0
  723. /package/dist/{lend → actions/lend}/providers/morpho/api.js +0 -0
  724. /package/dist/{lend/providers → actions/shared}/morpho/contracts.js +0 -0
  725. /package/dist/{swap/providers/uniswap → actions/shared/morpho}/types.js +0 -0
  726. /package/dist/{swap → actions/swap}/core/__tests__/SwapProvider.test.d.ts +0 -0
  727. /package/dist/{swap → actions/swap}/index.d.ts +0 -0
  728. /package/dist/{swap → actions/swap}/index.js +0 -0
  729. /package/dist/{swap → actions/swap}/namespaces/ActionsSwapNamespace.d.ts +0 -0
  730. /package/dist/{swap → actions/swap}/namespaces/ActionsSwapNamespace.js +0 -0
  731. /package/dist/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +0 -0
  732. /package/dist/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +0 -0
  733. /package/dist/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +0 -0
  734. /package/dist/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.d.ts +0 -0
  735. /package/dist/{swap → actions/swap}/providers/uniswap/abis.d.ts +0 -0
  736. /package/dist/{swap → actions/swap}/providers/uniswap/abis.js +0 -0
  737. /package/dist/{swap/providers/velodrome → actions/swap/providers/uniswap}/types.js +0 -0
  738. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts +0 -0
  739. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js +0 -0
  740. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts +0 -0
  741. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts +0 -0
  742. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.d.ts +0 -0
  743. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.js +0 -0
  744. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.d.ts +0 -0
  745. /package/dist/{swap → actions/swap}/providers/velodrome/abis.d.ts +0 -0
  746. /package/dist/{swap → actions/swap}/providers/velodrome/abis.js +0 -0
  747. /package/dist/{swap → actions/swap}/providers/velodrome/addresses.js +0 -0
  748. /package/dist/services/{ChainManager.spec.d.ts → __tests__/ChainManager.spec.d.ts} +0 -0
  749. /package/dist/services/{tokenBalance.spec.d.ts → __tests__/tokenBalance.spec.d.ts} +0 -0
  750. /package/dist/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.d.ts +0 -0
  751. /package/dist/{ens → services/nameservices/ens}/errors.d.ts +0 -0
  752. /package/dist/{ens → services/nameservices/ens}/errors.js +0 -0
  753. /package/dist/{ens → services/nameservices/ens}/types.js +0 -0
  754. /package/dist/utils/{approve.test.d.ts → __tests__/approve.test.d.ts} +0 -0
  755. /package/dist/utils/{assets.test.d.ts → __tests__/assets.test.d.ts} +0 -0
  756. /package/dist/utils/{validateAddresses.test.d.ts → __tests__/validateAddresses.test.d.ts} +0 -0
  757. /package/dist/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.d.ts +0 -0
  758. /package/dist/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.js +0 -0
  759. /package/dist/{core → wallet/core}/utils/retryOnStaleRead.d.ts +0 -0
  760. /package/dist/{core → wallet/core}/utils/retryOnStaleRead.js +0 -0
  761. /package/src/{lend → actions/lend}/__mocks__/MockMarkets.ts +0 -0
  762. /package/src/{lend → actions/lend}/namespaces/ActionsLendNamespace.ts +0 -0
  763. /package/src/{lend → actions/lend}/providers/aave/__mocks__/mockReserve.ts +0 -0
  764. /package/src/{lend → actions/lend}/providers/aave/abis/pool.ts +0 -0
  765. /package/src/{lend → actions/lend}/providers/aave/addresses.ts +0 -0
  766. /package/src/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.ts +0 -0
  767. /package/src/{lend → actions/lend}/providers/morpho/api.ts +0 -0
  768. /package/src/{types/lend/contracts.ts → actions/shared/morpho/types.ts} +0 -0
  769. /package/src/{swap → actions/swap}/providers/uniswap/abis.ts +0 -0
  770. /package/src/{swap → actions/swap}/providers/uniswap/types.ts +0 -0
  771. /package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.ts +0 -0
  772. /package/src/{swap → actions/swap}/providers/velodrome/abis.ts +0 -0
  773. /package/src/{swap → actions/swap}/providers/velodrome/addresses.ts +0 -0
  774. /package/src/{swap → actions/swap}/providers/velodrome/types.ts +0 -0
  775. /package/src/{ens → services/nameservices/ens}/errors.ts +0 -0
  776. /package/src/{ens → services/nameservices/ens}/types.ts +0 -0
  777. /package/src/utils/{assets.test.ts → __tests__/assets.test.ts} +0 -0
  778. /package/src/{core → wallet/core}/utils/retryOnStaleRead.ts +0 -0
@@ -1,11 +1,11 @@
1
1
  import { mainnet } from 'viem/chains'
2
2
  import { describe, expect, it } from 'vitest'
3
3
 
4
- import { MORPHO, USDC } from '@/constants/assets.js'
5
4
  import {
6
5
  calculateBaseApy,
7
6
  calculateRewardsBreakdown,
8
- } from '@/lend/providers/morpho/sdk.js'
7
+ } from '@/actions/lend/providers/morpho/sdk.js'
8
+ import { MORPHO, USDC } from '@/constants/assets.js'
9
9
 
10
10
  const CHAIN_ID = mainnet.id
11
11
  const USDC_ADDRESS = USDC.address[CHAIN_ID]!.toLowerCase()
@@ -7,12 +7,18 @@ import {
7
7
  } from '@morpho-org/blue-sdk-viem'
8
8
  import type { Address, PublicClient } from 'viem'
9
9
 
10
- import { NATIVELY_SUPPORTED_ASSETS } from '@/constants/assets.js'
11
10
  import {
12
11
  fetchRewards,
13
12
  type RewardsBreakdown,
14
- } from '@/lend/providers/morpho/api.js'
15
- import { getMorphoContracts } from '@/lend/providers/morpho/contracts.js'
13
+ } from '@/actions/lend/providers/morpho/api.js'
14
+ import { getMorphoContracts } from '@/actions/shared/morpho/contracts.js'
15
+ import type { MorphoContracts } from '@/actions/shared/morpho/types.js'
16
+ import { NATIVELY_SUPPORTED_ASSETS } from '@/constants/assets.js'
17
+ import {
18
+ ChainNotSupportedError,
19
+ MarketNotAllowedError,
20
+ ProviderNotConfiguredError,
21
+ } from '@/core/error/errors.js'
16
22
  import type { ChainManager } from '@/services/ChainManager.js'
17
23
  import type { LendProviderConfig } from '@/types/actions.js'
18
24
  import type { Asset } from '@/types/asset.js'
@@ -21,7 +27,6 @@ import type {
21
27
  LendMarket,
22
28
  LendMarketConfig,
23
29
  LendMarketId,
24
- MorphoContracts,
25
30
  } from '@/types/lend/index.js'
26
31
  import { SECONDS_PER_YEAR } from '@/utils/constants.js'
27
32
 
@@ -337,9 +342,11 @@ export async function getVault(params: GetVaultParams): Promise<LendMarket> {
337
342
  : undefined
338
343
 
339
344
  if (!marketConfig) {
340
- throw new Error(
341
- `Market ${params.marketId.address} on chain ${params.marketId.chainId} not found in allowlist`,
342
- )
345
+ throw new MarketNotAllowedError({
346
+ address: params.marketId.address,
347
+ chainId: params.marketId.chainId,
348
+ reason: 'Market not found in allowlist',
349
+ })
343
350
  }
344
351
 
345
352
  const publicClient = params.chainManager.getPublicClient(
@@ -400,9 +407,7 @@ export async function getVault(params: GetVaultParams): Promise<LendMarket> {
400
407
  }
401
408
 
402
409
  // No SDK support and no contracts configured
403
- throw new Error(
404
- `Chain ${params.marketId.chainId} not supported by Morpho SDK and no contracts configured`,
405
- )
410
+ throw new ChainNotSupportedError({ chainId: params.marketId.chainId })
406
411
  }
407
412
 
408
413
  interface GetVaultsParams {
@@ -447,7 +452,10 @@ export async function findBestVaultForAsset(
447
452
  marketAllowlist: LendMarketConfig[],
448
453
  ): Promise<Address> {
449
454
  if (!marketAllowlist || marketAllowlist.length === 0) {
450
- throw new Error('Market allowlist is required and cannot be empty')
455
+ throw new ProviderNotConfiguredError({
456
+ provider: 'marketAllowlist',
457
+ details: 'Market allowlist is required and cannot be empty',
458
+ })
451
459
  }
452
460
 
453
461
  const assetVaults = marketAllowlist.filter((vault) => {
@@ -456,7 +464,10 @@ export async function findBestVaultForAsset(
456
464
  })
457
465
 
458
466
  if (assetVaults.length === 0) {
459
- throw new Error(`No vaults available for asset ${asset}`)
467
+ throw new MarketNotAllowedError({
468
+ chainId: 0,
469
+ reason: `No vaults available for asset ${asset}`,
470
+ })
460
471
  }
461
472
 
462
473
  // For now, return the first (and only) supported vault for the asset
@@ -0,0 +1,62 @@
1
+ import type { SupportedChainId } from '@/constants/supportedChains.js'
2
+ import { MarketNotAllowedError } from '@/core/error/errors.js'
3
+ import type { Asset } from '@/types/asset.js'
4
+ import type {
5
+ LendMarket,
6
+ LendMarketConfig,
7
+ LendMarketId,
8
+ } from '@/types/lend/index.js'
9
+
10
+ /**
11
+ * Find a market config in an allowlist by address + chainId (case-insensitive on address).
12
+ * @description Shared between `BaseLendNamespace.getProviderForMarket` and
13
+ * `MorphoLendProvider._getPosition` to avoid duplicate match logic.
14
+ * @param allowlist - Optional list of allowed markets (undefined or empty → always returns undefined)
15
+ * @param marketId - Market identifier to look up
16
+ * @returns The matching market config, or undefined if not present
17
+ */
18
+ export function findMarketInAllowlist(
19
+ allowlist: readonly LendMarketConfig[] | undefined,
20
+ marketId: LendMarketId,
21
+ ): LendMarketConfig | undefined {
22
+ if (!allowlist || allowlist.length === 0) return undefined
23
+ return allowlist.find(
24
+ (m) =>
25
+ m.address.toLowerCase() === marketId.address.toLowerCase() &&
26
+ m.chainId === marketId.chainId,
27
+ )
28
+ }
29
+
30
+ /**
31
+ * Validates that an asset matches the market's asset
32
+ * @param market - Market information
33
+ * @param asset - Asset to validate
34
+ * @throws Error if asset doesn't match the market's asset
35
+ */
36
+ export function validateMarketAsset(market: LendMarket, asset: Asset): void {
37
+ if (!isMarketAsset(market, asset)) {
38
+ const marketAssetAddress =
39
+ market.asset.address[market.marketId.chainId as SupportedChainId]
40
+ const providedAssetAddress =
41
+ asset.address[market.marketId.chainId as SupportedChainId]
42
+ throw new MarketNotAllowedError({
43
+ address: market.marketId.address,
44
+ chainId: market.marketId.chainId,
45
+ reason: `Asset mismatch: provided ${providedAssetAddress} but market ${market.marketId.address} uses ${marketAssetAddress}`,
46
+ })
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Checks if an asset matches the market's asset
52
+ * @param market - Market information
53
+ * @param asset - Asset to check
54
+ * @returns true if asset matches market's asset, false otherwise
55
+ */
56
+ export function isMarketAsset(market: LendMarket, asset: Asset): boolean {
57
+ const marketAssetAddress =
58
+ market.asset.address[market.marketId.chainId as SupportedChainId]
59
+ const providedAssetAddress =
60
+ asset.address[market.marketId.chainId as SupportedChainId]
61
+ return marketAssetAddress === providedAssetAddress
62
+ }
@@ -0,0 +1,46 @@
1
+ import type { SupportedChainId } from '@/constants/supportedChains.js'
2
+
3
+ /**
4
+ * Minimum contract a concrete provider must expose for `BaseNamespace` to
5
+ * aggregate it. Domain providers (LendProvider, SwapProvider, BorrowProvider)
6
+ * implement this plus their domain-specific surface.
7
+ */
8
+ export interface NamespaceProvider {
9
+ supportedChainIds(): readonly SupportedChainId[]
10
+ }
11
+
12
+ /**
13
+ * Shared base for per-domain namespaces (Lend, Swap, Borrow, …).
14
+ * @description Holds the generic `providers` registry and exposes
15
+ * provider-enumeration + chain-union helpers every domain's namespace needs.
16
+ * Domain-specific routing and read operations live on the concrete
17
+ * `BaseXxxNamespace` subclass.
18
+ */
19
+ export abstract class BaseNamespace<
20
+ TProvider extends NamespaceProvider,
21
+ TProviders extends Record<string, TProvider | undefined>,
22
+ > {
23
+ constructor(protected readonly providers: TProviders) {}
24
+
25
+ /**
26
+ * Union of chain IDs supported by any configured provider.
27
+ */
28
+ supportedChainIds(): readonly SupportedChainId[] {
29
+ const chainIds = new Set<SupportedChainId>()
30
+ for (const provider of this.getAllProviders()) {
31
+ for (const chainId of provider.supportedChainIds()) {
32
+ chainIds.add(chainId)
33
+ }
34
+ }
35
+ return [...chainIds]
36
+ }
37
+
38
+ /**
39
+ * Enumerate every configured (non-undefined) provider.
40
+ */
41
+ protected getAllProviders(): TProvider[] {
42
+ return Object.values(this.providers).filter(
43
+ (p): p is TProvider => p !== undefined,
44
+ )
45
+ }
46
+ }
@@ -0,0 +1,58 @@
1
+ import { describe, expect, it } from 'vitest'
2
+
3
+ import {
4
+ BaseNamespace,
5
+ type NamespaceProvider,
6
+ } from '@/actions/shared/BaseNamespace.js'
7
+ import type { SupportedChainId } from '@/constants/supportedChains.js'
8
+
9
+ class FakeProvider implements NamespaceProvider {
10
+ constructor(private readonly chains: readonly SupportedChainId[]) {}
11
+ supportedChainIds(): readonly SupportedChainId[] {
12
+ return this.chains
13
+ }
14
+ }
15
+
16
+ type FakeProviders = {
17
+ morpho?: FakeProvider
18
+ aave?: FakeProvider
19
+ }
20
+
21
+ class TestNamespace extends BaseNamespace<FakeProvider, FakeProviders> {
22
+ providersSnapshot(): FakeProvider[] {
23
+ return this.getAllProviders()
24
+ }
25
+ }
26
+
27
+ describe('BaseNamespace', () => {
28
+ it('returns only configured providers (skips undefined)', () => {
29
+ const morpho = new FakeProvider([1, 10])
30
+ const ns = new TestNamespace({ morpho, aave: undefined })
31
+
32
+ expect(ns.providersSnapshot()).toEqual([morpho])
33
+ })
34
+
35
+ it('returns all providers when multiple are configured', () => {
36
+ const morpho = new FakeProvider([1])
37
+ const aave = new FakeProvider([10])
38
+ const ns = new TestNamespace({ morpho, aave })
39
+
40
+ expect(ns.providersSnapshot()).toEqual([morpho, aave])
41
+ })
42
+
43
+ it('returns empty array when no providers are configured', () => {
44
+ const ns = new TestNamespace({})
45
+ expect(ns.providersSnapshot()).toEqual([])
46
+ expect(ns.supportedChainIds()).toEqual([])
47
+ })
48
+
49
+ it('unions supported chain ids across providers, deduplicated', () => {
50
+ const morpho = new FakeProvider([1, 10, 8453])
51
+ const aave = new FakeProvider([10, 8453, 42220])
52
+ const ns = new TestNamespace({ morpho, aave })
53
+
54
+ expect([...ns.supportedChainIds()].sort((a, b) => a - b)).toEqual([
55
+ 1, 10, 8453, 42220,
56
+ ])
57
+ })
58
+ })
@@ -10,11 +10,11 @@ import {
10
10
  worldchain,
11
11
  } from 'viem/chains'
12
12
 
13
- import type { SupportedChainId } from '@/constants/supportedChains.js'
14
13
  import type {
15
14
  MorphoContracts,
16
15
  MorphoContractsRegistry,
17
- } from '@/types/lend/contracts.js'
16
+ } from '@/actions/shared/morpho/types.js'
17
+ import type { SupportedChainId } from '@/constants/supportedChains.js'
18
18
 
19
19
  /**
20
20
  * Morpho Blue core contract - same address on all chains via CREATE2
@@ -1,10 +1,10 @@
1
1
  import type { Address } from 'viem'
2
2
  import { type MockedFunction, vi } from 'vitest'
3
3
 
4
+ import { SwapProvider } from '@/actions/swap/core/SwapProvider.js'
4
5
  import type { SupportedChainId } from '@/constants/supportedChains.js'
5
6
  import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
6
7
  import type { ChainManager } from '@/services/ChainManager.js'
7
- import { SwapProvider } from '@/swap/core/SwapProvider.js'
8
8
  import type { SwapSettings } from '@/types/actions.js'
9
9
  import type { Asset } from '@/types/asset.js'
10
10
  import type {
@@ -110,6 +110,10 @@ export class MockSwapProvider extends SwapProvider<SwapProviderConfig> {
110
110
  return this.validateMarketAllowed(assetIn, assetOut, chainId)
111
111
  }
112
112
 
113
+ public testBuildSwapTransactions(quote: SwapQuote): Promise<SwapTransaction> {
114
+ return this.buildSwapTransactions(quote)
115
+ }
116
+
113
117
  protected async _execute(
114
118
  params: ResolvedSwapParams,
115
119
  ): Promise<SwapTransaction> {
@@ -202,7 +206,7 @@ export class MockSwapProvider extends SwapProvider<SwapProviderConfig> {
202
206
  quotedAt: now,
203
207
  expiresAt: deadline,
204
208
  gasEstimate: 150000n,
205
- quotedRecipient: (params.recipient ??
209
+ recipient: (params.recipient ??
206
210
  '0x0000000000000000000000000000000000000001') as Address,
207
211
  }
208
212
  }
@@ -1,15 +1,20 @@
1
1
  import type { Address } from 'viem'
2
2
  import { formatUnits } from 'viem'
3
3
 
4
+ import { UNIVERSAL_ROUTER_MSG_SENDER } from '@/actions/swap/core/markets.js'
4
5
  import type { SupportedChainId } from '@/constants/supportedChains.js'
5
6
  import { ACTIONS_SUPPORTED_CHAIN_IDS } from '@/constants/supportedChains.js'
7
+ import {
8
+ MarketNotAllowedError,
9
+ ProviderNotConfiguredError,
10
+ QuoteExpiredError,
11
+ } from '@/core/error/errors.js'
12
+ import type { ChainManager } from '@/services/ChainManager.js'
6
13
  import type {
7
14
  SwapExecuteParamsResolved,
8
15
  SwapQuoteParamsResolved,
9
- } from '@/ens/types.js'
10
- import type { ChainManager } from '@/services/ChainManager.js'
11
- import { UNIVERSAL_ROUTER_MSG_SENDER } from '@/swap/core/markets.js'
12
- import type { SwapSettings } from '@/types/actions.js'
16
+ } from '@/services/nameservices/ens/types.js'
17
+ import type { ApprovalMode, SwapSettings } from '@/types/actions.js'
13
18
  import type { Asset } from '@/types/asset.js'
14
19
  import type {
15
20
  GetSwapMarketParams,
@@ -29,6 +34,9 @@ import {
29
34
  buildTokenApprovalTx,
30
35
  checkPermit2Allowance,
31
36
  checkTokenAllowance,
37
+ resolveApprovalMode,
38
+ resolveErc20ApprovalAmount,
39
+ resolvePermit2ApprovalAmount,
32
40
  } from '@/utils/approve.js'
33
41
  import {
34
42
  getAssetAddress,
@@ -75,7 +83,7 @@ export abstract class SwapProvider<
75
83
  protected readonly _settings: SwapSettings
76
84
  protected readonly chainManager: ChainManager
77
85
 
78
- constructor(
86
+ protected constructor(
79
87
  config: TConfig,
80
88
  chainManager: ChainManager,
81
89
  settings?: SwapSettings,
@@ -135,9 +143,20 @@ export abstract class SwapProvider<
135
143
  async execute(
136
144
  params: SwapExecuteParamsResolved | SwapQuote,
137
145
  ): Promise<SwapTransaction> {
146
+ // Resolve approval mode once at entry; the resolved value is set back on
147
+ // the params object so all downstream methods read a single populated field.
148
+ const resolvedApprovalMode = resolveApprovalMode(
149
+ params.approvalMode,
150
+ this._config.approvalMode,
151
+ this._settings.approvalMode,
152
+ )
153
+
138
154
  if (QUOTE_DISCRIMINATOR in params) {
139
155
  this.validateSwapExecute(params)
140
- return this.executeFromQuote(params)
156
+ return this.executeFromQuote({
157
+ ...params,
158
+ approvalMode: resolvedApprovalMode,
159
+ })
141
160
  }
142
161
 
143
162
  this.validateSwapExecute(params)
@@ -145,7 +164,9 @@ export abstract class SwapProvider<
145
164
  // Raw params only
146
165
  validateNotBothAmounts(params.amountIn, params.amountOut)
147
166
  validateNotZeroAddress(params.walletAddress, 'walletAddress')
148
- return this._execute(this.resolveParams(params))
167
+ return this._execute(
168
+ this.resolveParams({ ...params, approvalMode: resolvedApprovalMode }),
169
+ )
149
170
  }
150
171
 
151
172
  /**
@@ -246,9 +267,12 @@ export abstract class SwapProvider<
246
267
  marketBlocklist,
247
268
  )
248
269
  if (isBlocked) {
249
- throw new Error(
250
- `Pair ${assetIn.metadata.symbol}/${assetOut.metadata.symbol} is blocked on chain ${chainId}`,
251
- )
270
+ throw new MarketNotAllowedError({
271
+ assetInSymbol: assetIn.metadata.symbol,
272
+ assetOutSymbol: assetOut.metadata.symbol,
273
+ chainId,
274
+ reason: 'Pair is blocked',
275
+ })
252
276
  }
253
277
  }
254
278
 
@@ -260,9 +284,12 @@ export abstract class SwapProvider<
260
284
  marketAllowlist,
261
285
  )
262
286
  if (!isAllowed) {
263
- throw new Error(
264
- `Pair ${assetIn.metadata.symbol}/${assetOut.metadata.symbol} is not in the allowlist for chain ${chainId}`,
265
- )
287
+ throw new MarketNotAllowedError({
288
+ assetInSymbol: assetIn.metadata.symbol,
289
+ assetOutSymbol: assetOut.metadata.symbol,
290
+ chainId,
291
+ reason: 'Pair is not in the allowlist',
292
+ })
266
293
  }
267
294
  }
268
295
  }
@@ -309,9 +336,10 @@ export abstract class SwapProvider<
309
336
  ): SwapMarketConfig | undefined {
310
337
  const { marketAllowlist } = this._config
311
338
  if (!marketAllowlist?.length) {
312
- throw new Error(
313
- 'No markets configured. Provide a marketAllowlist in swap provider config.',
314
- )
339
+ throw new ProviderNotConfiguredError({
340
+ provider: 'marketAllowlist',
341
+ details: 'Provide a marketAllowlist in swap provider config.',
342
+ })
315
343
  }
316
344
  return this.findMatchingConfig(assetIn, assetOut, chainId, marketAllowlist)
317
345
  }
@@ -320,7 +348,16 @@ export abstract class SwapProvider<
320
348
  * Build Permit2 approval transactions for an ERC20 swap input.
321
349
  * Skipped for native assets. Checks both ERC20→Permit2 and Permit2→spender allowances in parallel.
322
350
  * Uses the resolved `permit2ExpirationSeconds` from provider → global → default.
323
- * @param params - Resolved swap params (wallet address, asset info, chain)
351
+ *
352
+ * Approval amounts honour `params.approvalMode`:
353
+ * - `"exact"` approves only `requiredAmount` for both the outer ERC-20→Permit2
354
+ * allowance and the inner Permit2→spender allowance. Each subsequent swap
355
+ * needs its own approval transaction.
356
+ * - `"max"` approves `maxUint256` for the outer ERC-20 allowance and
357
+ * `maxUint160` (Permit2's allowance type) for the inner Permit2 allowance.
358
+ * Subsequent swaps within the expiration window skip the re-approval round
359
+ * trip entirely.
360
+ * @param params - Resolved swap params (wallet address, asset info, chain, approvalMode)
324
361
  * @param requiredAmount - Amount as raw bigint that must be approved
325
362
  * @param permit2Address - Permit2 contract address
326
363
  * @param permit2Spender - The router/contract that Permit2 should approve (e.g. Universal Router)
@@ -359,7 +396,11 @@ export abstract class SwapProvider<
359
396
 
360
397
  const tokenApproval =
361
398
  tokenAllowance < requiredAmount
362
- ? buildTokenApprovalTx(token, permit2Address)
399
+ ? buildTokenApprovalTx(
400
+ token,
401
+ permit2Address,
402
+ resolveErc20ApprovalAmount(params.approvalMode, requiredAmount),
403
+ )
363
404
  : undefined
364
405
 
365
406
  // Permit2 expiration is in Unix seconds (matching EVM block.timestamp)
@@ -371,7 +412,10 @@ export abstract class SwapProvider<
371
412
  permit2Address,
372
413
  token,
373
414
  spender: permit2Spender,
374
- amount: requiredAmount,
415
+ amount: resolvePermit2ApprovalAmount(
416
+ params.approvalMode,
417
+ requiredAmount,
418
+ ),
375
419
  expirySeconds: this.permit2ExpirationSeconds,
376
420
  })
377
421
  : undefined
@@ -380,13 +424,22 @@ export abstract class SwapProvider<
380
424
  }
381
425
 
382
426
  /**
383
- * Build a SwapTransaction from a quote by fetching approvals and wrapping the swap calldata.
384
- * Used by both the quote-execute path and provider _execute implementations.
385
- * @param quote - SwapQuote with recipient set for allowance checks
427
+ * Build a SwapTransaction from a quote by fetching approvals and wrapping
428
+ * the swap calldata. Used by both the quote-execute path and provider
429
+ * `_execute` implementations. Quotes are required to have `recipient` set
430
+ * by the provider's `_getQuote`; sub-providers can dereference
431
+ * `quote.recipient` directly. Reads `quote.approvalMode` (populated by
432
+ * `execute()` at entry).
433
+ * @param quote - SwapQuote with recipient and approvalMode set
386
434
  */
387
435
  protected async buildSwapTransactions(
388
436
  quote: SwapQuote,
389
437
  ): Promise<SwapTransaction> {
438
+ if (!quote.recipient) {
439
+ throw new Error(
440
+ 'SwapQuote.recipient missing — _getQuote must populate it',
441
+ )
442
+ }
390
443
  const approvals = await this._buildApprovals(quote)
391
444
 
392
445
  const swapTx: TransactionData = {
@@ -415,32 +468,6 @@ export abstract class SwapProvider<
415
468
  private async executeFromQuote(quote: SwapQuote): Promise<SwapTransaction> {
416
469
  this.validateQuoteExpiration(quote)
417
470
  validateNotZeroAddress(quote.execution.routerAddress, 'routerAddress')
418
-
419
- if (!quote.recipient) {
420
- throw new Error(
421
- 'SwapQuote.recipient is required for execution. Pass the quote through WalletSwapNamespace.execute() which injects the wallet address.',
422
- )
423
- }
424
-
425
- // If the recipient changed since the quote was built (e.g. quote from
426
- // ActionsSwapNamespace executed through WalletSwapNamespace), re-encode
427
- // calldata with the correct recipient to prevent tokens going to the wrong address.
428
- if (quote.recipient !== quote.quotedRecipient) {
429
- const freshQuote = await this._getQuote({
430
- assetIn: quote.assetIn,
431
- assetOut: quote.assetOut,
432
- amountIn: quote.amountIn,
433
- chainId: quote.chainId,
434
- slippage: quote.slippage,
435
- deadline: quote.deadline,
436
- recipient: quote.recipient,
437
- })
438
- return this.buildSwapTransactions({
439
- ...freshQuote,
440
- recipient: quote.recipient,
441
- })
442
- }
443
-
444
471
  return this.buildSwapTransactions(quote)
445
472
  }
446
473
 
@@ -454,19 +481,22 @@ export abstract class SwapProvider<
454
481
  validateAmountPositiveIfExists(params.amountIn)
455
482
  validateAmountPositiveIfExists(params.amountOut)
456
483
  validateSlippage(params.slippage ?? this.defaultSlippage, this.maxSlippage)
457
- validateRecipient('recipient' in params ? params.recipient : undefined)
484
+ validateRecipient(params.recipient)
458
485
  }
459
486
 
460
487
  private validateQuoteExpiration(quote: SwapQuote): void {
461
488
  const now = Math.floor(Date.now() / 1000)
462
489
  if (now >= quote.expiresAt) {
463
- throw new Error(
464
- `Quote expired at ${quote.expiresAt}, current time is ${now}`,
465
- )
490
+ throw new QuoteExpiredError({
491
+ expiresAt: quote.expiresAt,
492
+ currentTime: now,
493
+ })
466
494
  }
467
495
  }
468
496
 
469
- private resolveParams(params: SwapExecuteParamsResolved): ResolvedSwapParams {
497
+ private resolveParams(
498
+ params: SwapExecuteParamsResolved & { approvalMode: ApprovalMode },
499
+ ): ResolvedSwapParams {
470
500
  return {
471
501
  amountInRaw: parseAssetAmount(params.assetIn, params.amountIn),
472
502
  amountOutRaw: parseAssetAmount(params.assetOut, params.amountOut),
@@ -480,6 +510,7 @@ export abstract class SwapProvider<
480
510
  recipient: params.recipient ?? params.walletAddress,
481
511
  walletAddress: params.walletAddress,
482
512
  chainId: params.chainId,
513
+ approvalMode: params.approvalMode,
483
514
  }
484
515
  }
485
516
 
@@ -560,8 +591,10 @@ export abstract class SwapProvider<
560
591
 
561
592
  /**
562
593
  * Build provider-specific approval transactions for a swap.
563
- * Called by the base class during executeFromQuote with a validated recipient.
564
- * @param quote - SwapQuote with recipient set to the real wallet address
594
+ * Called by the base class during executeFromQuote with a validated
595
+ * recipient and resolved approvalMode. Implementations read
596
+ * `quote.approvalMode` to choose between exact and max approvals.
597
+ * @param quote - SwapQuote with recipient set by the provider's _getQuote and approvalMode populated by execute() at entry
565
598
  * @returns Approval transactions needed before the swap (tokenApproval, permit2Approval)
566
599
  */
567
600
  protected abstract _buildApprovals(
@@ -1,8 +1,8 @@
1
1
  import type { Address } from 'viem'
2
2
  import { describe, expect, it } from 'vitest'
3
3
 
4
+ import { MockSwapProvider } from '@/actions/swap/__mocks__/MockSwapProvider.js'
4
5
  import type { SupportedChainId } from '@/constants/supportedChains.js'
5
- import { MockSwapProvider } from '@/swap/__mocks__/MockSwapProvider.js'
6
6
  import type { Asset } from '@/types/asset.js'
7
7
  import type { SwapMarketConfig } from '@/types/swap/index.js'
8
8
 
@@ -225,6 +225,56 @@ describe('SwapProvider', () => {
225
225
  })
226
226
  })
227
227
 
228
+ describe('buildSwapTransactions()', () => {
229
+ it('passes quote.recipient through to _buildApprovals', async () => {
230
+ const provider = new MockSwapProvider()
231
+ const customRecipient =
232
+ '0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB' as Address
233
+ const quote = await provider.getQuote({
234
+ assetIn: MockUSDC,
235
+ assetOut: MockWETH,
236
+ amountIn: 100,
237
+ chainId: 84532 as SupportedChainId,
238
+ recipient: customRecipient,
239
+ })
240
+ expect(quote.recipient).toBe(customRecipient)
241
+
242
+ await provider.testBuildSwapTransactions(quote)
243
+
244
+ expect(provider.mockBuildApprovals).toHaveBeenCalledWith(
245
+ expect.objectContaining({ recipient: customRecipient }),
246
+ )
247
+ })
248
+
249
+ it('defaults quote.recipient to UNIVERSAL_ROUTER_MSG_SENDER when no recipient is provided', async () => {
250
+ const provider = new MockSwapProvider()
251
+ const quote = await provider.getQuote({
252
+ assetIn: MockUSDC,
253
+ assetOut: MockWETH,
254
+ amountIn: 100,
255
+ chainId: 84532 as SupportedChainId,
256
+ })
257
+ expect(quote.recipient).toBe('0x0000000000000000000000000000000000000001')
258
+ })
259
+
260
+ it('throws if quote.recipient is missing (chokepoint guard)', async () => {
261
+ const provider = new MockSwapProvider()
262
+ const quote = await provider.getQuote({
263
+ assetIn: MockUSDC,
264
+ assetOut: MockWETH,
265
+ amountIn: 100,
266
+ chainId: 84532 as SupportedChainId,
267
+ })
268
+
269
+ // Simulate a faulty _getQuote by stripping recipient. The base guard
270
+ // should fire before _buildApprovals.
271
+ const { recipient: _recipient, ...rest } = quote
272
+ await expect(
273
+ provider.testBuildSwapTransactions(rest as typeof quote),
274
+ ).rejects.toThrow(/recipient missing/)
275
+ })
276
+ })
277
+
228
278
  describe('getQuote()', () => {
229
279
  it('should throw if chain not supported', async () => {
230
280
  const provider = new MockSwapProvider()
@@ -1,6 +1,7 @@
1
1
  import type { Address } from 'viem'
2
2
 
3
3
  import type { SupportedChainId } from '@/constants/supportedChains.js'
4
+ import { MarketNotFoundError } from '@/core/error/errors.js'
4
5
  import type { Asset } from '@/types/asset.js'
5
6
  import type {
6
7
  GetSwapMarketsParams,
@@ -69,7 +70,7 @@ export function findMarket<T extends SwapMarketConfig>(
69
70
  )
70
71
  if (match) return match
71
72
  }
72
- throw new Error(`Market with poolId ${poolId} not found on chain ${chainId}`)
73
+ throw new MarketNotFoundError({ chainId, poolId })
73
74
  }
74
75
 
75
76
  /**
@@ -0,0 +1,19 @@
1
+ // Core
2
+ export { SwapProvider } from '@/actions/swap/core/SwapProvider.js'
3
+
4
+ // Namespaces
5
+ export { ActionsSwapNamespace } from '@/actions/swap/namespaces/ActionsSwapNamespace.js'
6
+ export { BaseSwapNamespace } from '@/actions/swap/namespaces/BaseSwapNamespace.js'
7
+ export { WalletSwapNamespace } from '@/actions/swap/namespaces/WalletSwapNamespace.js'
8
+
9
+ // Providers
10
+ export type {
11
+ UniswapMarketConfig,
12
+ UniswapSwapProviderConfig,
13
+ } from '@/actions/swap/providers/uniswap/types.js'
14
+ export { UniswapSwapProvider } from '@/actions/swap/providers/uniswap/UniswapSwapProvider.js'
15
+ export type {
16
+ VelodromeMarketConfig,
17
+ VelodromeSwapProviderConfig,
18
+ } from '@/actions/swap/providers/velodrome/types.js'
19
+ export { VelodromeSwapProvider } from '@/actions/swap/providers/velodrome/VelodromeSwapProvider.js'