@eth-optimism/actions-sdk 0.5.0 → 0.7.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 (815) 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 +62 -23
  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 +2 -2
  95. package/dist/actions/shared/morpho/contracts.d.ts.map +1 -0
  96. package/dist/{lend/providers → actions/shared}/morpho/contracts.js +1 -1
  97. package/dist/{lend/providers → actions/shared}/morpho/contracts.js.map +1 -1
  98. package/dist/{types/lend/contracts.d.ts → actions/shared/morpho/types.d.ts} +2 -2
  99. package/dist/actions/shared/morpho/types.d.ts.map +1 -0
  100. package/dist/actions/shared/morpho/types.js.map +1 -0
  101. package/dist/{swap → actions/swap}/__mocks__/MockSwapProvider.d.ts +7 -6
  102. package/dist/actions/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
  103. package/dist/{swap → actions/swap}/__mocks__/MockSwapProvider.js +5 -2
  104. package/dist/actions/swap/__mocks__/MockSwapProvider.js.map +1 -0
  105. package/dist/{swap → actions/swap}/core/SwapProvider.d.ts +29 -14
  106. package/dist/actions/swap/core/SwapProvider.d.ts.map +1 -0
  107. package/dist/{swap → actions/swap}/core/SwapProvider.js +58 -39
  108. package/dist/actions/swap/core/SwapProvider.js.map +1 -0
  109. package/dist/actions/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
  110. package/dist/{swap → actions/swap}/core/__tests__/SwapProvider.test.js +39 -0
  111. package/dist/actions/swap/core/__tests__/SwapProvider.test.js.map +1 -0
  112. package/dist/{swap → actions/swap}/core/markets.d.ts +3 -3
  113. package/dist/actions/swap/core/markets.d.ts.map +1 -0
  114. package/dist/{swap → actions/swap}/core/markets.js +2 -1
  115. package/dist/actions/swap/core/markets.js.map +1 -0
  116. package/dist/actions/swap/index.d.ts.map +1 -0
  117. package/dist/actions/swap/index.js.map +1 -0
  118. package/dist/actions/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
  119. package/dist/actions/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
  120. package/dist/{swap → actions/swap}/namespaces/BaseSwapNamespace.d.ts +25 -28
  121. package/dist/actions/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
  122. package/dist/{swap → actions/swap}/namespaces/BaseSwapNamespace.js +58 -59
  123. package/dist/actions/swap/namespaces/BaseSwapNamespace.js.map +1 -0
  124. package/dist/actions/swap/namespaces/WalletSwapNamespace.d.ts +56 -0
  125. package/dist/actions/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
  126. package/dist/{swap → actions/swap}/namespaces/WalletSwapNamespace.js +46 -23
  127. package/dist/actions/swap/namespaces/WalletSwapNamespace.js.map +1 -0
  128. package/dist/actions/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
  129. package/dist/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.js +2 -2
  130. package/dist/actions/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
  131. package/dist/actions/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
  132. package/dist/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.js +83 -19
  133. package/dist/actions/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
  134. package/dist/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.d.ts +8 -5
  135. package/dist/actions/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
  136. package/dist/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.js +14 -5
  137. package/dist/actions/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
  138. package/dist/actions/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
  139. package/dist/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.js +1 -1
  140. package/dist/actions/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
  141. package/dist/actions/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
  142. package/dist/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.js +47 -1
  143. package/dist/actions/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
  144. package/dist/actions/swap/providers/uniswap/abis.d.ts.map +1 -0
  145. package/dist/actions/swap/providers/uniswap/abis.js.map +1 -0
  146. package/dist/{swap → actions/swap}/providers/uniswap/addresses.d.ts +1 -1
  147. package/dist/actions/swap/providers/uniswap/addresses.d.ts.map +1 -0
  148. package/dist/{swap → actions/swap}/providers/uniswap/addresses.js +6 -2
  149. package/dist/actions/swap/providers/uniswap/addresses.js.map +1 -0
  150. package/dist/{swap → actions/swap}/providers/uniswap/encoding.d.ts +3 -3
  151. package/dist/actions/swap/providers/uniswap/encoding.d.ts.map +1 -0
  152. package/dist/{swap → actions/swap}/providers/uniswap/encoding.js +2 -2
  153. package/dist/actions/swap/providers/uniswap/encoding.js.map +1 -0
  154. package/dist/{swap → actions/swap}/providers/uniswap/markets.d.ts +3 -3
  155. package/dist/actions/swap/providers/uniswap/markets.d.ts.map +1 -0
  156. package/dist/{swap → actions/swap}/providers/uniswap/markets.js +1 -1
  157. package/dist/actions/swap/providers/uniswap/markets.js.map +1 -0
  158. package/dist/{swap → actions/swap}/providers/uniswap/types.d.ts +1 -1
  159. package/dist/actions/swap/providers/uniswap/types.d.ts.map +1 -0
  160. package/dist/actions/swap/providers/uniswap/types.js.map +1 -0
  161. package/dist/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.d.ts +9 -4
  162. package/dist/actions/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +1 -0
  163. package/dist/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.js +37 -11
  164. package/dist/actions/swap/providers/velodrome/VelodromeSwapProvider.js.map +1 -0
  165. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +1 -0
  166. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +1 -0
  167. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +1 -0
  168. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js +7 -6
  169. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +1 -0
  170. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +1 -0
  171. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.js +39 -4
  172. package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +1 -0
  173. package/dist/actions/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +1 -0
  174. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.js +22 -1
  175. package/dist/actions/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +1 -0
  176. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.d.ts +1 -1
  177. package/dist/actions/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +1 -0
  178. package/dist/actions/swap/providers/velodrome/__tests__/encoding.helpers.js.map +1 -0
  179. package/dist/actions/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +1 -0
  180. package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.js +25 -1
  181. package/dist/actions/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +1 -0
  182. package/dist/actions/swap/providers/velodrome/abis.d.ts.map +1 -0
  183. package/dist/actions/swap/providers/velodrome/abis.js.map +1 -0
  184. package/dist/{swap → actions/swap}/providers/velodrome/addresses.d.ts +1 -1
  185. package/dist/actions/swap/providers/velodrome/addresses.d.ts.map +1 -0
  186. package/dist/actions/swap/providers/velodrome/addresses.js.map +1 -0
  187. package/dist/{swap → actions/swap}/providers/velodrome/config.d.ts +1 -1
  188. package/dist/actions/swap/providers/velodrome/config.d.ts.map +1 -0
  189. package/dist/{swap → actions/swap}/providers/velodrome/config.js +5 -1
  190. package/dist/actions/swap/providers/velodrome/config.js.map +1 -0
  191. package/dist/{swap → actions/swap}/providers/velodrome/encoding/helpers.d.ts +3 -3
  192. package/dist/actions/swap/providers/velodrome/encoding/helpers.d.ts.map +1 -0
  193. package/dist/{swap → actions/swap}/providers/velodrome/encoding/helpers.js +4 -3
  194. package/dist/actions/swap/providers/velodrome/encoding/helpers.js.map +1 -0
  195. package/dist/{swap → actions/swap}/providers/velodrome/encoding/index.d.ts +0 -1
  196. package/dist/actions/swap/providers/velodrome/encoding/index.d.ts.map +1 -0
  197. package/dist/{swap → actions/swap}/providers/velodrome/encoding/index.js +0 -1
  198. package/dist/actions/swap/providers/velodrome/encoding/index.js.map +1 -0
  199. package/dist/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.d.ts +3 -3
  200. package/dist/actions/swap/providers/velodrome/encoding/poolRouter.d.ts.map +1 -0
  201. package/dist/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.js +2 -1
  202. package/dist/actions/swap/providers/velodrome/encoding/poolRouter.js.map +1 -0
  203. package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.d.ts +24 -3
  204. package/dist/actions/swap/providers/velodrome/encoding/routers/cl.d.ts.map +1 -0
  205. package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.js +22 -10
  206. package/dist/actions/swap/providers/velodrome/encoding/routers/cl.js.map +1 -0
  207. package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.d.ts +23 -3
  208. package/dist/actions/swap/providers/velodrome/encoding/routers/v2.d.ts.map +1 -0
  209. package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.js +24 -13
  210. package/dist/actions/swap/providers/velodrome/encoding/routers/v2.js.map +1 -0
  211. package/dist/{swap → actions/swap}/providers/velodrome/markets.d.ts +3 -3
  212. package/dist/actions/swap/providers/velodrome/markets.d.ts.map +1 -0
  213. package/dist/{swap → actions/swap}/providers/velodrome/markets.js +4 -3
  214. package/dist/actions/swap/providers/velodrome/markets.js.map +1 -0
  215. package/dist/{swap → actions/swap}/providers/velodrome/types.d.ts +1 -1
  216. package/dist/actions/swap/providers/velodrome/types.d.ts.map +1 -0
  217. package/dist/actions/swap/providers/velodrome/types.js +2 -0
  218. package/dist/actions/swap/providers/velodrome/types.js.map +1 -0
  219. package/dist/actions.d.ts +4 -3
  220. package/dist/actions.d.ts.map +1 -1
  221. package/dist/actions.js +45 -22
  222. package/dist/actions.js.map +1 -1
  223. package/dist/constants/supportedChains.d.ts +5790 -2
  224. package/dist/constants/supportedChains.d.ts.map +1 -1
  225. package/dist/constants/supportedChains.js +66 -20
  226. package/dist/constants/supportedChains.js.map +1 -1
  227. package/dist/core/error/__tests__/errors.test.d.ts +2 -0
  228. package/dist/core/error/__tests__/errors.test.d.ts.map +1 -0
  229. package/dist/core/error/__tests__/errors.test.js +195 -0
  230. package/dist/core/error/__tests__/errors.test.js.map +1 -0
  231. package/dist/core/error/errors.d.ts +155 -15
  232. package/dist/core/error/errors.d.ts.map +1 -1
  233. package/dist/core/error/errors.js +229 -17
  234. package/dist/core/error/errors.js.map +1 -1
  235. package/dist/index.d.ts +10 -6
  236. package/dist/index.d.ts.map +1 -1
  237. package/dist/index.js +9 -5
  238. package/dist/index.js.map +1 -1
  239. package/dist/services/ChainManager.d.ts.map +1 -1
  240. package/dist/services/ChainManager.js +42 -7
  241. package/dist/services/ChainManager.js.map +1 -1
  242. package/dist/services/__tests__/ChainManager.spec.d.ts.map +1 -0
  243. package/dist/services/{ChainManager.spec.js → __tests__/ChainManager.spec.js} +7 -7
  244. package/dist/services/__tests__/ChainManager.spec.js.map +1 -0
  245. package/dist/services/__tests__/tokenBalance.spec.d.ts.map +1 -0
  246. package/dist/services/{tokenBalance.spec.js → __tests__/tokenBalance.spec.js} +42 -5
  247. package/dist/services/__tests__/tokenBalance.spec.js.map +1 -0
  248. package/dist/{ens → services/nameservices/ens}/EnsNamespace.d.ts +1 -1
  249. package/dist/services/nameservices/ens/EnsNamespace.d.ts.map +1 -0
  250. package/dist/{ens → services/nameservices/ens}/EnsNamespace.js +1 -1
  251. package/dist/services/nameservices/ens/EnsNamespace.js.map +1 -0
  252. package/dist/services/nameservices/ens/__tests__/EnsNamespace.spec.d.ts.map +1 -0
  253. package/dist/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.js +2 -2
  254. package/dist/services/nameservices/ens/__tests__/EnsNamespace.spec.js.map +1 -0
  255. package/dist/services/nameservices/ens/__tests__/utils.spec.d.ts +2 -0
  256. package/dist/services/nameservices/ens/__tests__/utils.spec.d.ts.map +1 -0
  257. package/dist/{utils/ens.test.js → services/nameservices/ens/__tests__/utils.spec.js} +3 -3
  258. package/dist/services/nameservices/ens/__tests__/utils.spec.js.map +1 -0
  259. package/dist/services/nameservices/ens/errors.d.ts.map +1 -0
  260. package/dist/services/nameservices/ens/errors.js.map +1 -0
  261. package/dist/{ens → services/nameservices/ens}/index.d.ts +1 -0
  262. package/dist/services/nameservices/ens/index.d.ts.map +1 -0
  263. package/dist/{ens → services/nameservices/ens}/index.js +1 -0
  264. package/dist/services/nameservices/ens/index.js.map +1 -0
  265. package/dist/{ens → services/nameservices/ens}/types.d.ts +1 -1
  266. package/dist/services/nameservices/ens/types.d.ts.map +1 -0
  267. package/dist/services/nameservices/ens/types.js.map +1 -0
  268. package/dist/{utils/ens.d.ts → services/nameservices/ens/utils.d.ts} +3 -3
  269. package/dist/services/nameservices/ens/utils.d.ts.map +1 -0
  270. package/dist/{utils/ens.js → services/nameservices/ens/utils.js} +3 -3
  271. package/dist/services/nameservices/ens/utils.js.map +1 -0
  272. package/dist/services/tokenBalance.d.ts +8 -5
  273. package/dist/services/tokenBalance.d.ts.map +1 -1
  274. package/dist/services/tokenBalance.js +15 -8
  275. package/dist/services/tokenBalance.js.map +1 -1
  276. package/dist/types/actions.d.ts +80 -13
  277. package/dist/types/actions.d.ts.map +1 -1
  278. package/dist/types/actions.js +22 -1
  279. package/dist/types/actions.js.map +1 -1
  280. package/dist/types/asset.d.ts +7 -0
  281. package/dist/types/asset.d.ts.map +1 -1
  282. package/dist/types/common/FilterAssetChain.d.ts +13 -0
  283. package/dist/types/common/FilterAssetChain.d.ts.map +1 -0
  284. package/dist/types/common/FilterAssetChain.js +2 -0
  285. package/dist/types/common/FilterAssetChain.js.map +1 -0
  286. package/dist/types/common/TransactionOptions.d.ts +13 -0
  287. package/dist/types/common/TransactionOptions.d.ts.map +1 -0
  288. package/dist/types/common/TransactionOptions.js +2 -0
  289. package/dist/types/common/TransactionOptions.js.map +1 -0
  290. package/dist/types/common/index.d.ts +3 -0
  291. package/dist/types/common/index.d.ts.map +1 -0
  292. package/dist/types/common/index.js +3 -0
  293. package/dist/types/common/index.js.map +1 -0
  294. package/dist/types/index.d.ts +1 -0
  295. package/dist/types/index.d.ts.map +1 -1
  296. package/dist/types/index.js +1 -0
  297. package/dist/types/index.js.map +1 -1
  298. package/dist/types/lend/base.d.ts +44 -34
  299. package/dist/types/lend/base.d.ts.map +1 -1
  300. package/dist/types/lend/base.js +3 -3
  301. package/dist/types/lend/base.js.map +1 -1
  302. package/dist/types/lend/index.d.ts +0 -1
  303. package/dist/types/lend/index.d.ts.map +1 -1
  304. package/dist/types/lend/index.js +0 -1
  305. package/dist/types/lend/index.js.map +1 -1
  306. package/dist/types/providers.d.ts +22 -8
  307. package/dist/types/providers.d.ts.map +1 -1
  308. package/dist/types/providers.js +12 -1
  309. package/dist/types/providers.js.map +1 -1
  310. package/dist/types/swap/base.d.ts +25 -13
  311. package/dist/types/swap/base.d.ts.map +1 -1
  312. package/dist/types/swap/base.js +3 -3
  313. package/dist/types/swap/base.js.map +1 -1
  314. package/dist/utils/__tests__/approve.test.d.ts.map +1 -0
  315. package/dist/utils/{approve.test.js → __tests__/approve.test.js} +40 -18
  316. package/dist/utils/__tests__/approve.test.js.map +1 -0
  317. package/dist/utils/__tests__/assets.test.d.ts.map +1 -0
  318. package/dist/utils/{assets.test.js → __tests__/assets.test.js} +2 -2
  319. package/dist/utils/__tests__/assets.test.js.map +1 -0
  320. package/dist/utils/__tests__/lendConfig.test.d.ts +2 -0
  321. package/dist/utils/__tests__/lendConfig.test.d.ts.map +1 -0
  322. package/dist/utils/__tests__/lendConfig.test.js +44 -0
  323. package/dist/utils/__tests__/lendConfig.test.js.map +1 -0
  324. package/dist/utils/__tests__/serializers.test.d.ts +2 -0
  325. package/dist/utils/__tests__/serializers.test.d.ts.map +1 -0
  326. package/dist/utils/__tests__/serializers.test.js +43 -0
  327. package/dist/utils/__tests__/serializers.test.js.map +1 -0
  328. package/dist/utils/__tests__/validateAddresses.test.d.ts.map +1 -0
  329. package/dist/utils/{validateAddresses.test.js → __tests__/validateAddresses.test.js} +10 -10
  330. package/dist/utils/__tests__/validateAddresses.test.js.map +1 -0
  331. package/dist/utils/abi/permit2.d.ts +48 -0
  332. package/dist/utils/abi/permit2.d.ts.map +1 -0
  333. package/dist/utils/abi/permit2.js +34 -0
  334. package/dist/utils/abi/permit2.js.map +1 -0
  335. package/dist/utils/approve.d.ts +26 -3
  336. package/dist/utils/approve.d.ts.map +1 -1
  337. package/dist/utils/approve.js +34 -37
  338. package/dist/utils/approve.js.map +1 -1
  339. package/dist/utils/assets.d.ts.map +1 -1
  340. package/dist/utils/assets.js +3 -2
  341. package/dist/utils/assets.js.map +1 -1
  342. package/dist/utils/lendConfig.d.ts +9 -0
  343. package/dist/utils/lendConfig.d.ts.map +1 -0
  344. package/dist/utils/lendConfig.js +12 -0
  345. package/dist/utils/lendConfig.js.map +1 -0
  346. package/dist/utils/serializers.d.ts +16 -0
  347. package/dist/utils/serializers.d.ts.map +1 -0
  348. package/dist/utils/serializers.js +18 -0
  349. package/dist/utils/serializers.js.map +1 -0
  350. package/dist/utils/validation.d.ts +8 -1
  351. package/dist/utils/validation.d.ts.map +1 -1
  352. package/dist/utils/validation.js +28 -8
  353. package/dist/utils/validation.js.map +1 -1
  354. package/dist/wallet/core/error/errors.d.ts +21 -0
  355. package/dist/wallet/core/error/errors.d.ts.map +1 -0
  356. package/dist/wallet/core/error/errors.js +24 -0
  357. package/dist/wallet/core/error/errors.js.map +1 -0
  358. package/dist/wallet/core/namespace/WalletNamespace.d.ts +24 -8
  359. package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
  360. package/dist/wallet/core/namespace/WalletNamespace.js +48 -17
  361. package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
  362. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +105 -10
  363. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
  364. package/dist/wallet/core/providers/WalletProvider.d.ts +3 -2
  365. package/dist/wallet/core/providers/WalletProvider.d.ts.map +1 -1
  366. package/dist/wallet/core/providers/WalletProvider.js +8 -2
  367. package/dist/wallet/core/providers/WalletProvider.js.map +1 -1
  368. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +1 -1
  369. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
  370. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.d.ts.map +1 -1
  371. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js +2 -1
  372. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js.map +1 -1
  373. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +1 -1
  374. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -1
  375. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +1 -1
  376. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
  377. package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.d.ts +2 -0
  378. package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.d.ts.map +1 -0
  379. package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.js +31 -0
  380. package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.js.map +1 -0
  381. package/dist/wallet/core/utils/__tests__/retryOnStaleRead.spec.d.ts.map +1 -0
  382. package/dist/wallet/core/utils/__tests__/retryOnStaleRead.spec.js.map +1 -0
  383. package/dist/wallet/core/utils/executeTransactionBatch.d.ts +22 -0
  384. package/dist/wallet/core/utils/executeTransactionBatch.d.ts.map +1 -0
  385. package/dist/wallet/core/utils/executeTransactionBatch.js +26 -0
  386. package/dist/wallet/core/utils/executeTransactionBatch.js.map +1 -0
  387. package/dist/wallet/core/utils/retryOnStaleRead.d.ts.map +1 -0
  388. package/dist/wallet/core/utils/retryOnStaleRead.js.map +1 -0
  389. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +17 -8
  390. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  391. package/dist/wallet/core/wallets/abstract/Wallet.js +24 -12
  392. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  393. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +3 -3
  394. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -1
  395. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -1
  396. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +41 -2
  397. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
  398. package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts +13 -5
  399. package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts.map +1 -1
  400. package/dist/wallet/core/wallets/eoa/EOAWallet.js +17 -12
  401. package/dist/wallet/core/wallets/eoa/EOAWallet.js.map +1 -1
  402. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js +37 -20
  403. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js.map +1 -1
  404. package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts +1 -1
  405. package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts.map +1 -1
  406. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +1 -1
  407. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  408. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +2 -2
  409. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  410. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +1 -1
  411. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
  412. package/dist/wallet/node/index.d.ts +1 -0
  413. package/dist/wallet/node/index.d.ts.map +1 -1
  414. package/dist/wallet/node/index.js +1 -0
  415. package/dist/wallet/node/index.js.map +1 -1
  416. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -1
  417. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  418. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +1 -1
  419. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
  420. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +1 -1
  421. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
  422. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +4 -1
  423. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
  424. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -1
  425. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
  426. package/dist/wallet/node/wallets/local/LocalWallet.d.ts +24 -0
  427. package/dist/wallet/node/wallets/local/LocalWallet.d.ts.map +1 -0
  428. package/dist/wallet/node/wallets/local/LocalWallet.js +21 -0
  429. package/dist/wallet/node/wallets/local/LocalWallet.js.map +1 -0
  430. package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.d.ts +2 -0
  431. package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.d.ts.map +1 -0
  432. package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.js +52 -0
  433. package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.js.map +1 -0
  434. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -1
  435. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
  436. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -1
  437. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  438. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +1 -1
  439. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
  440. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +1 -1
  441. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
  442. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js +2 -1
  443. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js.map +1 -1
  444. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +2 -1
  445. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
  446. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -1
  447. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
  448. package/package.json +2 -2
  449. package/src/__tests__/actions.test.ts +3 -1
  450. package/src/{lend → actions/lend}/__mocks__/MockLendProvider.ts +24 -9
  451. package/src/{lend → actions/lend}/__mocks__/mockLendTransaction.ts +2 -2
  452. package/src/{lend → actions/lend}/core/LendProvider.ts +125 -41
  453. package/src/{lend → actions/lend}/core/__tests__/LendProvider.test.ts +82 -3
  454. package/src/actions/lend/index.ts +3 -0
  455. package/src/{lend → actions/lend}/namespaces/BaseLendNamespace.ts +20 -37
  456. package/src/{lend → actions/lend}/namespaces/WalletLendNamespace.ts +15 -22
  457. package/src/{lend → actions/lend}/namespaces/__tests__/ActionsLendNamespace.spec.ts +3 -3
  458. package/src/{lend → actions/lend}/namespaces/__tests__/BaseLendNamespace.spec.ts +3 -3
  459. package/src/{lend → actions/lend}/namespaces/__tests__/WalletLendNamespace.spec.ts +6 -6
  460. package/src/{lend → actions/lend}/providers/aave/AaveLendProvider.ts +65 -73
  461. package/src/{lend → actions/lend}/providers/aave/__tests__/AaveLendProvider.test.ts +7 -7
  462. package/src/{lend → actions/lend}/providers/aave/sdk.ts +15 -9
  463. package/src/{lend → actions/lend}/providers/morpho/MorphoLendProvider.ts +67 -53
  464. package/src/{lend → actions/lend}/providers/morpho/__tests__/MorphoLendProvider.test.ts +79 -5
  465. package/src/{lend → actions/lend}/providers/morpho/__tests__/api.test.ts +3 -3
  466. package/src/{lend → actions/lend}/providers/morpho/__tests__/sdk.test.ts +2 -2
  467. package/src/{lend → actions/lend}/providers/morpho/sdk.ts +23 -12
  468. package/src/actions/lend/utils/markets.ts +62 -0
  469. package/src/actions/shared/BaseNamespace.ts +46 -0
  470. package/src/actions/shared/__tests__/BaseNamespace.spec.ts +58 -0
  471. package/src/{lend/providers → actions/shared}/morpho/contracts.ts +3 -3
  472. package/src/{swap → actions/swap}/__mocks__/MockSwapProvider.ts +6 -2
  473. package/src/{swap → actions/swap}/core/SwapProvider.ts +89 -57
  474. package/src/{swap → actions/swap}/core/__tests__/SwapProvider.test.ts +51 -1
  475. package/src/{swap → actions/swap}/core/markets.ts +2 -1
  476. package/src/actions/swap/index.ts +19 -0
  477. package/src/{swap → actions/swap}/namespaces/ActionsSwapNamespace.ts +1 -1
  478. package/src/{swap → actions/swap}/namespaces/BaseSwapNamespace.ts +92 -90
  479. package/src/{swap → actions/swap}/namespaces/WalletSwapNamespace.ts +60 -34
  480. package/src/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.ts +6 -6
  481. package/src/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.ts +110 -22
  482. package/src/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.ts +34 -14
  483. package/src/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +2 -2
  484. package/src/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.ts +65 -3
  485. package/src/{swap → actions/swap}/providers/uniswap/addresses.ts +5 -1
  486. package/src/{swap → actions/swap}/providers/uniswap/encoding.ts +3 -3
  487. package/src/{swap → actions/swap}/providers/uniswap/markets.ts +2 -2
  488. package/src/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.ts +71 -31
  489. package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.ts +2 -2
  490. package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.ts +8 -7
  491. package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.ts +46 -5
  492. package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.ts +31 -2
  493. package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.ts +34 -3
  494. package/src/{swap → actions/swap}/providers/velodrome/config.ts +5 -1
  495. package/src/{swap → actions/swap}/providers/velodrome/encoding/helpers.ts +3 -2
  496. package/src/{swap → actions/swap}/providers/velodrome/encoding/index.ts +0 -1
  497. package/src/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.ts +4 -3
  498. package/src/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.ts +31 -23
  499. package/src/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.ts +34 -27
  500. package/src/{swap → actions/swap}/providers/velodrome/markets.ts +4 -3
  501. package/src/actions.ts +68 -37
  502. package/src/constants/supportedChains.ts +81 -21
  503. package/src/core/error/__tests__/errors.test.ts +236 -0
  504. package/src/core/error/errors.ts +319 -22
  505. package/src/index.ts +31 -13
  506. package/src/services/ChainManager.ts +45 -9
  507. package/src/services/{ChainManager.spec.ts → __tests__/ChainManager.spec.ts} +6 -6
  508. package/src/services/{tokenBalance.spec.ts → __tests__/tokenBalance.spec.ts} +56 -1
  509. package/src/{ens → services/nameservices/ens}/EnsNamespace.ts +1 -1
  510. package/src/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.ts +6 -4
  511. package/src/{utils/ens.test.ts → services/nameservices/ens/__tests__/utils.spec.ts} +3 -2
  512. package/src/{ens → services/nameservices/ens}/index.ts +5 -0
  513. package/src/{utils/ens.ts → services/nameservices/ens/utils.ts} +3 -3
  514. package/src/services/tokenBalance.ts +16 -7
  515. package/src/types/actions.ts +96 -16
  516. package/src/types/asset.ts +8 -0
  517. package/src/types/common/FilterAssetChain.ts +13 -0
  518. package/src/types/common/TransactionOptions.ts +12 -0
  519. package/src/types/common/index.ts +2 -0
  520. package/src/types/index.ts +1 -0
  521. package/src/types/lend/base.ts +48 -36
  522. package/src/types/lend/index.ts +0 -1
  523. package/src/types/providers.ts +26 -8
  524. package/src/types/swap/base.ts +25 -13
  525. package/src/utils/{approve.test.ts → __tests__/approve.test.ts} +51 -18
  526. package/src/utils/__tests__/lendConfig.test.ts +52 -0
  527. package/src/utils/__tests__/serializers.test.ts +53 -0
  528. package/src/utils/{validateAddresses.test.ts → __tests__/validateAddresses.test.ts} +9 -9
  529. package/src/utils/abi/permit2.ts +33 -0
  530. package/src/utils/approve.ts +48 -37
  531. package/src/utils/assets.ts +6 -6
  532. package/src/utils/lendConfig.ts +17 -0
  533. package/src/utils/serializers.ts +21 -0
  534. package/src/utils/validation.ts +42 -15
  535. package/src/wallet/core/error/errors.ts +30 -0
  536. package/src/wallet/core/namespace/WalletNamespace.ts +82 -20
  537. package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +141 -16
  538. package/src/wallet/core/providers/WalletProvider.ts +12 -3
  539. package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +1 -1
  540. package/src/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.ts +2 -1
  541. package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +1 -1
  542. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +1 -1
  543. package/src/wallet/core/utils/__tests__/executeTransactionBatch.spec.ts +42 -0
  544. package/src/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.ts +1 -1
  545. package/src/wallet/core/utils/executeTransactionBatch.ts +37 -0
  546. package/src/wallet/core/wallets/abstract/Wallet.ts +29 -15
  547. package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +3 -3
  548. package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +69 -3
  549. package/src/wallet/core/wallets/eoa/EOAWallet.ts +18 -13
  550. package/src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts +43 -24
  551. package/src/wallet/core/wallets/smart/abstract/SmartWallet.ts +1 -1
  552. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +3 -3
  553. package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +1 -1
  554. package/src/wallet/node/index.ts +1 -0
  555. package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -1
  556. package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +1 -1
  557. package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +1 -1
  558. package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +4 -1
  559. package/src/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -1
  560. package/src/wallet/node/wallets/local/LocalWallet.ts +48 -0
  561. package/src/wallet/node/wallets/local/__tests__/LocalWallet.spec.ts +65 -0
  562. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -1
  563. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -1
  564. package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +1 -1
  565. package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +1 -1
  566. package/src/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.ts +2 -1
  567. package/src/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +2 -1
  568. package/src/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -1
  569. package/dist/core/asset/__mocks__/mockAsset.d.ts +0 -6
  570. package/dist/core/asset/__mocks__/mockAsset.d.ts.map +0 -1
  571. package/dist/core/asset/__mocks__/mockAsset.js +0 -12
  572. package/dist/core/asset/__mocks__/mockAsset.js.map +0 -1
  573. package/dist/core/utils/__tests__/retryOnStaleRead.spec.d.ts.map +0 -1
  574. package/dist/core/utils/__tests__/retryOnStaleRead.spec.js.map +0 -1
  575. package/dist/core/utils/retryOnStaleRead.d.ts.map +0 -1
  576. package/dist/core/utils/retryOnStaleRead.js.map +0 -1
  577. package/dist/ens/EnsNamespace.d.ts.map +0 -1
  578. package/dist/ens/EnsNamespace.js.map +0 -1
  579. package/dist/ens/EnsNamespace.spec.d.ts.map +0 -1
  580. package/dist/ens/EnsNamespace.spec.js.map +0 -1
  581. package/dist/ens/errors.d.ts.map +0 -1
  582. package/dist/ens/errors.js.map +0 -1
  583. package/dist/ens/index.d.ts.map +0 -1
  584. package/dist/ens/index.js.map +0 -1
  585. package/dist/ens/types.d.ts.map +0 -1
  586. package/dist/ens/types.js.map +0 -1
  587. package/dist/lend/__mocks__/MockLendProvider.d.ts.map +0 -1
  588. package/dist/lend/__mocks__/MockLendProvider.js.map +0 -1
  589. package/dist/lend/__mocks__/MockMarkets.d.ts.map +0 -1
  590. package/dist/lend/__mocks__/MockMarkets.js.map +0 -1
  591. package/dist/lend/__mocks__/mockLendTransaction.d.ts.map +0 -1
  592. package/dist/lend/__mocks__/mockLendTransaction.js.map +0 -1
  593. package/dist/lend/core/LendProvider.d.ts.map +0 -1
  594. package/dist/lend/core/LendProvider.js.map +0 -1
  595. package/dist/lend/core/__tests__/LendProvider.test.d.ts.map +0 -1
  596. package/dist/lend/core/__tests__/LendProvider.test.js.map +0 -1
  597. package/dist/lend/index.d.ts.map +0 -1
  598. package/dist/lend/index.js.map +0 -1
  599. package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +0 -1
  600. package/dist/lend/namespaces/ActionsLendNamespace.js.map +0 -1
  601. package/dist/lend/namespaces/BaseLendNamespace.d.ts +0 -43
  602. package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +0 -1
  603. package/dist/lend/namespaces/BaseLendNamespace.js.map +0 -1
  604. package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +0 -1
  605. package/dist/lend/namespaces/WalletLendNamespace.js.map +0 -1
  606. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts.map +0 -1
  607. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +0 -1
  608. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts.map +0 -1
  609. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +0 -1
  610. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts.map +0 -1
  611. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +0 -1
  612. package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +0 -1
  613. package/dist/lend/providers/aave/AaveLendProvider.js.map +0 -1
  614. package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts.map +0 -1
  615. package/dist/lend/providers/aave/__mocks__/mockReserve.js.map +0 -1
  616. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts.map +0 -1
  617. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +0 -1
  618. package/dist/lend/providers/aave/abis/pool.d.ts.map +0 -1
  619. package/dist/lend/providers/aave/abis/pool.js.map +0 -1
  620. package/dist/lend/providers/aave/addresses.d.ts.map +0 -1
  621. package/dist/lend/providers/aave/addresses.js.map +0 -1
  622. package/dist/lend/providers/aave/sdk.d.ts.map +0 -1
  623. package/dist/lend/providers/aave/sdk.js.map +0 -1
  624. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +0 -1
  625. package/dist/lend/providers/morpho/MorphoLendProvider.js.map +0 -1
  626. package/dist/lend/providers/morpho/__mocks__/mockVault.d.ts.map +0 -1
  627. package/dist/lend/providers/morpho/__mocks__/mockVault.js.map +0 -1
  628. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts.map +0 -1
  629. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +0 -1
  630. package/dist/lend/providers/morpho/__tests__/api.test.d.ts.map +0 -1
  631. package/dist/lend/providers/morpho/__tests__/api.test.js.map +0 -1
  632. package/dist/lend/providers/morpho/__tests__/sdk.test.d.ts.map +0 -1
  633. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +0 -1
  634. package/dist/lend/providers/morpho/api.d.ts.map +0 -1
  635. package/dist/lend/providers/morpho/api.js.map +0 -1
  636. package/dist/lend/providers/morpho/contracts.d.ts.map +0 -1
  637. package/dist/lend/providers/morpho/sdk.d.ts.map +0 -1
  638. package/dist/lend/providers/morpho/sdk.js.map +0 -1
  639. package/dist/services/ChainManager.spec.d.ts.map +0 -1
  640. package/dist/services/ChainManager.spec.js.map +0 -1
  641. package/dist/services/tokenBalance.spec.d.ts.map +0 -1
  642. package/dist/services/tokenBalance.spec.js.map +0 -1
  643. package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +0 -1
  644. package/dist/swap/__mocks__/MockSwapProvider.js.map +0 -1
  645. package/dist/swap/core/SwapProvider.d.ts.map +0 -1
  646. package/dist/swap/core/SwapProvider.js.map +0 -1
  647. package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +0 -1
  648. package/dist/swap/core/__tests__/SwapProvider.test.js.map +0 -1
  649. package/dist/swap/core/markets.d.ts.map +0 -1
  650. package/dist/swap/core/markets.js.map +0 -1
  651. package/dist/swap/index.d.ts.map +0 -1
  652. package/dist/swap/index.js.map +0 -1
  653. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +0 -1
  654. package/dist/swap/namespaces/ActionsSwapNamespace.js.map +0 -1
  655. package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +0 -1
  656. package/dist/swap/namespaces/BaseSwapNamespace.js.map +0 -1
  657. package/dist/swap/namespaces/WalletSwapNamespace.d.ts +0 -35
  658. package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +0 -1
  659. package/dist/swap/namespaces/WalletSwapNamespace.js.map +0 -1
  660. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +0 -1
  661. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +0 -1
  662. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +0 -1
  663. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +0 -1
  664. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +0 -1
  665. package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +0 -1
  666. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +0 -1
  667. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +0 -1
  668. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +0 -1
  669. package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +0 -1
  670. package/dist/swap/providers/uniswap/abis.d.ts.map +0 -1
  671. package/dist/swap/providers/uniswap/abis.js.map +0 -1
  672. package/dist/swap/providers/uniswap/addresses.d.ts.map +0 -1
  673. package/dist/swap/providers/uniswap/addresses.js.map +0 -1
  674. package/dist/swap/providers/uniswap/encoding.d.ts.map +0 -1
  675. package/dist/swap/providers/uniswap/encoding.js.map +0 -1
  676. package/dist/swap/providers/uniswap/markets.d.ts.map +0 -1
  677. package/dist/swap/providers/uniswap/markets.js.map +0 -1
  678. package/dist/swap/providers/uniswap/types.d.ts.map +0 -1
  679. package/dist/swap/providers/uniswap/types.js.map +0 -1
  680. package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +0 -1
  681. package/dist/swap/providers/velodrome/VelodromeSwapProvider.js.map +0 -1
  682. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +0 -1
  683. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +0 -1
  684. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +0 -1
  685. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +0 -1
  686. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +0 -1
  687. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +0 -1
  688. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +0 -1
  689. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +0 -1
  690. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +0 -1
  691. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js.map +0 -1
  692. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +0 -1
  693. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +0 -1
  694. package/dist/swap/providers/velodrome/abis.d.ts.map +0 -1
  695. package/dist/swap/providers/velodrome/abis.js.map +0 -1
  696. package/dist/swap/providers/velodrome/addresses.d.ts.map +0 -1
  697. package/dist/swap/providers/velodrome/addresses.js.map +0 -1
  698. package/dist/swap/providers/velodrome/config.d.ts.map +0 -1
  699. package/dist/swap/providers/velodrome/config.js.map +0 -1
  700. package/dist/swap/providers/velodrome/encoding/helpers.d.ts.map +0 -1
  701. package/dist/swap/providers/velodrome/encoding/helpers.js.map +0 -1
  702. package/dist/swap/providers/velodrome/encoding/index.d.ts.map +0 -1
  703. package/dist/swap/providers/velodrome/encoding/index.js.map +0 -1
  704. package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts.map +0 -1
  705. package/dist/swap/providers/velodrome/encoding/poolRouter.js.map +0 -1
  706. package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts +0 -15
  707. package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts.map +0 -1
  708. package/dist/swap/providers/velodrome/encoding/routers/approval.js +0 -33
  709. package/dist/swap/providers/velodrome/encoding/routers/approval.js.map +0 -1
  710. package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts.map +0 -1
  711. package/dist/swap/providers/velodrome/encoding/routers/cl.js.map +0 -1
  712. package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts.map +0 -1
  713. package/dist/swap/providers/velodrome/encoding/routers/v2.js.map +0 -1
  714. package/dist/swap/providers/velodrome/markets.d.ts.map +0 -1
  715. package/dist/swap/providers/velodrome/markets.js.map +0 -1
  716. package/dist/swap/providers/velodrome/types.d.ts.map +0 -1
  717. package/dist/swap/providers/velodrome/types.js.map +0 -1
  718. package/dist/types/lend/contracts.d.ts.map +0 -1
  719. package/dist/types/lend/contracts.js +0 -2
  720. package/dist/types/lend/contracts.js.map +0 -1
  721. package/dist/utils/approve.test.d.ts.map +0 -1
  722. package/dist/utils/approve.test.js.map +0 -1
  723. package/dist/utils/assets.test.d.ts.map +0 -1
  724. package/dist/utils/assets.test.js.map +0 -1
  725. package/dist/utils/ens.d.ts.map +0 -1
  726. package/dist/utils/ens.js.map +0 -1
  727. package/dist/utils/ens.test.d.ts +0 -2
  728. package/dist/utils/ens.test.d.ts.map +0 -1
  729. package/dist/utils/ens.test.js.map +0 -1
  730. package/dist/utils/markets.d.ts +0 -17
  731. package/dist/utils/markets.d.ts.map +0 -1
  732. package/dist/utils/markets.js +0 -25
  733. package/dist/utils/markets.js.map +0 -1
  734. package/dist/utils/validateAddresses.test.d.ts.map +0 -1
  735. package/dist/utils/validateAddresses.test.js.map +0 -1
  736. package/src/core/asset/__mocks__/mockAsset.ts +0 -13
  737. package/src/lend/index.ts +0 -3
  738. package/src/swap/index.ts +0 -19
  739. package/src/swap/providers/velodrome/encoding/routers/approval.ts +0 -45
  740. package/src/utils/markets.ts +0 -35
  741. /package/dist/{lend → actions/lend}/core/__tests__/LendProvider.test.d.ts +0 -0
  742. /package/dist/{lend → actions/lend}/index.d.ts +0 -0
  743. /package/dist/{lend → actions/lend}/index.js +0 -0
  744. /package/dist/{lend → actions/lend}/namespaces/ActionsLendNamespace.d.ts +0 -0
  745. /package/dist/{lend → actions/lend}/namespaces/ActionsLendNamespace.js +0 -0
  746. /package/dist/{lend → actions/lend}/namespaces/__tests__/ActionsLendNamespace.spec.d.ts +0 -0
  747. /package/dist/{lend → actions/lend}/namespaces/__tests__/BaseLendNamespace.spec.d.ts +0 -0
  748. /package/dist/{lend → actions/lend}/namespaces/__tests__/WalletLendNamespace.spec.d.ts +0 -0
  749. /package/dist/{lend → actions/lend}/providers/aave/__mocks__/mockReserve.js +0 -0
  750. /package/dist/{lend → actions/lend}/providers/aave/__tests__/AaveLendProvider.test.d.ts +0 -0
  751. /package/dist/{lend → actions/lend}/providers/aave/abis/pool.d.ts +0 -0
  752. /package/dist/{lend → actions/lend}/providers/aave/abis/pool.js +0 -0
  753. /package/dist/{lend → actions/lend}/providers/aave/addresses.d.ts +0 -0
  754. /package/dist/{lend → actions/lend}/providers/aave/addresses.js +0 -0
  755. /package/dist/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.d.ts +0 -0
  756. /package/dist/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.js +0 -0
  757. /package/dist/{lend → actions/lend}/providers/morpho/__tests__/MorphoLendProvider.test.d.ts +0 -0
  758. /package/dist/{lend → actions/lend}/providers/morpho/__tests__/api.test.d.ts +0 -0
  759. /package/dist/{lend → actions/lend}/providers/morpho/__tests__/sdk.test.d.ts +0 -0
  760. /package/dist/{lend → actions/lend}/providers/morpho/api.d.ts +0 -0
  761. /package/dist/{lend → actions/lend}/providers/morpho/api.js +0 -0
  762. /package/dist/{swap/providers/uniswap → actions/shared/morpho}/types.js +0 -0
  763. /package/dist/{swap → actions/swap}/core/__tests__/SwapProvider.test.d.ts +0 -0
  764. /package/dist/{swap → actions/swap}/index.d.ts +0 -0
  765. /package/dist/{swap → actions/swap}/index.js +0 -0
  766. /package/dist/{swap → actions/swap}/namespaces/ActionsSwapNamespace.d.ts +0 -0
  767. /package/dist/{swap → actions/swap}/namespaces/ActionsSwapNamespace.js +0 -0
  768. /package/dist/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +0 -0
  769. /package/dist/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +0 -0
  770. /package/dist/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +0 -0
  771. /package/dist/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.d.ts +0 -0
  772. /package/dist/{swap → actions/swap}/providers/uniswap/abis.d.ts +0 -0
  773. /package/dist/{swap → actions/swap}/providers/uniswap/abis.js +0 -0
  774. /package/dist/{swap/providers/velodrome → actions/swap/providers/uniswap}/types.js +0 -0
  775. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts +0 -0
  776. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js +0 -0
  777. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts +0 -0
  778. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts +0 -0
  779. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.d.ts +0 -0
  780. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.js +0 -0
  781. /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.d.ts +0 -0
  782. /package/dist/{swap → actions/swap}/providers/velodrome/abis.d.ts +0 -0
  783. /package/dist/{swap → actions/swap}/providers/velodrome/abis.js +0 -0
  784. /package/dist/{swap → actions/swap}/providers/velodrome/addresses.js +0 -0
  785. /package/dist/services/{ChainManager.spec.d.ts → __tests__/ChainManager.spec.d.ts} +0 -0
  786. /package/dist/services/{tokenBalance.spec.d.ts → __tests__/tokenBalance.spec.d.ts} +0 -0
  787. /package/dist/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.d.ts +0 -0
  788. /package/dist/{ens → services/nameservices/ens}/errors.d.ts +0 -0
  789. /package/dist/{ens → services/nameservices/ens}/errors.js +0 -0
  790. /package/dist/{ens → services/nameservices/ens}/types.js +0 -0
  791. /package/dist/utils/{approve.test.d.ts → __tests__/approve.test.d.ts} +0 -0
  792. /package/dist/utils/{assets.test.d.ts → __tests__/assets.test.d.ts} +0 -0
  793. /package/dist/utils/{validateAddresses.test.d.ts → __tests__/validateAddresses.test.d.ts} +0 -0
  794. /package/dist/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.d.ts +0 -0
  795. /package/dist/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.js +0 -0
  796. /package/dist/{core → wallet/core}/utils/retryOnStaleRead.d.ts +0 -0
  797. /package/dist/{core → wallet/core}/utils/retryOnStaleRead.js +0 -0
  798. /package/src/{lend → actions/lend}/__mocks__/MockMarkets.ts +0 -0
  799. /package/src/{lend → actions/lend}/namespaces/ActionsLendNamespace.ts +0 -0
  800. /package/src/{lend → actions/lend}/providers/aave/__mocks__/mockReserve.ts +0 -0
  801. /package/src/{lend → actions/lend}/providers/aave/abis/pool.ts +0 -0
  802. /package/src/{lend → actions/lend}/providers/aave/addresses.ts +0 -0
  803. /package/src/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.ts +0 -0
  804. /package/src/{lend → actions/lend}/providers/morpho/api.ts +0 -0
  805. /package/src/{types/lend/contracts.ts → actions/shared/morpho/types.ts} +0 -0
  806. /package/src/{swap → actions/swap}/providers/uniswap/abis.ts +0 -0
  807. /package/src/{swap → actions/swap}/providers/uniswap/types.ts +0 -0
  808. /package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.ts +0 -0
  809. /package/src/{swap → actions/swap}/providers/velodrome/abis.ts +0 -0
  810. /package/src/{swap → actions/swap}/providers/velodrome/addresses.ts +0 -0
  811. /package/src/{swap → actions/swap}/providers/velodrome/types.ts +0 -0
  812. /package/src/{ens → services/nameservices/ens}/errors.ts +0 -0
  813. /package/src/{ens → services/nameservices/ens}/types.ts +0 -0
  814. /package/src/utils/{assets.test.ts → __tests__/assets.test.ts} +0 -0
  815. /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
