@eth-optimism/actions-sdk 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/dist/__mocks__/MockAssets.d.ts +17 -2
  2. package/dist/__mocks__/MockAssets.d.ts.map +1 -1
  3. package/dist/__mocks__/MockAssets.js +49 -4
  4. package/dist/__mocks__/MockAssets.js.map +1 -1
  5. package/dist/__tests__/actions.test.js +1 -5
  6. package/dist/__tests__/actions.test.js.map +1 -1
  7. package/dist/actions.d.ts +23 -9
  8. package/dist/actions.d.ts.map +1 -1
  9. package/dist/actions.js +68 -36
  10. package/dist/actions.js.map +1 -1
  11. package/dist/constants/assets.d.ts +217 -2
  12. package/dist/constants/assets.d.ts.map +1 -1
  13. package/dist/constants/assets.js +744 -6
  14. package/dist/constants/assets.js.map +1 -1
  15. package/dist/constants/contracts.d.ts +4 -0
  16. package/dist/constants/contracts.d.ts.map +1 -0
  17. package/dist/constants/contracts.js +3 -0
  18. package/dist/constants/contracts.js.map +1 -0
  19. package/dist/constants/providers.d.ts +6 -0
  20. package/dist/constants/providers.d.ts.map +1 -0
  21. package/dist/constants/providers.js +6 -0
  22. package/dist/constants/providers.js.map +1 -0
  23. package/dist/constants/supportedChains.d.ts +2 -2
  24. package/dist/constants/supportedChains.d.ts.map +1 -1
  25. package/dist/constants/supportedChains.js +12 -2
  26. package/dist/constants/supportedChains.js.map +1 -1
  27. package/dist/index.d.ts +4 -4
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +3 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/lend/__mocks__/MockLendProvider.d.ts +1 -1
  32. package/dist/lend/__mocks__/MockLendProvider.d.ts.map +1 -1
  33. package/dist/lend/__mocks__/MockLendProvider.js +7 -2
  34. package/dist/lend/__mocks__/MockLendProvider.js.map +1 -1
  35. package/dist/lend/core/LendProvider.d.ts +12 -14
  36. package/dist/lend/core/LendProvider.d.ts.map +1 -1
  37. package/dist/lend/core/LendProvider.js +16 -31
  38. package/dist/lend/core/LendProvider.js.map +1 -1
  39. package/dist/lend/core/__tests__/LendProvider.test.js +2 -4
  40. package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
  41. package/dist/lend/namespaces/BaseLendNamespace.d.ts +2 -6
  42. package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +1 -1
  43. package/dist/lend/namespaces/BaseLendNamespace.js.map +1 -1
  44. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js +7 -4
  45. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -1
  46. package/dist/lend/providers/aave/AaveLendProvider.d.ts +1 -6
  47. package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -1
  48. package/dist/lend/providers/aave/AaveLendProvider.js +3 -6
  49. package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -1
  50. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js +14 -6
  51. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -1
  52. package/dist/lend/providers/aave/addresses.d.ts +13 -39
  53. package/dist/lend/providers/aave/addresses.d.ts.map +1 -1
  54. package/dist/lend/providers/aave/addresses.js +65 -60
  55. package/dist/lend/providers/aave/addresses.js.map +1 -1
  56. package/dist/lend/providers/aave/sdk.d.ts +2 -2
  57. package/dist/lend/providers/aave/sdk.d.ts.map +1 -1
  58. package/dist/lend/providers/aave/sdk.js +6 -28
  59. package/dist/lend/providers/aave/sdk.js.map +1 -1
  60. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +1 -6
  61. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -1
  62. package/dist/lend/providers/morpho/MorphoLendProvider.js +4 -13
  63. package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -1
  64. package/dist/lend/providers/morpho/__tests__/api.test.js +52 -43
  65. package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -1
  66. package/dist/lend/providers/morpho/__tests__/sdk.test.js +41 -41
  67. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
  68. package/dist/lend/providers/morpho/api.d.ts +3 -3
  69. package/dist/lend/providers/morpho/api.d.ts.map +1 -1
  70. package/dist/lend/providers/morpho/api.js +2 -2
  71. package/dist/lend/providers/morpho/api.js.map +1 -1
  72. package/dist/lend/providers/morpho/contracts.d.ts +11 -10
  73. package/dist/lend/providers/morpho/contracts.d.ts.map +1 -1
  74. package/dist/lend/providers/morpho/contracts.js +43 -10
  75. package/dist/lend/providers/morpho/contracts.js.map +1 -1
  76. package/dist/lend/providers/morpho/sdk.d.ts +7 -2
  77. package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
  78. package/dist/lend/providers/morpho/sdk.js +67 -54
  79. package/dist/lend/providers/morpho/sdk.js.map +1 -1
  80. package/dist/nodeActionsFactory.d.ts +1 -1
  81. package/dist/reactActionsFactory.d.ts +1 -1
  82. package/dist/services/ChainManager.d.ts +8 -8
  83. package/dist/services/ChainManager.d.ts.map +1 -1
  84. package/dist/services/ChainManager.js.map +1 -1
  85. package/dist/services/__mocks__/MockChainManager.d.ts +4 -4
  86. package/dist/services/__mocks__/MockChainManager.d.ts.map +1 -1
  87. package/dist/services/__mocks__/MockChainManager.js.map +1 -1
  88. package/dist/services/tokenBalance.d.ts +1 -1
  89. package/dist/services/tokenBalance.d.ts.map +1 -1
  90. package/dist/services/tokenBalance.js +31 -30
  91. package/dist/services/tokenBalance.js.map +1 -1
  92. package/dist/services/tokenBalance.spec.js +20 -24
  93. package/dist/services/tokenBalance.spec.js.map +1 -1
  94. package/dist/swap/__mocks__/MockSwapProvider.d.ts +50 -0
  95. package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
  96. package/dist/swap/__mocks__/MockSwapProvider.js +161 -0
  97. package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -0
  98. package/dist/swap/core/SwapProvider.d.ts +145 -0
  99. package/dist/swap/core/SwapProvider.d.ts.map +1 -0
  100. package/dist/swap/core/SwapProvider.js +359 -0
  101. package/dist/swap/core/SwapProvider.js.map +1 -0
  102. package/dist/swap/core/__tests__/SwapProvider.test.d.ts +2 -0
  103. package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
  104. package/dist/swap/core/__tests__/SwapProvider.test.js +435 -0
  105. package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -0
  106. package/dist/swap/core/markets.d.ts +47 -0
  107. package/dist/swap/core/markets.d.ts.map +1 -0
  108. package/dist/swap/core/markets.js +65 -0
  109. package/dist/swap/core/markets.js.map +1 -0
  110. package/dist/swap/index.d.ts +9 -0
  111. package/dist/swap/index.d.ts.map +1 -0
  112. package/dist/swap/index.js +9 -0
  113. package/dist/swap/index.js.map +1 -0
  114. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +8 -0
  115. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
  116. package/dist/swap/namespaces/ActionsSwapNamespace.js +8 -0
  117. package/dist/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
  118. package/dist/swap/namespaces/BaseSwapNamespace.d.ts +73 -0
  119. package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
  120. package/dist/swap/namespaces/BaseSwapNamespace.js +181 -0
  121. package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -0
  122. package/dist/swap/namespaces/WalletSwapNamespace.d.ts +34 -0
  123. package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
  124. package/dist/swap/namespaces/WalletSwapNamespace.js +84 -0
  125. package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -0
  126. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +2 -0
  127. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
  128. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +245 -0
  129. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
  130. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +2 -0
  131. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
  132. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +209 -0
  133. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
  134. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +35 -0
  135. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
  136. package/dist/swap/providers/uniswap/UniswapSwapProvider.js +148 -0
  137. package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
  138. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +2 -0
  139. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
  140. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +258 -0
  141. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
  142. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts +2 -0
  143. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
  144. package/dist/swap/providers/uniswap/__tests__/sdk.test.js +312 -0
  145. package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
  146. package/dist/swap/providers/uniswap/abis.d.ts +227 -0
  147. package/dist/swap/providers/uniswap/abis.d.ts.map +1 -0
  148. package/dist/swap/providers/uniswap/abis.js +138 -0
  149. package/dist/swap/providers/uniswap/abis.js.map +1 -0
  150. package/dist/swap/providers/uniswap/addresses.d.ts +26 -0
  151. package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -0
  152. package/dist/swap/providers/uniswap/addresses.js +81 -0
  153. package/dist/swap/providers/uniswap/addresses.js.map +1 -0
  154. package/dist/swap/providers/uniswap/encoding.d.ts +77 -0
  155. package/dist/swap/providers/uniswap/encoding.d.ts.map +1 -0
  156. package/dist/swap/providers/uniswap/encoding.js +233 -0
  157. package/dist/swap/providers/uniswap/encoding.js.map +1 -0
  158. package/dist/swap/providers/uniswap/markets.d.ts +19 -0
  159. package/dist/swap/providers/uniswap/markets.d.ts.map +1 -0
  160. package/dist/swap/providers/uniswap/markets.js +48 -0
  161. package/dist/swap/providers/uniswap/markets.js.map +1 -0
  162. package/dist/swap/providers/uniswap/types.d.ts +21 -0
  163. package/dist/swap/providers/uniswap/types.d.ts.map +1 -0
  164. package/dist/swap/providers/uniswap/types.js +2 -0
  165. package/dist/swap/providers/uniswap/types.js.map +1 -0
  166. package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts +49 -0
  167. package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +1 -0
  168. package/dist/swap/providers/velodrome/VelodromeSwapProvider.js +140 -0
  169. package/dist/swap/providers/velodrome/VelodromeSwapProvider.js.map +1 -0
  170. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts +2 -0
  171. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +1 -0
  172. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js +255 -0
  173. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +1 -0
  174. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts +2 -0
  175. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +1 -0
  176. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js +166 -0
  177. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +1 -0
  178. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts +2 -0
  179. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +1 -0
  180. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js +419 -0
  181. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +1 -0
  182. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts +2 -0
  183. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +1 -0
  184. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js +51 -0
  185. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +1 -0
  186. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts +14 -0
  187. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +1 -0
  188. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js +13 -0
  189. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js.map +1 -0
  190. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts +2 -0
  191. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +1 -0
  192. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js +173 -0
  193. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +1 -0
  194. package/dist/swap/providers/velodrome/abis.d.ts +396 -0
  195. package/dist/swap/providers/velodrome/abis.d.ts.map +1 -0
  196. package/dist/swap/providers/velodrome/abis.js +257 -0
  197. package/dist/swap/providers/velodrome/abis.js.map +1 -0
  198. package/dist/swap/providers/velodrome/addresses.d.ts +39 -0
  199. package/dist/swap/providers/velodrome/addresses.d.ts.map +1 -0
  200. package/dist/swap/providers/velodrome/addresses.js +57 -0
  201. package/dist/swap/providers/velodrome/addresses.js.map +1 -0
  202. package/dist/swap/providers/velodrome/config.d.ts +22 -0
  203. package/dist/swap/providers/velodrome/config.d.ts.map +1 -0
  204. package/dist/swap/providers/velodrome/config.js +29 -0
  205. package/dist/swap/providers/velodrome/config.js.map +1 -0
  206. package/dist/swap/providers/velodrome/encoding/helpers.d.ts +37 -0
  207. package/dist/swap/providers/velodrome/encoding/helpers.d.ts.map +1 -0
  208. package/dist/swap/providers/velodrome/encoding/helpers.js +60 -0
  209. package/dist/swap/providers/velodrome/encoding/helpers.js.map +1 -0
  210. package/dist/swap/providers/velodrome/encoding/index.d.ts +8 -0
  211. package/dist/swap/providers/velodrome/encoding/index.d.ts.map +1 -0
  212. package/dist/swap/providers/velodrome/encoding/index.js +5 -0
  213. package/dist/swap/providers/velodrome/encoding/index.js.map +1 -0
  214. package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts +39 -0
  215. package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts.map +1 -0
  216. package/dist/swap/providers/velodrome/encoding/poolRouter.js +83 -0
  217. package/dist/swap/providers/velodrome/encoding/poolRouter.js.map +1 -0
  218. package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts +15 -0
  219. package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts.map +1 -0
  220. package/dist/swap/providers/velodrome/encoding/routers/approval.js +33 -0
  221. package/dist/swap/providers/velodrome/encoding/routers/approval.js.map +1 -0
  222. package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts +40 -0
  223. package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts.map +1 -0
  224. package/dist/swap/providers/velodrome/encoding/routers/cl.js +80 -0
  225. package/dist/swap/providers/velodrome/encoding/routers/cl.js.map +1 -0
  226. package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts +42 -0
  227. package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts.map +1 -0
  228. package/dist/swap/providers/velodrome/encoding/routers/v2.js +166 -0
  229. package/dist/swap/providers/velodrome/encoding/routers/v2.js.map +1 -0
  230. package/dist/swap/providers/velodrome/markets.d.ts +21 -0
  231. package/dist/swap/providers/velodrome/markets.d.ts.map +1 -0
  232. package/dist/swap/providers/velodrome/markets.js +69 -0
  233. package/dist/swap/providers/velodrome/markets.js.map +1 -0
  234. package/dist/swap/providers/velodrome/types.d.ts +31 -0
  235. package/dist/swap/providers/velodrome/types.d.ts.map +1 -0
  236. package/dist/swap/providers/velodrome/types.js +2 -0
  237. package/dist/swap/providers/velodrome/types.js.map +1 -0
  238. package/dist/types/actions.d.ts +60 -11
  239. package/dist/types/actions.d.ts.map +1 -1
  240. package/dist/types/asset.d.ts +7 -9
  241. package/dist/types/asset.d.ts.map +1 -1
  242. package/dist/types/chain.d.ts +2 -2
  243. package/dist/types/chain.d.ts.map +1 -1
  244. package/dist/types/index.d.ts +2 -0
  245. package/dist/types/index.d.ts.map +1 -1
  246. package/dist/types/index.js +2 -0
  247. package/dist/types/index.js.map +1 -1
  248. package/dist/types/lend/base.d.ts +9 -19
  249. package/dist/types/lend/base.d.ts.map +1 -1
  250. package/dist/types/lend/base.js.map +1 -1
  251. package/dist/types/lend/contracts.d.ts +2 -1
  252. package/dist/types/lend/contracts.d.ts.map +1 -1
  253. package/dist/types/providers.d.ts +21 -0
  254. package/dist/types/providers.d.ts.map +1 -0
  255. package/dist/types/providers.js +2 -0
  256. package/dist/types/providers.js.map +1 -0
  257. package/dist/types/swap/base.d.ts +338 -0
  258. package/dist/types/swap/base.d.ts.map +1 -0
  259. package/dist/types/swap/base.js +4 -0
  260. package/dist/types/swap/base.js.map +1 -0
  261. package/dist/types/swap/index.d.ts +2 -0
  262. package/dist/types/swap/index.d.ts.map +1 -0
  263. package/dist/types/swap/index.js +2 -0
  264. package/dist/types/swap/index.js.map +1 -0
  265. package/dist/types/transaction.d.ts +14 -0
  266. package/dist/types/transaction.d.ts.map +1 -0
  267. package/dist/types/transaction.js +2 -0
  268. package/dist/types/transaction.js.map +1 -0
  269. package/dist/utils/approve.d.ts +82 -0
  270. package/dist/utils/approve.d.ts.map +1 -0
  271. package/dist/utils/approve.js +134 -0
  272. package/dist/utils/approve.js.map +1 -0
  273. package/dist/utils/approve.test.d.ts +2 -0
  274. package/dist/utils/approve.test.d.ts.map +1 -0
  275. package/dist/utils/approve.test.js +203 -0
  276. package/dist/utils/approve.test.js.map +1 -0
  277. package/dist/utils/assets.d.ts +10 -5
  278. package/dist/utils/assets.d.ts.map +1 -1
  279. package/dist/utils/assets.js +14 -11
  280. package/dist/utils/assets.js.map +1 -1
  281. package/dist/utils/assets.test.js +13 -1
  282. package/dist/utils/assets.test.js.map +1 -1
  283. package/dist/utils/validateAddresses.d.ts +32 -0
  284. package/dist/utils/validateAddresses.d.ts.map +1 -0
  285. package/dist/utils/validateAddresses.js +103 -0
  286. package/dist/utils/validateAddresses.js.map +1 -0
  287. package/dist/utils/validateAddresses.test.d.ts +2 -0
  288. package/dist/utils/validateAddresses.test.d.ts.map +1 -0
  289. package/dist/utils/validateAddresses.test.js +314 -0
  290. package/dist/utils/validateAddresses.test.js.map +1 -0
  291. package/dist/utils/validation.d.ts +12 -0
  292. package/dist/utils/validation.d.ts.map +1 -0
  293. package/dist/utils/validation.js +44 -0
  294. package/dist/utils/validation.js.map +1 -0
  295. package/dist/wallet/core/namespace/WalletNamespace.d.ts +21 -9
  296. package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
  297. package/dist/wallet/core/namespace/WalletNamespace.js +44 -15
  298. package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
  299. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +4 -4
  300. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
  301. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +4 -10
  302. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
  303. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +2 -1
  304. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
  305. package/dist/wallet/core/providers/hosted/types/index.d.ts +6 -7
  306. package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
  307. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +5 -6
  308. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
  309. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +5 -1
  310. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
  311. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +2 -2
  312. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
  313. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +12 -12
  314. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  315. package/dist/wallet/core/wallets/abstract/Wallet.js +9 -4
  316. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  317. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +10 -1
  318. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -1
  319. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js +2 -2
  320. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -1
  321. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +12 -4
  322. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
  323. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +5 -7
  324. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  325. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +6 -5
  326. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  327. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
  328. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +4 -6
  329. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  330. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -1
  331. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  332. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts +2 -4
  333. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
  334. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +8 -9
  335. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
  336. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +4 -4
  337. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
  338. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +3 -6
  339. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  340. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +4 -2
  341. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  342. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +4 -6
  343. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  344. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +4 -3
  345. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  346. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +3 -6
  347. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  348. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  349. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  350. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +6 -6
  351. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
  352. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +7 -2
  353. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
  354. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -0
  355. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
  356. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +5 -6
  357. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  358. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +6 -2
  359. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  360. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -0
  361. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  362. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +5 -8
  363. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  364. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +6 -4
  365. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  366. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts +2 -4
  367. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
  368. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +11 -13
  369. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
  370. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +6 -6
  371. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
  372. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +7 -6
  373. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
  374. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +5 -3
  375. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
  376. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +2 -6
  377. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -1
  378. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -1
  379. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -6
  380. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  381. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
  382. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  383. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -6
  384. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  385. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  386. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  387. package/package.json +4 -3
  388. package/src/__mocks__/MockAssets.ts +54 -4
  389. package/src/__tests__/actions.test.ts +1 -5
  390. package/src/actions.ts +106 -71
  391. package/src/constants/assets.ts +792 -5
  392. package/src/constants/contracts.ts +5 -0
  393. package/src/constants/providers.ts +5 -0
  394. package/src/constants/supportedChains.ts +22 -2
  395. package/src/index.ts +76 -6
  396. package/src/lend/__mocks__/MockLendProvider.ts +8 -3
  397. package/src/lend/core/LendProvider.ts +28 -41
  398. package/src/lend/core/__tests__/LendProvider.test.ts +2 -5
  399. package/src/lend/namespaces/BaseLendNamespace.ts +2 -6
  400. package/src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts +12 -5
  401. package/src/lend/providers/aave/AaveLendProvider.ts +3 -7
  402. package/src/lend/providers/aave/__tests__/AaveLendProvider.test.ts +16 -7
  403. package/src/lend/providers/aave/addresses.ts +82 -64
  404. package/src/lend/providers/aave/sdk.ts +11 -36
  405. package/src/lend/providers/morpho/MorphoLendProvider.ts +4 -16
  406. package/src/lend/providers/morpho/__tests__/api.test.ts +65 -44
  407. package/src/lend/providers/morpho/__tests__/sdk.test.ts +43 -42
  408. package/src/lend/providers/morpho/api.ts +7 -4
  409. package/src/lend/providers/morpho/contracts.ts +62 -13
  410. package/src/lend/providers/morpho/sdk.ts +85 -54
  411. package/src/services/ChainManager.ts +12 -21
  412. package/src/services/__mocks__/MockChainManager.ts +4 -7
  413. package/src/services/tokenBalance.spec.ts +20 -24
  414. package/src/services/tokenBalance.ts +39 -33
  415. package/src/swap/__mocks__/MockSwapProvider.ts +251 -0
  416. package/src/swap/core/SwapProvider.ts +577 -0
  417. package/src/swap/core/__tests__/SwapProvider.test.ts +620 -0
  418. package/src/swap/core/markets.ts +104 -0
  419. package/src/swap/index.ts +19 -0
  420. package/src/swap/namespaces/ActionsSwapNamespace.ts +7 -0
  421. package/src/swap/namespaces/BaseSwapNamespace.ts +258 -0
  422. package/src/swap/namespaces/WalletSwapNamespace.ts +121 -0
  423. package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +365 -0
  424. package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +257 -0
  425. package/src/swap/providers/uniswap/UniswapSwapProvider.ts +217 -0
  426. package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +299 -0
  427. package/src/swap/providers/uniswap/__tests__/sdk.test.ts +369 -0
  428. package/src/swap/providers/uniswap/abis.ts +144 -0
  429. package/src/swap/providers/uniswap/addresses.ts +110 -0
  430. package/src/swap/providers/uniswap/encoding.ts +406 -0
  431. package/src/swap/providers/uniswap/markets.ts +84 -0
  432. package/src/swap/providers/uniswap/types.ts +25 -0
  433. package/src/swap/providers/velodrome/VelodromeSwapProvider.ts +224 -0
  434. package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.ts +341 -0
  435. package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.ts +202 -0
  436. package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.ts +506 -0
  437. package/src/swap/providers/velodrome/__tests__/encoding.cl.test.ts +69 -0
  438. package/src/swap/providers/velodrome/__tests__/encoding.helpers.ts +20 -0
  439. package/src/swap/providers/velodrome/__tests__/encoding.v2.test.ts +235 -0
  440. package/src/swap/providers/velodrome/abis.ts +264 -0
  441. package/src/swap/providers/velodrome/addresses.ts +107 -0
  442. package/src/swap/providers/velodrome/config.ts +46 -0
  443. package/src/swap/providers/velodrome/encoding/helpers.ts +82 -0
  444. package/src/swap/providers/velodrome/encoding/index.ts +7 -0
  445. package/src/swap/providers/velodrome/encoding/poolRouter.ts +124 -0
  446. package/src/swap/providers/velodrome/encoding/routers/approval.ts +45 -0
  447. package/src/swap/providers/velodrome/encoding/routers/cl.ts +156 -0
  448. package/src/swap/providers/velodrome/encoding/routers/v2.ts +267 -0
  449. package/src/swap/providers/velodrome/markets.ts +100 -0
  450. package/src/swap/providers/velodrome/types.ts +30 -0
  451. package/src/types/actions.ts +68 -12
  452. package/src/types/asset.ts +12 -9
  453. package/src/types/chain.ts +2 -2
  454. package/src/types/index.ts +2 -0
  455. package/src/types/lend/base.ts +10 -20
  456. package/src/types/lend/contracts.ts +5 -1
  457. package/src/types/providers.ts +22 -0
  458. package/src/types/swap/base.ts +372 -0
  459. package/src/types/swap/index.ts +1 -0
  460. package/src/types/transaction.ts +14 -0
  461. package/src/utils/approve.test.ts +258 -0
  462. package/src/utils/approve.ts +197 -0
  463. package/src/utils/assets.test.ts +16 -1
  464. package/src/utils/assets.ts +27 -10
  465. package/src/utils/validateAddresses.test.ts +439 -0
  466. package/src/utils/validateAddresses.ts +153 -0
  467. package/src/utils/validation.ts +76 -0
  468. package/src/wallet/core/namespace/WalletNamespace.ts +70 -16
  469. package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +8 -4
  470. package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +6 -10
  471. package/src/wallet/core/providers/hosted/types/index.ts +9 -7
  472. package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +10 -10
  473. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +2 -0
  474. package/src/wallet/core/wallets/abstract/Wallet.ts +23 -14
  475. package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +13 -1
  476. package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +21 -5
  477. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +11 -14
  478. package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +0 -1
  479. package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +11 -7
  480. package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +16 -8
  481. package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +4 -4
  482. package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +6 -7
  483. package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +8 -11
  484. package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +7 -11
  485. package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +11 -7
  486. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -0
  487. package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +10 -7
  488. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -0
  489. package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +10 -9
  490. package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +38 -13
  491. package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +6 -6
  492. package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +13 -11
  493. package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +2 -6
  494. package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +11 -11
  495. package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +11 -11
  496. package/dist/supported/tokens.d.ts +0 -25
  497. package/dist/supported/tokens.d.ts.map +0 -1
  498. package/dist/supported/tokens.js +0 -37
  499. package/dist/supported/tokens.js.map +0 -1
  500. package/src/supported/tokens.ts +0 -52