@@ -78,7 +78,7 @@ export function getMorphoContracts(
78
78
  /**
79
79
  * Get all chain IDs where Morpho contracts are deployed.
80
80
  * Returns chains present in the local contracts registry.
81
- * Filtering against ACTIONS_SUPPORTED_CHAIN_IDS and developer-configured chains
81
+ * Filtering against SUPPORTED_CHAIN_IDS and developer-configured chains
82
82
  * is handled by the LendProvider base class.
83
83
  */
84
84
  export function getSupportedChainIds(): number[] {
@@ -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,21 @@
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
- import { ACTIONS_SUPPORTED_CHAIN_IDS } from '@/constants/supportedChains.js'
6
+ import { SUPPORTED_CHAIN_IDS } from '@/constants/supportedChains.js'
7
+ import {
8
+ MarketNotAllowedError,
9
+ ProviderNotConfiguredError,
10
+ QuoteExpiredError,
11
+ QuoteRecipientMissingError,
12
+ } from '@/core/error/errors.js'
13
+ import type { ChainManager } from '@/services/ChainManager.js'
6
14
  import type {
7
15
  SwapExecuteParamsResolved,
8
16
  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'
17
+ } from '@/services/nameservices/ens/types.js'
18
+ import type { ApprovalMode, SwapSettings } from '@/types/actions.js'
13
19
  import type { Asset } from '@/types/asset.js'
14
20
  import type {
15
21
  GetSwapMarketParams,
@@ -29,6 +35,9 @@ import {
29
35
  buildTokenApprovalTx,
30
36
  checkPermit2Allowance,
31
37
  checkTokenAllowance,
38
+ resolveApprovalMode,
39
+ resolveErc20ApprovalAmount,
40
+ resolvePermit2ApprovalAmount,
32
41
  } from '@/utils/approve.js'
33
42
  import {
34
43
  getAssetAddress,
@@ -75,7 +84,7 @@ export abstract class SwapProvider<
75
84
  protected readonly _settings: SwapSettings
76
85
  protected readonly chainManager: ChainManager
77
86
 
78
- constructor(
87
+ protected constructor(
79
88
  config: TConfig,
80
89
  chainManager: ChainManager,
81
90
  settings?: SwapSettings,
@@ -135,9 +144,20 @@ export abstract class SwapProvider<
135
144
  async execute(
136
145
  params: SwapExecuteParamsResolved | SwapQuote,
137
146
  ): Promise<SwapTransaction> {
147
+ // Resolve approval mode once at entry; the resolved value is set back on
148
+ // the params object so all downstream methods read a single populated field.
149
+ const resolvedApprovalMode = resolveApprovalMode(
150
+ params.approvalMode,
151
+ this._config.approvalMode,
152
+ this._settings.approvalMode,
153
+ )
154
+
138
155
  if (QUOTE_DISCRIMINATOR in params) {
139
156
  this.validateSwapExecute(params)
140
- return this.executeFromQuote(params)
157
+ return this.executeFromQuote({
158
+ ...params,
159
+ approvalMode: resolvedApprovalMode,
160
+ })
141
161
  }
142
162
 
143
163
  this.validateSwapExecute(params)
@@ -145,7 +165,9 @@ export abstract class SwapProvider<
145
165
  // Raw params only
146
166
  validateNotBothAmounts(params.amountIn, params.amountOut)
147
167
  validateNotZeroAddress(params.walletAddress, 'walletAddress')
148
- return this._execute(this.resolveParams(params))
168
+ return this._execute(
169
+ this.resolveParams({ ...params, approvalMode: resolvedApprovalMode }),
170
+ )
149
171
  }
150
172
 
151
173
  /**
@@ -200,7 +222,7 @@ export abstract class SwapProvider<
200
222
  const configuredChains = this.chainManager.getSupportedChains()
201
223
  return this.protocolSupportedChainIds().filter(
202
224
  (id) =>
203
- (ACTIONS_SUPPORTED_CHAIN_IDS as readonly number[]).includes(id) &&
225
+ (SUPPORTED_CHAIN_IDS as readonly number[]).includes(id) &&
204
226
  configuredChains.includes(id),
205
227
  )
206
228
  }
@@ -246,9 +268,12 @@ export abstract class SwapProvider<
246
268
  marketBlocklist,
247
269
  )
248
270
  if (isBlocked) {
249
- throw new Error(
250
- `Pair ${assetIn.metadata.symbol}/${assetOut.metadata.symbol} is blocked on chain ${chainId}`,
251
- )
271
+ throw new MarketNotAllowedError({
272
+ assetInSymbol: assetIn.metadata.symbol,
273
+ assetOutSymbol: assetOut.metadata.symbol,
274
+ chainId,
275
+ reason: 'Pair is blocked',
276
+ })
252
277
  }
253
278
  }
254
279
 
@@ -260,9 +285,12 @@ export abstract class SwapProvider<
260
285
  marketAllowlist,
261
286
  )
262
287
  if (!isAllowed) {
263
- throw new Error(
264
- `Pair ${assetIn.metadata.symbol}/${assetOut.metadata.symbol} is not in the allowlist for chain ${chainId}`,
265
- )
288
+ throw new MarketNotAllowedError({
289
+ assetInSymbol: assetIn.metadata.symbol,
290
+ assetOutSymbol: assetOut.metadata.symbol,
291
+ chainId,
292
+ reason: 'Pair is not in the allowlist',
293
+ })
266
294
  }
267
295
  }
268
296
  }
@@ -309,9 +337,10 @@ export abstract class SwapProvider<
309
337
  ): SwapMarketConfig | undefined {
310
338
  const { marketAllowlist } = this._config
311
339
  if (!marketAllowlist?.length) {
312
- throw new Error(
313
- 'No markets configured. Provide a marketAllowlist in swap provider config.',
314
- )
340
+ throw new ProviderNotConfiguredError({
341
+ provider: 'marketAllowlist',
342
+ details: 'Provide a marketAllowlist in swap provider config.',
343
+ })
315
344
  }
316
345
  return this.findMatchingConfig(assetIn, assetOut, chainId, marketAllowlist)
317
346
  }
@@ -320,7 +349,16 @@ export abstract class SwapProvider<
320
349
  * Build Permit2 approval transactions for an ERC20 swap input.
321
350
  * Skipped for native assets. Checks both ERC20→Permit2 and Permit2→spender allowances in parallel.
322
351
  * Uses the resolved `permit2ExpirationSeconds` from provider → global → default.
323
- * @param params - Resolved swap params (wallet address, asset info, chain)
352
+ *
353
+ * Approval amounts honour `params.approvalMode`:
354
+ * - `"exact"` approves only `requiredAmount` for both the outer ERC-20→Permit2
355
+ * allowance and the inner Permit2→spender allowance. Each subsequent swap
356
+ * needs its own approval transaction.
357
+ * - `"max"` approves `maxUint256` for the outer ERC-20 allowance and
358
+ * `maxUint160` (Permit2's allowance type) for the inner Permit2 allowance.
359
+ * Subsequent swaps within the expiration window skip the re-approval round
360
+ * trip entirely.
361
+ * @param params - Resolved swap params (wallet address, asset info, chain, approvalMode)
324
362
  * @param requiredAmount - Amount as raw bigint that must be approved
325
363
  * @param permit2Address - Permit2 contract address
326
364
  * @param permit2Spender - The router/contract that Permit2 should approve (e.g. Universal Router)
@@ -359,7 +397,11 @@ export abstract class SwapProvider<
359
397
 
360
398
  const tokenApproval =
361
399
  tokenAllowance < requiredAmount
362
- ? buildTokenApprovalTx(token, permit2Address)
400
+ ? buildTokenApprovalTx(
401
+ token,
402
+ permit2Address,
403
+ resolveErc20ApprovalAmount(params.approvalMode, requiredAmount),
404
+ )
363
405
  : undefined
364
406
 
365
407
  // Permit2 expiration is in Unix seconds (matching EVM block.timestamp)
@@ -371,7 +413,10 @@ export abstract class SwapProvider<
371
413
  permit2Address,
372
414
  token,
373
415
  spender: permit2Spender,
374
- amount: requiredAmount,
416
+ amount: resolvePermit2ApprovalAmount(
417
+ params.approvalMode,
418
+ requiredAmount,
419
+ ),
375
420
  expirySeconds: this.permit2ExpirationSeconds,
376
421
  })
377
422
  : undefined
@@ -380,13 +425,20 @@ export abstract class SwapProvider<
380
425
  }
381
426
 
382
427
  /**
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
428
+ * Build a SwapTransaction from a quote by fetching approvals and wrapping
429
+ * the swap calldata. Used by both the quote-execute path and provider
430
+ * `_execute` implementations. Quotes are required to have `recipient` set
431
+ * by the provider's `_getQuote`; sub-providers can dereference
432
+ * `quote.recipient` directly. Reads `quote.approvalMode` (populated by
433
+ * `execute()` at entry).
434
+ * @param quote - SwapQuote with recipient and approvalMode set
386
435
  */
387
436
  protected async buildSwapTransactions(
388
437
  quote: SwapQuote,
389
438
  ): Promise<SwapTransaction> {
439
+ if (!quote.recipient) {
440
+ throw new QuoteRecipientMissingError()
441
+ }
390
442
  const approvals = await this._buildApprovals(quote)
391
443
 
392
444
  const swapTx: TransactionData = {
@@ -415,32 +467,6 @@ export abstract class SwapProvider<
415
467
  private async executeFromQuote(quote: SwapQuote): Promise<SwapTransaction> {
416
468
  this.validateQuoteExpiration(quote)
417
469
  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
470
  return this.buildSwapTransactions(quote)
445
471
  }
446
472
 
@@ -454,19 +480,22 @@ export abstract class SwapProvider<
454
480
  validateAmountPositiveIfExists(params.amountIn)
455
481
  validateAmountPositiveIfExists(params.amountOut)
456
482
  validateSlippage(params.slippage ?? this.defaultSlippage, this.maxSlippage)
457
- validateRecipient('recipient' in params ? params.recipient : undefined)
483
+ validateRecipient(params.recipient)
458
484
  }
459
485
 
460
486
  private validateQuoteExpiration(quote: SwapQuote): void {
461
487
  const now = Math.floor(Date.now() / 1000)
462
488
  if (now >= quote.expiresAt) {
463
- throw new Error(
464
- `Quote expired at ${quote.expiresAt}, current time is ${now}`,
465
- )
489
+ throw new QuoteExpiredError({
490
+ expiresAt: quote.expiresAt,
491
+ currentTime: now,
492
+ })
466
493
  }
467
494
  }
468
495
 
469
- private resolveParams(params: SwapExecuteParamsResolved): ResolvedSwapParams {
496
+ private resolveParams(
497
+ params: SwapExecuteParamsResolved & { approvalMode: ApprovalMode },
498
+ ): ResolvedSwapParams {
470
499
  return {
471
500
  amountInRaw: parseAssetAmount(params.assetIn, params.amountIn),
472
501
  amountOutRaw: parseAssetAmount(params.assetOut, params.amountOut),
@@ -480,6 +509,7 @@ export abstract class SwapProvider<
480
509
  recipient: params.recipient ?? params.walletAddress,
481
510
  walletAddress: params.walletAddress,
482
511
  chainId: params.chainId,
512
+ approvalMode: params.approvalMode,
483
513
  }
484
514
  }
485
515
 
@@ -560,8 +590,10 @@ export abstract class SwapProvider<
560
590
 
561
591
  /**
562
592
  * 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
593
+ * Called by the base class during executeFromQuote with a validated
594
+ * recipient and resolved approvalMode. Implementations read
595
+ * `quote.approvalMode` to choose between exact and max approvals.
596
+ * @param quote - SwapQuote with recipient set by the provider's _getQuote and approvalMode populated by execute() at entry
565
597
  * @returns Approval transactions needed before the swap (tokenApproval, permit2Approval)
566
598
  */
567
599
  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
  /**