@@ -1,6 +1,4 @@
1
1
  import { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
2
- import { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
3
- import { TurnkeyHostedWalletProvider } from '@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
4
2
  import type {
5
3
  NodeHostedProviderInstanceMap,
6
4
  NodeOptionsMap,
@@ -11,10 +9,8 @@ import type {
11
9
  * Node hosted wallet provider registry
12
10
  * @description
13
11
  * Environment-scoped registry that binds Node/server provider keys to their
14
- * factory implementations. This ensures browser-only hosted providers are
15
- * discoverable at runtime without importing Node-only code. The registry
16
- * pre-registers 'privy' and 'turnkey' providers and can be extended with
17
- * additional providers via `register`.
12
+ * factory implementations. Provider code is loaded lazily via dynamic import()
13
+ * so that unused wallet SDKs are not included in the bundle.
18
14
  */
19
15
  export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegistry<
20
16
  NodeHostedProviderInstanceMap,
@@ -28,11 +24,17 @@ export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegist
28
24
  validateOptions(options): options is NodeOptionsMap['privy'] {
29
25
  return Boolean((options as NodeOptionsMap['privy'])?.privyClient)
30
26
  },
31
- create({ chainManager, lendProviders, supportedAssets }, options) {
27
+ async create(
28
+ { chainManager, lendProviders, swapProviders, supportedAssets },
29
+ options,
30
+ ) {
31
+ const { PrivyHostedWalletProvider } =
32
+ await import('@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js')
32
33
  return new PrivyHostedWalletProvider({
33
34
  privyClient: options.privyClient,
34
35
  chainManager,
35
36
  lendProviders,
37
+ swapProviders,
36
38
  supportedAssets,
37
39
  authorizationContext: options.authorizationContext,
38
40
  })
@@ -45,11 +47,17 @@ export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegist
45
47
  const o = options as NodeOptionsMap['turnkey']
46
48
  return Boolean(o?.client)
47
49
  },
48
- create({ chainManager, lendProviders, supportedAssets }, options) {
50
+ async create(
51
+ { chainManager, lendProviders, swapProviders, supportedAssets },
52
+ options,
53
+ ) {
54
+ const { TurnkeyHostedWalletProvider } =
55
+ await import('@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js')
49
56
  return new TurnkeyHostedWalletProvider(
50
57
  options.client,
51
58
  chainManager,
52
59
  lendProviders,
60
+ swapProviders,
53
61
  supportedAssets,
54
62
  )
55
63
  },
@@ -54,11 +54,11 @@ describe('NodeHostedWalletProviderRegistry', () => {
54
54
  ).toBe(false)
55
55
  })
56
56
 
57
- it('creates a PrivyHostedWalletProvider instance', () => {
57
+ it('creates a PrivyHostedWalletProvider instance', async () => {
58
58
  const registry = new NodeHostedWalletProviderRegistry()
59
59
  const factory = registry.getFactory('privy')
60
60
 
61
- const provider = factory.create({ chainManager: mockChainManager }, {
61
+ const provider = await factory.create({ chainManager: mockChainManager }, {
62
62
  privyClient: mockPrivyClient,
63
63
  authorizationContext: getMockAuthorizationContext(),
64
64
  } as NodeOptionsMap['privy'])
@@ -80,11 +80,11 @@ describe('NodeHostedWalletProviderRegistry', () => {
80
80
  expect(factory.validateOptions?.({})).toBe(false)
81
81
  })
82
82
 
83
- it('creates a TurnkeyHostedWalletProvider instance', () => {
83
+ it('creates a TurnkeyHostedWalletProvider instance', async () => {
84
84
  const registry = new NodeHostedWalletProviderRegistry()
85
85
  const factory = registry.getFactory('turnkey')
86
86
 
87
- const provider = factory.create(
87
+ const provider = await factory.create(
88
88
  { chainManager: mockChainManager },
89
89
  {
90
90
  client: mockTurnkeyClient,
@@ -3,10 +3,9 @@ import type { TurnkeyClient as TurnkeyHttpClient } from '@turnkey/http'
3
3
  import type { TurnkeyServerClient } from '@turnkey/sdk-server'
4
4
  import type { LocalAccount } from 'viem'
5
5
 
6
- import type { LendProvider } from '@/lend/core/LendProvider.js'
7
6
  import type { ChainManager } from '@/services/ChainManager.js'
8
- import type { LendProviderConfig } from '@/types/actions.js'
9
7
  import type { Asset } from '@/types/asset.js'
8
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
10
9
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
11
10
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
12
11
  import type { NodeToActionsOptionsMap } from '@/wallet/node/providers/hosted/types/index.js'
@@ -29,6 +28,7 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
29
28
  * @param client - Turnkey client instance (HTTP, server, or core SDK base)
30
29
  * @param chainManager - Chain manager used to resolve chains and RPC transports
31
30
  * @param lendProviders - Optional lend providers for DeFi operations
31
+ * @param swapProviders - Optional swap providers for trading operations
32
32
  * @param supportedAssets - Optional list of supported assets
33
33
  */
34
34
  constructor(
@@ -37,13 +37,11 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
37
37
  | TurnkeyServerClient
38
38
  | TurnkeySDKClientBase,
39
39
  chainManager: ChainManager,
40
- lendProviders?: {
41
- morpho?: LendProvider<LendProviderConfig>
42
- aave?: LendProvider<LendProviderConfig>
43
- },
40
+ lendProviders?: LendProviders,
41
+ swapProviders?: SwapProviders,
44
42
  supportedAssets?: Asset[],
45
43
  ) {
46
- super(chainManager, lendProviders, supportedAssets)
44
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
47
45
  }
48
46
 
49
47
  /**
@@ -65,6 +63,7 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
65
63
  ethereumAddress: params.ethereumAddress,
66
64
  chainManager: this.chainManager,
67
65
  lendProviders: this.lendProviders,
66
+ swapProviders: this.swapProviders,
68
67
  supportedAssets: this.supportedAssets,
69
68
  })
70
69
  }
@@ -1,10 +1,9 @@
1
1
  import type { AuthorizationContext, PrivyClient } from '@privy-io/node'
2
2
  import { type Address, type LocalAccount } from 'viem'
3
3
 
4
- import type { LendProvider } from '@/lend/core/LendProvider.js'
5
4
  import type { ChainManager } from '@/services/ChainManager.js'
6
- import type { LendProviderConfig } from '@/types/actions.js'
7
5
  import type { Asset } from '@/types/asset.js'
6
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
8
7
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
9
8
  import { createSigner } from '@/wallet/node/wallets/hosted/privy/utils/createSigner.js'
10
9
 
@@ -26,6 +25,7 @@ export class PrivyWallet extends EOAWallet {
26
25
  * @param address - Ethereum address of the wallet
27
26
  * @param chainManager - Chain manager for multi-chain operations
28
27
  * @param lendProviders - Optional lend providers for DeFi operations
28
+ * @param swapProviders - Optional swap providers for trading operations
29
29
  * @param supportedAssets - Optional list of supported assets
30
30
  */
31
31
  private constructor(
@@ -33,14 +33,12 @@ export class PrivyWallet extends EOAWallet {
33
33
  walletId: string,
34
34
  address: Address,
35
35
  chainManager: ChainManager,
36
- lendProviders?: {
37
- morpho?: LendProvider<LendProviderConfig>
38
- aave?: LendProvider<LendProviderConfig>
39
- },
36
+ lendProviders?: LendProviders,
37
+ swapProviders?: SwapProviders,
40
38
  supportedAssets?: Asset[],
41
39
  authorizationContext?: AuthorizationContext,
42
40
  ) {
43
- super(chainManager, lendProviders, supportedAssets)
41
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
44
42
  this.privyClient = privyClient
45
43
  this.authorizationContext = authorizationContext
46
44
  this.walletId = walletId
@@ -53,10 +51,8 @@ export class PrivyWallet extends EOAWallet {
53
51
  walletId: string
54
52
  address: Address
55
53
  chainManager: ChainManager
56
- lendProviders?: {
57
- morpho?: LendProvider<LendProviderConfig>
58
- aave?: LendProvider<LendProviderConfig>
59
- }
54
+ lendProviders?: LendProviders
55
+ swapProviders?: SwapProviders
60
56
  supportedAssets?: Asset[]
61
57
  }): Promise<PrivyWallet> {
62
58
  const wallet = new PrivyWallet(
@@ -65,6 +61,7 @@ export class PrivyWallet extends EOAWallet {
65
61
  params.address,
66
62
  params.chainManager,
67
63
  params.lendProviders,
64
+ params.swapProviders,
68
65
  params.supportedAssets,
69
66
  params.authorizationContext,
70
67
  )
@@ -3,10 +3,9 @@ import type { TurnkeyClient } from '@turnkey/http'
3
3
  import type { TurnkeyServerClient } from '@turnkey/sdk-server'
4
4
  import type { Address, LocalAccount } from 'viem'
5
5
 
6
- import type { LendProvider } from '@/lend/core/LendProvider.js'
7
6
  import type { ChainManager } from '@/services/ChainManager.js'
8
- import type { LendProviderConfig } from '@/types/actions.js'
9
7
  import type { Asset } from '@/types/asset.js'
8
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
10
9
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
11
10
  import { createSigner } from '@/wallet/node/wallets/hosted/turnkey/utils/createSigner.js'
12
11
 
@@ -46,10 +45,8 @@ export class TurnkeyWallet extends EOAWallet {
46
45
  organizationId: string
47
46
  signWith: string
48
47
  ethereumAddress?: string
49
- lendProviders?: {
50
- morpho?: LendProvider<LendProviderConfig>
51
- aave?: LendProvider<LendProviderConfig>
52
- }
48
+ lendProviders?: LendProviders
49
+ swapProviders?: SwapProviders
53
50
  supportedAssets?: Asset[]
54
51
  }) {
55
52
  const {
@@ -59,9 +56,10 @@ export class TurnkeyWallet extends EOAWallet {
59
56
  signWith,
60
57
  ethereumAddress,
61
58
  lendProviders,
59
+ swapProviders,
62
60
  supportedAssets,
63
61
  } = params
64
- super(chainManager, lendProviders, supportedAssets)
62
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
65
63
  this.client = client
66
64
  this.organizationId = organizationId
67
65
  this.signWith = signWith
@@ -74,10 +72,8 @@ export class TurnkeyWallet extends EOAWallet {
74
72
  organizationId: string
75
73
  signWith: string
76
74
  ethereumAddress?: string
77
- lendProviders?: {
78
- morpho?: LendProvider<LendProviderConfig>
79
- aave?: LendProvider<LendProviderConfig>
80
- }
75
+ lendProviders?: LendProviders
76
+ swapProviders?: SwapProviders
81
77
  supportedAssets?: Asset[]
82
78
  }): Promise<TurnkeyWallet> {
83
79
  const wallet = new TurnkeyWallet(params)
@@ -1,8 +1,8 @@
1
1
  import type { LocalAccount } from 'viem'
2
2
 
3
- import type { LendProvider } from '@/lend/core/LendProvider.js'
4
3
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
4
+ import type { Asset } from '@/types/asset.js'
5
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
6
6
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
7
7
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
8
8
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -19,15 +19,17 @@ export class DynamicHostedWalletProvider extends HostedWalletProvider<
19
19
  > {
20
20
  /**
21
21
  * Create a new Dynamic wallet provider
22
+ * @param chainManager Chain manager for RPC, chain info, and transports
23
+ * @param lendProviders Optional lend providers for DeFi operations
24
+ * @param swapProviders Optional swap providers for trading operations
22
25
  */
23
26
  constructor(
24
27
  chainManager: ChainManager,
25
- lendProviders?: {
26
- morpho?: LendProvider<LendProviderConfig>
27
- aave?: LendProvider<LendProviderConfig>
28
- },
28
+ lendProviders?: LendProviders,
29
+ swapProviders?: SwapProviders,
30
+ supportedAssets?: Asset[],
29
31
  ) {
30
- super(chainManager, lendProviders)
32
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
31
33
  }
32
34
 
33
35
  async toActionsWallet(
@@ -37,6 +39,8 @@ export class DynamicHostedWalletProvider extends HostedWalletProvider<
37
39
  dynamicWallet: params.wallet,
38
40
  chainManager: this.chainManager,
39
41
  lendProviders: this.lendProviders,
42
+ swapProviders: this.swapProviders,
43
+ supportedAssets: this.supportedAssets,
40
44
  })
41
45
  }
42
46
 
@@ -56,6 +56,7 @@ describe('DynamicHostedWalletProvider', () => {
56
56
  dynamicWallet: mockDynamicWallet,
57
57
  chainManager: mockChainManager,
58
58
  lendProviders: {},
59
+ swapProviders: {},
59
60
  })
60
61
  expect(result).toBe(mockResult)
61
62
  })
@@ -1,8 +1,8 @@
1
1
  import type { LocalAccount } from 'viem'
2
2
 
3
- import type { LendProvider } from '@/lend/core/LendProvider.js'
4
3
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
4
+ import type { Asset } from '@/types/asset.js'
5
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
6
6
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
7
7
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
8
8
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -19,15 +19,16 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
19
19
  /**
20
20
  * Create a new Privy wallet provider
21
21
  * @param chainManager Chain manager for RPC, chain info, and transports
22
+ * @param lendProviders Optional lend providers for DeFi operations
23
+ * @param swapProviders Optional swap providers for trading operations
22
24
  */
23
25
  constructor(
24
26
  chainManager: ChainManager,
25
- lendProviders?: {
26
- morpho?: LendProvider<LendProviderConfig>
27
- aave?: LendProvider<LendProviderConfig>
28
- },
27
+ lendProviders?: LendProviders,
28
+ swapProviders?: SwapProviders,
29
+ supportedAssets?: Asset[],
29
30
  ) {
30
- super(chainManager, lendProviders)
31
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
31
32
  }
32
33
 
33
34
  async toActionsWallet(
@@ -38,6 +39,8 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
38
39
  chainManager: this.chainManager,
39
40
  connectedWallet,
40
41
  lendProviders: this.lendProviders,
42
+ swapProviders: this.swapProviders,
43
+ supportedAssets: this.supportedAssets,
41
44
  })
42
45
  return wallet
43
46
  }
@@ -40,6 +40,7 @@ describe('PrivyHostedWalletProvider (React)', () => {
40
40
  chainManager: mockChainManager,
41
41
  connectedWallet: mockConnectedWallet,
42
42
  lendProviders: {},
43
+ swapProviders: {},
43
44
  })
44
45
  expect(result).toBe(mockActionsWallet)
45
46
  })
@@ -1,8 +1,8 @@
1
1
  import type { LocalAccount } from 'viem'
2
2
 
3
- import type { LendProvider } from '@/lend/core/LendProvider.js'
4
3
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
4
+ import type { Asset } from '@/types/asset.js'
5
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
6
6
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
7
7
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
8
8
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -22,18 +22,17 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
22
22
  > {
23
23
  /**
24
24
  * Create a new Turnkey wallet provider
25
- * @param client - Turnkey browser client instance
26
- * @param organizationId - Turnkey organization ID that owns the signing key
27
25
  * @param chainManager - Chain manager used to resolve chains and RPC transports
26
+ * @param lendProviders - Optional lend providers for DeFi operations
27
+ * @param swapProviders - Optional swap providers for trading operations
28
28
  */
29
29
  constructor(
30
30
  chainManager: ChainManager,
31
- lendProviders?: {
32
- morpho?: LendProvider<LendProviderConfig>
33
- aave?: LendProvider<LendProviderConfig>
34
- },
31
+ lendProviders?: LendProviders,
32
+ swapProviders?: SwapProviders,
33
+ supportedAssets?: Asset[],
35
34
  ) {
36
- super(chainManager, lendProviders)
35
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
37
36
  }
38
37
 
39
38
  /**
@@ -58,6 +57,8 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
58
57
  ethereumAddress,
59
58
  chainManager: this.chainManager,
60
59
  lendProviders: this.lendProviders,
60
+ swapProviders: this.swapProviders,
61
+ supportedAssets: this.supportedAssets,
61
62
  })
62
63
  }
63
64
 
@@ -1,7 +1,4 @@
1
1
  import { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
2
- import { DynamicHostedWalletProvider } from '@/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js'
3
- import { PrivyHostedWalletProvider } from '@/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js'
4
- import { TurnkeyHostedWalletProvider } from '@/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
5
2
  import type {
6
3
  ReactHostedProviderInstanceMap,
7
4
  ReactOptionsMap,
@@ -12,10 +9,8 @@ import type {
12
9
  * React hosted wallet provider registry
13
10
  * @description
14
11
  * Environment-scoped registry that binds React/browser provider keys to their
15
- * factory implementations. This ensures browser-only hosted providers are
16
- * discoverable at runtime without importing Node-only code. The registry
17
- * pre-registers 'dynamic' and 'privy' providers and can be extended with
18
- * additional providers via `register`.
12
+ * factory implementations. Provider code is loaded lazily via dynamic import()
13
+ * so that unused wallet SDKs are not included in the bundle.
19
14
  */
20
15
  export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegistry<
21
16
  ReactHostedProviderInstanceMap,
@@ -29,8 +24,18 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
29
24
  validateOptions(_options): _options is ReactOptionsMap['dynamic'] {
30
25
  return true
31
26
  },
32
- create({ chainManager, lendProviders }, _options) {
33
- return new DynamicHostedWalletProvider(chainManager, lendProviders)
27
+ async create(
28
+ { chainManager, lendProviders, swapProviders, supportedAssets },
29
+ _options,
30
+ ) {
31
+ const { DynamicHostedWalletProvider } =
32
+ await import('@/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js')
33
+ return new DynamicHostedWalletProvider(
34
+ chainManager,
35
+ lendProviders,
36
+ swapProviders,
37
+ supportedAssets,
38
+ )
34
39
  },
35
40
  })
36
41
 
@@ -39,8 +44,18 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
39
44
  validateOptions(_options): _options is ReactOptionsMap['privy'] {
40
45
  return true
41
46
  },
42
- create({ chainManager, lendProviders }, _options) {
43
- return new PrivyHostedWalletProvider(chainManager, lendProviders)
47
+ async create(
48
+ { chainManager, lendProviders, swapProviders, supportedAssets },
49
+ _options,
50
+ ) {
51
+ const { PrivyHostedWalletProvider } =
52
+ await import('@/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js')
53
+ return new PrivyHostedWalletProvider(
54
+ chainManager,
55
+ lendProviders,
56
+ swapProviders,
57
+ supportedAssets,
58
+ )
44
59
  },
45
60
  })
46
61
 
@@ -49,8 +64,18 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
49
64
  validateOptions(_options): _options is ReactOptionsMap['turnkey'] {
50
65
  return true
51
66
  },
52
- create({ chainManager, lendProviders }, _options) {
53
- return new TurnkeyHostedWalletProvider(chainManager, lendProviders)
67
+ async create(
68
+ { chainManager, lendProviders, swapProviders, supportedAssets },
69
+ _options,
70
+ ) {
71
+ const { TurnkeyHostedWalletProvider } =
72
+ await import('@/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js')
73
+ return new TurnkeyHostedWalletProvider(
74
+ chainManager,
75
+ lendProviders,
76
+ swapProviders,
77
+ supportedAssets,
78
+ )
54
79
  },
55
80
  })
56
81
  }
@@ -49,11 +49,11 @@ describe('ReactHostedWalletProviderRegistry', () => {
49
49
  ).toBe(true)
50
50
  })
51
51
 
52
- it('creates a DynamicHostedWalletProvider instance', () => {
52
+ it('creates a DynamicHostedWalletProvider instance', async () => {
53
53
  const registry = new ReactHostedWalletProviderRegistry()
54
54
  const factory = registry.getFactory('dynamic')
55
55
 
56
- const provider = factory.create(
56
+ const provider = await factory.create(
57
57
  { chainManager: mockChainManager },
58
58
  undefined as ReactOptionsMap['dynamic'],
59
59
  )
@@ -71,11 +71,11 @@ describe('ReactHostedWalletProviderRegistry', () => {
71
71
  ).toBe(true)
72
72
  })
73
73
 
74
- it('creates a PrivyHostedWalletProvider instance', () => {
74
+ it('creates a PrivyHostedWalletProvider instance', async () => {
75
75
  const registry = new ReactHostedWalletProviderRegistry()
76
76
  const factory = registry.getFactory('privy')
77
77
 
78
- const provider = factory.create(
78
+ const provider = await factory.create(
79
79
  { chainManager: mockChainManager },
80
80
  undefined as ReactOptionsMap['privy'],
81
81
  )
@@ -93,11 +93,11 @@ describe('ReactHostedWalletProviderRegistry', () => {
93
93
  ).toBe(true)
94
94
  })
95
95
 
96
- it('creates a TurnkeyHostedWalletProvider instance', () => {
96
+ it('creates a TurnkeyHostedWalletProvider instance', async () => {
97
97
  const registry = new ReactHostedWalletProviderRegistry()
98
98
  const factory = registry.getFactory('turnkey')
99
99
 
100
- const provider = factory.create(
100
+ const provider = await factory.create(
101
101
  { chainManager: mockChainManager },
102
102
  undefined as ReactOptionsMap['turnkey'],
103
103
  )
@@ -1,8 +1,8 @@
1
1
  import { type Address, type LocalAccount } from 'viem'
2
2
 
3
- import type { LendProvider } from '@/lend/core/LendProvider.js'
4
3
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
4
+ import type { Asset } from '@/types/asset.js'
5
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
6
6
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
7
7
  import type { DynamicHostedWalletToActionsWalletOptions } from '@/wallet/react/providers/hosted/types/index.js'
8
8
  import { createSigner } from '@/wallet/react/wallets/hosted/dynamic/utils/createSigner.js'
@@ -20,31 +20,33 @@ export class DynamicWallet extends EOAWallet {
20
20
  * Create a new Dynamic wallet
21
21
  * @param chainManager - Chain manager for RPC, chain info, and transports
22
22
  * @param dynamicWallet - Dynamic Labs wallet instance (EVM)
23
+ * @param lendProviders - Optional lend providers for DeFi operations
24
+ * @param swapProviders - Optional swap providers for trading operations
23
25
  */
24
26
  private constructor(
25
27
  chainManager: ChainManager,
26
28
  dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet'],
27
- lendProviders?: {
28
- morpho?: LendProvider<LendProviderConfig>
29
- aave?: LendProvider<LendProviderConfig>
30
- },
29
+ lendProviders?: LendProviders,
30
+ swapProviders?: SwapProviders,
31
+ supportedAssets?: Asset[],
31
32
  ) {
32
- super(chainManager, lendProviders)
33
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
33
34
  this.dynamicWallet = dynamicWallet
34
35
  }
35
36
 
36
37
  static async create(params: {
37
38
  dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet']
38
39
  chainManager: ChainManager
39
- lendProviders?: {
40
- morpho?: LendProvider<LendProviderConfig>
41
- aave?: LendProvider<LendProviderConfig>
42
- }
40
+ lendProviders?: LendProviders
41
+ swapProviders?: SwapProviders
42
+ supportedAssets?: Asset[]
43
43
  }): Promise<DynamicWallet> {
44
44
  const wallet = new DynamicWallet(
45
45
  params.chainManager,
46
46
  params.dynamicWallet,
47
47
  params.lendProviders,
48
+ params.swapProviders,
49
+ params.supportedAssets,
48
50
  )
49
51
  await wallet.initialize()
50
52
  return wallet
@@ -1,8 +1,7 @@
1
1
  import { vi } from 'vitest'
2
2
 
3
- import type { LendProvider } from '@/lend/core/LendProvider.js'
4
3
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
4
+ import type { LendProviders } from '@/types/providers.js'
6
5
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
7
6
  import type { DynamicHostedWalletToActionsWalletOptions } from '@/wallet/react/providers/hosted/types/index.js'
8
7
 
@@ -17,10 +16,7 @@ export class DynamicWalletMock {
17
16
  async (_params: {
18
17
  chainManager: ChainManager
19
18
  dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet']
20
- lendProviders?: {
21
- morpho?: LendProvider<LendProviderConfig>
22
- aave?: LendProvider<LendProviderConfig>
23
- }
19
+ lendProviders?: LendProviders
24
20
  }): Promise<Wallet> => {
25
21
  return {} as unknown as Wallet
26
22
  },
@@ -1,9 +1,9 @@
1
1
  import type { ConnectedWallet } from '@privy-io/react-auth'
2
2
  import type { Address, LocalAccount } from 'viem'
3
3
 
4
- import type { LendProvider } from '@/lend/core/LendProvider.js'
5
4
  import type { ChainManager } from '@/services/ChainManager.js'
6
- import type { LendProviderConfig } from '@/types/actions.js'
5
+ import type { Asset } from '@/types/asset.js'
6
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
7
7
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
8
8
  import { createSigner } from '@/wallet/react/wallets/hosted/privy/utils/createSigner.js'
9
9
 
@@ -20,27 +20,27 @@ export class PrivyWallet extends EOAWallet {
20
20
  private constructor(
21
21
  chainManager: ChainManager,
22
22
  connectedWallet: ConnectedWallet,
23
- lendProviders?: {
24
- morpho?: LendProvider<LendProviderConfig>
25
- aave?: LendProvider<LendProviderConfig>
26
- },
23
+ lendProviders?: LendProviders,
24
+ swapProviders?: SwapProviders,
25
+ supportedAssets?: Asset[],
27
26
  ) {
28
- super(chainManager, lendProviders)
27
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
29
28
  this.connectedWallet = connectedWallet
30
29
  }
31
30
 
32
31
  static async create(params: {
33
32
  chainManager: ChainManager
34
33
  connectedWallet: ConnectedWallet
35
- lendProviders?: {
36
- morpho?: LendProvider<LendProviderConfig>
37
- aave?: LendProvider<LendProviderConfig>
38
- }
34
+ lendProviders?: LendProviders
35
+ swapProviders?: SwapProviders
36
+ supportedAssets?: Asset[]
39
37
  }): Promise<PrivyWallet> {
40
38
  const wallet = new PrivyWallet(
41
39
  params.chainManager,
42
40
  params.connectedWallet,
43
41
  params.lendProviders,
42
+ params.swapProviders,
43
+ params.supportedAssets,
44
44
  )
45
45
  await wallet.initialize()
46
46
  return wallet