@eth-optimism/actions-sdk 0.3.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 (436) 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 -6
  4. package/dist/__mocks__/MockAssets.js.map +1 -1
  5. package/dist/__tests__/actions.test.js +1 -1
  6. package/dist/__tests__/actions.test.js.map +1 -1
  7. package/dist/actions.d.ts +8 -13
  8. package/dist/actions.d.ts.map +1 -1
  9. package/dist/actions.js +35 -27
  10. package/dist/actions.js.map +1 -1
  11. package/dist/constants/assets.d.ts +215 -4
  12. package/dist/constants/assets.d.ts.map +1 -1
  13. package/dist/constants/assets.js +734 -11
  14. package/dist/constants/assets.js.map +1 -1
  15. package/dist/constants/providers.d.ts +6 -0
  16. package/dist/constants/providers.d.ts.map +1 -0
  17. package/dist/constants/providers.js +6 -0
  18. package/dist/constants/providers.js.map +1 -0
  19. package/dist/constants/supportedChains.d.ts +2 -2
  20. package/dist/constants/supportedChains.d.ts.map +1 -1
  21. package/dist/constants/supportedChains.js +12 -2
  22. package/dist/constants/supportedChains.js.map +1 -1
  23. package/dist/index.d.ts +4 -5
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +3 -4
  26. package/dist/index.js.map +1 -1
  27. package/dist/lend/__mocks__/MockLendProvider.d.ts +1 -1
  28. package/dist/lend/__mocks__/MockLendProvider.d.ts.map +1 -1
  29. package/dist/lend/__mocks__/MockLendProvider.js +7 -2
  30. package/dist/lend/__mocks__/MockLendProvider.js.map +1 -1
  31. package/dist/lend/core/LendProvider.d.ts +12 -8
  32. package/dist/lend/core/LendProvider.d.ts.map +1 -1
  33. package/dist/lend/core/LendProvider.js +15 -21
  34. package/dist/lend/core/LendProvider.js.map +1 -1
  35. package/dist/lend/namespaces/BaseLendNamespace.d.ts +2 -6
  36. package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +1 -1
  37. package/dist/lend/namespaces/BaseLendNamespace.js.map +1 -1
  38. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js +7 -4
  39. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -1
  40. package/dist/lend/providers/aave/AaveLendProvider.d.ts +1 -6
  41. package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -1
  42. package/dist/lend/providers/aave/AaveLendProvider.js +3 -6
  43. package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -1
  44. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js +14 -6
  45. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -1
  46. package/dist/lend/providers/aave/addresses.d.ts +13 -39
  47. package/dist/lend/providers/aave/addresses.d.ts.map +1 -1
  48. package/dist/lend/providers/aave/addresses.js +65 -60
  49. package/dist/lend/providers/aave/addresses.js.map +1 -1
  50. package/dist/lend/providers/aave/sdk.d.ts +2 -2
  51. package/dist/lend/providers/aave/sdk.d.ts.map +1 -1
  52. package/dist/lend/providers/aave/sdk.js +6 -28
  53. package/dist/lend/providers/aave/sdk.js.map +1 -1
  54. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +1 -6
  55. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -1
  56. package/dist/lend/providers/morpho/MorphoLendProvider.js +4 -13
  57. package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -1
  58. package/dist/lend/providers/morpho/__tests__/api.test.js +52 -43
  59. package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -1
  60. package/dist/lend/providers/morpho/__tests__/sdk.test.js +41 -42
  61. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
  62. package/dist/lend/providers/morpho/api.d.ts +3 -7
  63. package/dist/lend/providers/morpho/api.d.ts.map +1 -1
  64. package/dist/lend/providers/morpho/api.js +2 -2
  65. package/dist/lend/providers/morpho/api.js.map +1 -1
  66. package/dist/lend/providers/morpho/contracts.d.ts +11 -10
  67. package/dist/lend/providers/morpho/contracts.d.ts.map +1 -1
  68. package/dist/lend/providers/morpho/contracts.js +43 -10
  69. package/dist/lend/providers/morpho/contracts.js.map +1 -1
  70. package/dist/lend/providers/morpho/sdk.d.ts +7 -2
  71. package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
  72. package/dist/lend/providers/morpho/sdk.js +67 -63
  73. package/dist/lend/providers/morpho/sdk.js.map +1 -1
  74. package/dist/nodeActionsFactory.d.ts +1 -1
  75. package/dist/reactActionsFactory.d.ts +1 -1
  76. package/dist/services/ChainManager.d.ts +8 -8
  77. package/dist/services/ChainManager.d.ts.map +1 -1
  78. package/dist/services/ChainManager.js.map +1 -1
  79. package/dist/services/__mocks__/MockChainManager.d.ts +4 -4
  80. package/dist/services/__mocks__/MockChainManager.d.ts.map +1 -1
  81. package/dist/services/__mocks__/MockChainManager.js.map +1 -1
  82. package/dist/services/tokenBalance.d.ts +1 -1
  83. package/dist/services/tokenBalance.d.ts.map +1 -1
  84. package/dist/services/tokenBalance.js +31 -30
  85. package/dist/services/tokenBalance.js.map +1 -1
  86. package/dist/services/tokenBalance.spec.js +20 -24
  87. package/dist/services/tokenBalance.spec.js.map +1 -1
  88. package/dist/swap/__mocks__/MockSwapProvider.d.ts +20 -8
  89. package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -1
  90. package/dist/swap/__mocks__/MockSwapProvider.js +52 -29
  91. package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -1
  92. package/dist/swap/core/SwapProvider.d.ts +105 -16
  93. package/dist/swap/core/SwapProvider.d.ts.map +1 -1
  94. package/dist/swap/core/SwapProvider.js +218 -36
  95. package/dist/swap/core/SwapProvider.js.map +1 -1
  96. package/dist/swap/core/__tests__/SwapProvider.test.js +115 -9
  97. package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -1
  98. package/dist/swap/core/markets.d.ts +47 -0
  99. package/dist/swap/core/markets.d.ts.map +1 -0
  100. package/dist/swap/core/markets.js +65 -0
  101. package/dist/swap/core/markets.js.map +1 -0
  102. package/dist/swap/index.d.ts +2 -0
  103. package/dist/swap/index.d.ts.map +1 -1
  104. package/dist/swap/index.js +1 -0
  105. package/dist/swap/index.js.map +1 -1
  106. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +2 -2
  107. package/dist/swap/namespaces/ActionsSwapNamespace.js +2 -2
  108. package/dist/swap/namespaces/BaseSwapNamespace.d.ts +48 -8
  109. package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -1
  110. package/dist/swap/namespaces/BaseSwapNamespace.js +139 -16
  111. package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -1
  112. package/dist/swap/namespaces/WalletSwapNamespace.d.ts +19 -7
  113. package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -1
  114. package/dist/swap/namespaces/WalletSwapNamespace.js +39 -15
  115. package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -1
  116. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +150 -11
  117. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -1
  118. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +85 -8
  119. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -1
  120. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +9 -42
  121. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -1
  122. package/dist/swap/providers/uniswap/UniswapSwapProvider.js +81 -139
  123. package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -1
  124. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +10 -9
  125. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -1
  126. package/dist/swap/providers/uniswap/__tests__/sdk.test.js +17 -17
  127. package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -1
  128. package/dist/swap/providers/uniswap/addresses.d.ts +5 -0
  129. package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -1
  130. package/dist/swap/providers/uniswap/addresses.js +1 -1
  131. package/dist/swap/providers/uniswap/addresses.js.map +1 -1
  132. package/dist/swap/providers/uniswap/encoding.d.ts +4 -4
  133. package/dist/swap/providers/uniswap/encoding.js +17 -17
  134. package/dist/swap/providers/uniswap/markets.d.ts +19 -0
  135. package/dist/swap/providers/uniswap/markets.d.ts.map +1 -0
  136. package/dist/swap/providers/uniswap/markets.js +48 -0
  137. package/dist/swap/providers/uniswap/markets.js.map +1 -0
  138. package/dist/swap/providers/uniswap/types.d.ts +4 -3
  139. package/dist/swap/providers/uniswap/types.d.ts.map +1 -1
  140. package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts +49 -0
  141. package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +1 -0
  142. package/dist/swap/providers/velodrome/VelodromeSwapProvider.js +140 -0
  143. package/dist/swap/providers/velodrome/VelodromeSwapProvider.js.map +1 -0
  144. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts +2 -0
  145. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +1 -0
  146. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js +255 -0
  147. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +1 -0
  148. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts +2 -0
  149. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +1 -0
  150. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js +166 -0
  151. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +1 -0
  152. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts +2 -0
  153. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +1 -0
  154. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js +419 -0
  155. package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +1 -0
  156. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts +2 -0
  157. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +1 -0
  158. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js +51 -0
  159. package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +1 -0
  160. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts +14 -0
  161. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +1 -0
  162. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js +13 -0
  163. package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js.map +1 -0
  164. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts +2 -0
  165. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +1 -0
  166. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js +173 -0
  167. package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +1 -0
  168. package/dist/swap/providers/velodrome/abis.d.ts +396 -0
  169. package/dist/swap/providers/velodrome/abis.d.ts.map +1 -0
  170. package/dist/swap/providers/velodrome/abis.js +257 -0
  171. package/dist/swap/providers/velodrome/abis.js.map +1 -0
  172. package/dist/swap/providers/velodrome/addresses.d.ts +39 -0
  173. package/dist/swap/providers/velodrome/addresses.d.ts.map +1 -0
  174. package/dist/swap/providers/velodrome/addresses.js +57 -0
  175. package/dist/swap/providers/velodrome/addresses.js.map +1 -0
  176. package/dist/swap/providers/velodrome/config.d.ts +22 -0
  177. package/dist/swap/providers/velodrome/config.d.ts.map +1 -0
  178. package/dist/swap/providers/velodrome/config.js +29 -0
  179. package/dist/swap/providers/velodrome/config.js.map +1 -0
  180. package/dist/swap/providers/velodrome/encoding/helpers.d.ts +37 -0
  181. package/dist/swap/providers/velodrome/encoding/helpers.d.ts.map +1 -0
  182. package/dist/swap/providers/velodrome/encoding/helpers.js +60 -0
  183. package/dist/swap/providers/velodrome/encoding/helpers.js.map +1 -0
  184. package/dist/swap/providers/velodrome/encoding/index.d.ts +8 -0
  185. package/dist/swap/providers/velodrome/encoding/index.d.ts.map +1 -0
  186. package/dist/swap/providers/velodrome/encoding/index.js +5 -0
  187. package/dist/swap/providers/velodrome/encoding/index.js.map +1 -0
  188. package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts +39 -0
  189. package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts.map +1 -0
  190. package/dist/swap/providers/velodrome/encoding/poolRouter.js +83 -0
  191. package/dist/swap/providers/velodrome/encoding/poolRouter.js.map +1 -0
  192. package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts +15 -0
  193. package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts.map +1 -0
  194. package/dist/swap/providers/velodrome/encoding/routers/approval.js +33 -0
  195. package/dist/swap/providers/velodrome/encoding/routers/approval.js.map +1 -0
  196. package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts +40 -0
  197. package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts.map +1 -0
  198. package/dist/swap/providers/velodrome/encoding/routers/cl.js +80 -0
  199. package/dist/swap/providers/velodrome/encoding/routers/cl.js.map +1 -0
  200. package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts +42 -0
  201. package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts.map +1 -0
  202. package/dist/swap/providers/velodrome/encoding/routers/v2.js +166 -0
  203. package/dist/swap/providers/velodrome/encoding/routers/v2.js.map +1 -0
  204. package/dist/swap/providers/velodrome/markets.d.ts +21 -0
  205. package/dist/swap/providers/velodrome/markets.d.ts.map +1 -0
  206. package/dist/swap/providers/velodrome/markets.js +69 -0
  207. package/dist/swap/providers/velodrome/markets.js.map +1 -0
  208. package/dist/swap/providers/velodrome/types.d.ts +31 -0
  209. package/dist/swap/providers/velodrome/types.d.ts.map +1 -0
  210. package/dist/swap/providers/velodrome/types.js +2 -0
  211. package/dist/swap/providers/velodrome/types.js.map +1 -0
  212. package/dist/types/actions.d.ts +44 -9
  213. package/dist/types/actions.d.ts.map +1 -1
  214. package/dist/types/asset.d.ts +7 -9
  215. package/dist/types/asset.d.ts.map +1 -1
  216. package/dist/types/chain.d.ts +2 -2
  217. package/dist/types/chain.d.ts.map +1 -1
  218. package/dist/types/lend/base.d.ts +6 -6
  219. package/dist/types/lend/base.d.ts.map +1 -1
  220. package/dist/types/lend/base.js.map +1 -1
  221. package/dist/types/lend/contracts.d.ts +2 -1
  222. package/dist/types/lend/contracts.d.ts.map +1 -1
  223. package/dist/types/providers.d.ts +21 -0
  224. package/dist/types/providers.d.ts.map +1 -0
  225. package/dist/types/providers.js +2 -0
  226. package/dist/types/providers.js.map +1 -0
  227. package/dist/types/swap/base.d.ts +133 -33
  228. package/dist/types/swap/base.d.ts.map +1 -1
  229. package/dist/utils/approve.d.ts +82 -0
  230. package/dist/utils/approve.d.ts.map +1 -0
  231. package/dist/utils/{permit2.js → approve.js} +48 -14
  232. package/dist/utils/approve.js.map +1 -0
  233. package/dist/utils/approve.test.d.ts +2 -0
  234. package/dist/utils/approve.test.d.ts.map +1 -0
  235. package/dist/utils/{permit2.test.js → approve.test.js} +95 -2
  236. package/dist/utils/approve.test.js.map +1 -0
  237. package/dist/utils/assets.d.ts +6 -0
  238. package/dist/utils/assets.d.ts.map +1 -1
  239. package/dist/utils/assets.js +10 -0
  240. package/dist/utils/assets.js.map +1 -1
  241. package/dist/utils/validateAddresses.d.ts +32 -0
  242. package/dist/utils/validateAddresses.d.ts.map +1 -0
  243. package/dist/utils/validateAddresses.js +103 -0
  244. package/dist/utils/validateAddresses.js.map +1 -0
  245. package/dist/utils/validateAddresses.test.d.ts +2 -0
  246. package/dist/utils/validateAddresses.test.d.ts.map +1 -0
  247. package/dist/utils/validateAddresses.test.js +314 -0
  248. package/dist/utils/validateAddresses.test.js.map +1 -0
  249. package/dist/wallet/core/namespace/WalletNamespace.d.ts +21 -9
  250. package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
  251. package/dist/wallet/core/namespace/WalletNamespace.js +44 -15
  252. package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
  253. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +4 -4
  254. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
  255. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +4 -16
  256. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
  257. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
  258. package/dist/wallet/core/providers/hosted/types/index.d.ts +6 -11
  259. package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
  260. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +2 -9
  261. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
  262. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
  263. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +6 -17
  264. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  265. package/dist/wallet/core/wallets/abstract/Wallet.js +5 -6
  266. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  267. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +10 -1
  268. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -1
  269. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js +2 -2
  270. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -1
  271. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +12 -4
  272. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
  273. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +3 -10
  274. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  275. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  276. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
  277. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +3 -10
  278. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  279. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  280. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts +2 -4
  281. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
  282. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +6 -8
  283. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
  284. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +4 -4
  285. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
  286. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +2 -9
  287. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  288. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  289. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +3 -10
  290. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  291. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  292. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +3 -10
  293. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  294. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  295. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +3 -9
  296. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
  297. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +3 -2
  298. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
  299. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +3 -9
  300. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  301. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -2
  302. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  303. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +3 -9
  304. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  305. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +3 -2
  306. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  307. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts +2 -4
  308. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
  309. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +11 -13
  310. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
  311. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +6 -6
  312. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
  313. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +5 -10
  314. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
  315. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +3 -3
  316. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
  317. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +2 -6
  318. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -1
  319. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -1
  320. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -10
  321. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  322. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
  323. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  324. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -10
  325. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  326. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  327. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  328. package/package.json +3 -2
  329. package/src/__mocks__/MockAssets.ts +54 -6
  330. package/src/__tests__/actions.test.ts +1 -1
  331. package/src/actions.ts +58 -61
  332. package/src/constants/assets.ts +781 -10
  333. package/src/constants/providers.ts +5 -0
  334. package/src/constants/supportedChains.ts +22 -2
  335. package/src/index.ts +50 -8
  336. package/src/lend/__mocks__/MockLendProvider.ts +8 -3
  337. package/src/lend/core/LendProvider.ts +27 -28
  338. package/src/lend/namespaces/BaseLendNamespace.ts +2 -6
  339. package/src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts +12 -5
  340. package/src/lend/providers/aave/AaveLendProvider.ts +3 -7
  341. package/src/lend/providers/aave/__tests__/AaveLendProvider.test.ts +16 -7
  342. package/src/lend/providers/aave/addresses.ts +82 -64
  343. package/src/lend/providers/aave/sdk.ts +11 -36
  344. package/src/lend/providers/morpho/MorphoLendProvider.ts +4 -16
  345. package/src/lend/providers/morpho/__tests__/api.test.ts +65 -44
  346. package/src/lend/providers/morpho/__tests__/sdk.test.ts +43 -43
  347. package/src/lend/providers/morpho/api.ts +7 -8
  348. package/src/lend/providers/morpho/contracts.ts +62 -13
  349. package/src/lend/providers/morpho/sdk.ts +85 -63
  350. package/src/services/ChainManager.ts +12 -21
  351. package/src/services/__mocks__/MockChainManager.ts +4 -7
  352. package/src/services/tokenBalance.spec.ts +20 -24
  353. package/src/services/tokenBalance.ts +39 -33
  354. package/src/swap/__mocks__/MockSwapProvider.ts +77 -42
  355. package/src/swap/core/SwapProvider.ts +307 -49
  356. package/src/swap/core/__tests__/SwapProvider.test.ts +151 -9
  357. package/src/swap/core/markets.ts +104 -0
  358. package/src/swap/index.ts +5 -0
  359. package/src/swap/namespaces/ActionsSwapNamespace.ts +2 -2
  360. package/src/swap/namespaces/BaseSwapNamespace.ts +199 -18
  361. package/src/swap/namespaces/WalletSwapNamespace.ts +53 -14
  362. package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +241 -14
  363. package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +103 -8
  364. package/src/swap/providers/uniswap/UniswapSwapProvider.ts +108 -195
  365. package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +12 -12
  366. package/src/swap/providers/uniswap/__tests__/sdk.test.ts +19 -20
  367. package/src/swap/providers/uniswap/addresses.ts +3 -1
  368. package/src/swap/providers/uniswap/encoding.ts +22 -22
  369. package/src/swap/providers/uniswap/markets.ts +84 -0
  370. package/src/swap/providers/uniswap/types.ts +4 -3
  371. package/src/swap/providers/velodrome/VelodromeSwapProvider.ts +224 -0
  372. package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.ts +341 -0
  373. package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.ts +202 -0
  374. package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.ts +506 -0
  375. package/src/swap/providers/velodrome/__tests__/encoding.cl.test.ts +69 -0
  376. package/src/swap/providers/velodrome/__tests__/encoding.helpers.ts +20 -0
  377. package/src/swap/providers/velodrome/__tests__/encoding.v2.test.ts +235 -0
  378. package/src/swap/providers/velodrome/abis.ts +264 -0
  379. package/src/swap/providers/velodrome/addresses.ts +107 -0
  380. package/src/swap/providers/velodrome/config.ts +46 -0
  381. package/src/swap/providers/velodrome/encoding/helpers.ts +82 -0
  382. package/src/swap/providers/velodrome/encoding/index.ts +7 -0
  383. package/src/swap/providers/velodrome/encoding/poolRouter.ts +124 -0
  384. package/src/swap/providers/velodrome/encoding/routers/approval.ts +45 -0
  385. package/src/swap/providers/velodrome/encoding/routers/cl.ts +156 -0
  386. package/src/swap/providers/velodrome/encoding/routers/v2.ts +267 -0
  387. package/src/swap/providers/velodrome/markets.ts +100 -0
  388. package/src/swap/providers/velodrome/types.ts +30 -0
  389. package/src/types/actions.ts +49 -9
  390. package/src/types/asset.ts +12 -9
  391. package/src/types/chain.ts +2 -2
  392. package/src/types/lend/base.ts +6 -6
  393. package/src/types/lend/contracts.ts +5 -1
  394. package/src/types/providers.ts +22 -0
  395. package/src/types/swap/base.ts +147 -34
  396. package/src/utils/{permit2.test.ts → approve.test.ts} +117 -1
  397. package/src/utils/{permit2.ts → approve.ts} +67 -14
  398. package/src/utils/assets.ts +14 -0
  399. package/src/utils/validateAddresses.test.ts +439 -0
  400. package/src/utils/validateAddresses.ts +153 -0
  401. package/src/wallet/core/namespace/WalletNamespace.ts +70 -16
  402. package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +8 -4
  403. package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +5 -17
  404. package/src/wallet/core/providers/hosted/types/index.ts +9 -11
  405. package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +5 -17
  406. package/src/wallet/core/wallets/abstract/Wallet.ts +15 -22
  407. package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +13 -1
  408. package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +21 -5
  409. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +5 -17
  410. package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +0 -1
  411. package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +3 -10
  412. package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +8 -8
  413. package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +4 -4
  414. package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +3 -10
  415. package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +5 -17
  416. package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +5 -17
  417. package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +7 -11
  418. package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +7 -11
  419. package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +7 -11
  420. package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +23 -10
  421. package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +6 -6
  422. package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +10 -18
  423. package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +2 -6
  424. package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +10 -18
  425. package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -18
  426. package/dist/supported/tokens.d.ts +0 -25
  427. package/dist/supported/tokens.d.ts.map +0 -1
  428. package/dist/supported/tokens.js +0 -44
  429. package/dist/supported/tokens.js.map +0 -1
  430. package/dist/utils/permit2.d.ts +0 -46
  431. package/dist/utils/permit2.d.ts.map +0 -1
  432. package/dist/utils/permit2.js.map +0 -1
  433. package/dist/utils/permit2.test.d.ts +0 -2
  434. package/dist/utils/permit2.test.d.ts.map +0 -1
  435. package/dist/utils/permit2.test.js.map +0 -1
  436. package/src/supported/tokens.ts +0 -66
@@ -2,11 +2,9 @@ import type { AuthorizationContext, PrivyClient } from '@privy-io/node'
2
2
  import type { LocalAccount } from 'viem'
3
3
  import { getAddress } from 'viem'
4
4
 
5
- import type { LendProvider } from '@/lend/core/LendProvider.js'
6
5
  import type { ChainManager } from '@/services/ChainManager.js'
7
- import type { SwapProvider } from '@/swap/core/SwapProvider.js'
8
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
9
6
  import type { Asset } from '@/types/asset.js'
7
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
10
8
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
11
9
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
12
10
  import type {
@@ -43,13 +41,8 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
43
41
  constructor(params: {
44
42
  privyClient: PrivyClient
45
43
  chainManager: ChainManager
46
- lendProviders?: {
47
- morpho?: LendProvider<LendProviderConfig>
48
- aave?: LendProvider<LendProviderConfig>
49
- }
50
- swapProviders?: {
51
- uniswap?: SwapProvider<SwapProviderConfig>
52
- }
44
+ lendProviders?: LendProviders
45
+ swapProviders?: SwapProviders
53
46
  supportedAssets?: Asset[]
54
47
  authorizationContext?: AuthorizationContext
55
48
  }) {
@@ -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,10 +24,12 @@ 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(
27
+ async create(
32
28
  { chainManager, lendProviders, swapProviders, supportedAssets },
33
29
  options,
34
30
  ) {
31
+ const { PrivyHostedWalletProvider } =
32
+ await import('@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js')
35
33
  return new PrivyHostedWalletProvider({
36
34
  privyClient: options.privyClient,
37
35
  chainManager,
@@ -49,10 +47,12 @@ export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegist
49
47
  const o = options as NodeOptionsMap['turnkey']
50
48
  return Boolean(o?.client)
51
49
  },
52
- create(
50
+ async create(
53
51
  { chainManager, lendProviders, swapProviders, supportedAssets },
54
52
  options,
55
53
  ) {
54
+ const { TurnkeyHostedWalletProvider } =
55
+ await import('@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js')
56
56
  return new TurnkeyHostedWalletProvider(
57
57
  options.client,
58
58
  chainManager,
@@ -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,11 +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 { SwapProvider } from '@/swap/core/SwapProvider.js'
9
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
10
7
  import type { Asset } from '@/types/asset.js'
8
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
11
9
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
12
10
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
13
11
  import type { NodeToActionsOptionsMap } from '@/wallet/node/providers/hosted/types/index.js'
@@ -39,13 +37,8 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
39
37
  | TurnkeyServerClient
40
38
  | TurnkeySDKClientBase,
41
39
  chainManager: ChainManager,
42
- lendProviders?: {
43
- morpho?: LendProvider<LendProviderConfig>
44
- aave?: LendProvider<LendProviderConfig>
45
- },
46
- swapProviders?: {
47
- uniswap?: SwapProvider<SwapProviderConfig>
48
- },
40
+ lendProviders?: LendProviders,
41
+ swapProviders?: SwapProviders,
49
42
  supportedAssets?: Asset[],
50
43
  ) {
51
44
  super(chainManager, lendProviders, swapProviders, supportedAssets)
@@ -1,11 +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 { SwapProvider } from '@/swap/core/SwapProvider.js'
7
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
8
5
  import type { Asset } from '@/types/asset.js'
6
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
9
7
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
10
8
  import { createSigner } from '@/wallet/node/wallets/hosted/privy/utils/createSigner.js'
11
9
 
@@ -35,13 +33,8 @@ export class PrivyWallet extends EOAWallet {
35
33
  walletId: string,
36
34
  address: Address,
37
35
  chainManager: ChainManager,
38
- lendProviders?: {
39
- morpho?: LendProvider<LendProviderConfig>
40
- aave?: LendProvider<LendProviderConfig>
41
- },
42
- swapProviders?: {
43
- uniswap?: SwapProvider<SwapProviderConfig>
44
- },
36
+ lendProviders?: LendProviders,
37
+ swapProviders?: SwapProviders,
45
38
  supportedAssets?: Asset[],
46
39
  authorizationContext?: AuthorizationContext,
47
40
  ) {
@@ -58,13 +51,8 @@ export class PrivyWallet extends EOAWallet {
58
51
  walletId: string
59
52
  address: Address
60
53
  chainManager: ChainManager
61
- lendProviders?: {
62
- morpho?: LendProvider<LendProviderConfig>
63
- aave?: LendProvider<LendProviderConfig>
64
- }
65
- swapProviders?: {
66
- uniswap?: SwapProvider<SwapProviderConfig>
67
- }
54
+ lendProviders?: LendProviders
55
+ swapProviders?: SwapProviders
68
56
  supportedAssets?: Asset[]
69
57
  }): Promise<PrivyWallet> {
70
58
  const wallet = new PrivyWallet(
@@ -3,11 +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 { SwapProvider } from '@/swap/core/SwapProvider.js'
9
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
10
7
  import type { Asset } from '@/types/asset.js'
8
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
11
9
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
12
10
  import { createSigner } from '@/wallet/node/wallets/hosted/turnkey/utils/createSigner.js'
13
11
 
@@ -47,13 +45,8 @@ export class TurnkeyWallet extends EOAWallet {
47
45
  organizationId: string
48
46
  signWith: string
49
47
  ethereumAddress?: string
50
- lendProviders?: {
51
- morpho?: LendProvider<LendProviderConfig>
52
- aave?: LendProvider<LendProviderConfig>
53
- }
54
- swapProviders?: {
55
- uniswap?: SwapProvider<SwapProviderConfig>
56
- }
48
+ lendProviders?: LendProviders
49
+ swapProviders?: SwapProviders
57
50
  supportedAssets?: Asset[]
58
51
  }) {
59
52
  const {
@@ -79,13 +72,8 @@ export class TurnkeyWallet extends EOAWallet {
79
72
  organizationId: string
80
73
  signWith: string
81
74
  ethereumAddress?: string
82
- lendProviders?: {
83
- morpho?: LendProvider<LendProviderConfig>
84
- aave?: LendProvider<LendProviderConfig>
85
- }
86
- swapProviders?: {
87
- uniswap?: SwapProvider<SwapProviderConfig>
88
- }
75
+ lendProviders?: LendProviders
76
+ swapProviders?: SwapProviders
89
77
  supportedAssets?: Asset[]
90
78
  }): Promise<TurnkeyWallet> {
91
79
  const wallet = new TurnkeyWallet(params)
@@ -1,9 +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 { SwapProvider } from '@/swap/core/SwapProvider.js'
6
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
4
+ import type { Asset } from '@/types/asset.js'
5
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
7
6
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
8
7
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
9
8
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -26,15 +25,11 @@ export class DynamicHostedWalletProvider extends HostedWalletProvider<
26
25
  */
27
26
  constructor(
28
27
  chainManager: ChainManager,
29
- lendProviders?: {
30
- morpho?: LendProvider<LendProviderConfig>
31
- aave?: LendProvider<LendProviderConfig>
32
- },
33
- swapProviders?: {
34
- uniswap?: SwapProvider<SwapProviderConfig>
35
- },
28
+ lendProviders?: LendProviders,
29
+ swapProviders?: SwapProviders,
30
+ supportedAssets?: Asset[],
36
31
  ) {
37
- super(chainManager, lendProviders, swapProviders)
32
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
38
33
  }
39
34
 
40
35
  async toActionsWallet(
@@ -45,6 +40,7 @@ export class DynamicHostedWalletProvider extends HostedWalletProvider<
45
40
  chainManager: this.chainManager,
46
41
  lendProviders: this.lendProviders,
47
42
  swapProviders: this.swapProviders,
43
+ supportedAssets: this.supportedAssets,
48
44
  })
49
45
  }
50
46
 
@@ -1,9 +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 { SwapProvider } from '@/swap/core/SwapProvider.js'
6
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
4
+ import type { Asset } from '@/types/asset.js'
5
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
7
6
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
8
7
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
9
8
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -25,15 +24,11 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
25
24
  */
26
25
  constructor(
27
26
  chainManager: ChainManager,
28
- lendProviders?: {
29
- morpho?: LendProvider<LendProviderConfig>
30
- aave?: LendProvider<LendProviderConfig>
31
- },
32
- swapProviders?: {
33
- uniswap?: SwapProvider<SwapProviderConfig>
34
- },
27
+ lendProviders?: LendProviders,
28
+ swapProviders?: SwapProviders,
29
+ supportedAssets?: Asset[],
35
30
  ) {
36
- super(chainManager, lendProviders, swapProviders)
31
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
37
32
  }
38
33
 
39
34
  async toActionsWallet(
@@ -45,6 +40,7 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
45
40
  connectedWallet,
46
41
  lendProviders: this.lendProviders,
47
42
  swapProviders: this.swapProviders,
43
+ supportedAssets: this.supportedAssets,
48
44
  })
49
45
  return wallet
50
46
  }
@@ -1,9 +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 { SwapProvider } from '@/swap/core/SwapProvider.js'
6
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
4
+ import type { Asset } from '@/types/asset.js'
5
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
7
6
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
8
7
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
9
8
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -29,15 +28,11 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
29
28
  */
30
29
  constructor(
31
30
  chainManager: ChainManager,
32
- lendProviders?: {
33
- morpho?: LendProvider<LendProviderConfig>
34
- aave?: LendProvider<LendProviderConfig>
35
- },
36
- swapProviders?: {
37
- uniswap?: SwapProvider<SwapProviderConfig>
38
- },
31
+ lendProviders?: LendProviders,
32
+ swapProviders?: SwapProviders,
33
+ supportedAssets?: Asset[],
39
34
  ) {
40
- super(chainManager, lendProviders, swapProviders)
35
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
41
36
  }
42
37
 
43
38
  /**
@@ -63,6 +58,7 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
63
58
  chainManager: this.chainManager,
64
59
  lendProviders: this.lendProviders,
65
60
  swapProviders: this.swapProviders,
61
+ supportedAssets: this.supportedAssets,
66
62
  })
67
63
  }
68
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,11 +24,17 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
29
24
  validateOptions(_options): _options is ReactOptionsMap['dynamic'] {
30
25
  return true
31
26
  },
32
- create({ chainManager, lendProviders, swapProviders }, _options) {
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
33
  return new DynamicHostedWalletProvider(
34
34
  chainManager,
35
35
  lendProviders,
36
36
  swapProviders,
37
+ supportedAssets,
37
38
  )
38
39
  },
39
40
  })
@@ -43,11 +44,17 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
43
44
  validateOptions(_options): _options is ReactOptionsMap['privy'] {
44
45
  return true
45
46
  },
46
- create({ chainManager, lendProviders, swapProviders }, _options) {
47
+ async create(
48
+ { chainManager, lendProviders, swapProviders, supportedAssets },
49
+ _options,
50
+ ) {
51
+ const { PrivyHostedWalletProvider } =
52
+ await import('@/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js')
47
53
  return new PrivyHostedWalletProvider(
48
54
  chainManager,
49
55
  lendProviders,
50
56
  swapProviders,
57
+ supportedAssets,
51
58
  )
52
59
  },
53
60
  })
@@ -57,11 +64,17 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
57
64
  validateOptions(_options): _options is ReactOptionsMap['turnkey'] {
58
65
  return true
59
66
  },
60
- create({ chainManager, lendProviders, swapProviders }, _options) {
67
+ async create(
68
+ { chainManager, lendProviders, swapProviders, supportedAssets },
69
+ _options,
70
+ ) {
71
+ const { TurnkeyHostedWalletProvider } =
72
+ await import('@/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js')
61
73
  return new TurnkeyHostedWalletProvider(
62
74
  chainManager,
63
75
  lendProviders,
64
76
  swapProviders,
77
+ supportedAssets,
65
78
  )
66
79
  },
67
80
  })
@@ -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,9 +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 { SwapProvider } from '@/swap/core/SwapProvider.js'
6
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
4
+ import type { Asset } from '@/types/asset.js'
5
+ import type { LendProviders, SwapProviders } from '@/types/providers.js'
7
6
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
8
7
  import type { DynamicHostedWalletToActionsWalletOptions } from '@/wallet/react/providers/hosted/types/index.js'
9
8
  import { createSigner } from '@/wallet/react/wallets/hosted/dynamic/utils/createSigner.js'
@@ -27,34 +26,27 @@ export class DynamicWallet extends EOAWallet {
27
26
  private constructor(
28
27
  chainManager: ChainManager,
29
28
  dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet'],
30
- lendProviders?: {
31
- morpho?: LendProvider<LendProviderConfig>
32
- aave?: LendProvider<LendProviderConfig>
33
- },
34
- swapProviders?: {
35
- uniswap?: SwapProvider<SwapProviderConfig>
36
- },
29
+ lendProviders?: LendProviders,
30
+ swapProviders?: SwapProviders,
31
+ supportedAssets?: Asset[],
37
32
  ) {
38
- super(chainManager, lendProviders, swapProviders)
33
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
39
34
  this.dynamicWallet = dynamicWallet
40
35
  }
41
36
 
42
37
  static async create(params: {
43
38
  dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet']
44
39
  chainManager: ChainManager
45
- lendProviders?: {
46
- morpho?: LendProvider<LendProviderConfig>
47
- aave?: LendProvider<LendProviderConfig>
48
- }
49
- swapProviders?: {
50
- uniswap?: SwapProvider<SwapProviderConfig>
51
- }
40
+ lendProviders?: LendProviders
41
+ swapProviders?: SwapProviders
42
+ supportedAssets?: Asset[]
52
43
  }): Promise<DynamicWallet> {
53
44
  const wallet = new DynamicWallet(
54
45
  params.chainManager,
55
46
  params.dynamicWallet,
56
47
  params.lendProviders,
57
48
  params.swapProviders,
49
+ params.supportedAssets,
58
50
  )
59
51
  await wallet.initialize()
60
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,10 +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 { SwapProvider } from '@/swap/core/SwapProvider.js'
7
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
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/react/wallets/hosted/privy/utils/createSigner.js'
10
9
 
@@ -21,34 +20,27 @@ export class PrivyWallet extends EOAWallet {
21
20
  private constructor(
22
21
  chainManager: ChainManager,
23
22
  connectedWallet: ConnectedWallet,
24
- lendProviders?: {
25
- morpho?: LendProvider<LendProviderConfig>
26
- aave?: LendProvider<LendProviderConfig>
27
- },
28
- swapProviders?: {
29
- uniswap?: SwapProvider<SwapProviderConfig>
30
- },
23
+ lendProviders?: LendProviders,
24
+ swapProviders?: SwapProviders,
25
+ supportedAssets?: Asset[],
31
26
  ) {
32
- super(chainManager, lendProviders, swapProviders)
27
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
33
28
  this.connectedWallet = connectedWallet
34
29
  }
35
30
 
36
31
  static async create(params: {
37
32
  chainManager: ChainManager
38
33
  connectedWallet: ConnectedWallet
39
- lendProviders?: {
40
- morpho?: LendProvider<LendProviderConfig>
41
- aave?: LendProvider<LendProviderConfig>
42
- }
43
- swapProviders?: {
44
- uniswap?: SwapProvider<SwapProviderConfig>
45
- }
34
+ lendProviders?: LendProviders
35
+ swapProviders?: SwapProviders
36
+ supportedAssets?: Asset[]
46
37
  }): Promise<PrivyWallet> {
47
38
  const wallet = new PrivyWallet(
48
39
  params.chainManager,
49
40
  params.connectedWallet,
50
41
  params.lendProviders,
51
42
  params.swapProviders,
43
+ params.supportedAssets,
52
44
  )
53
45
  await wallet.initialize()
54
46
  return wallet
@@ -1,10 +1,9 @@
1
1
  import type { TurnkeySDKClientBase } from '@turnkey/react-wallet-kit'
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 { SwapProvider } from '@/swap/core/SwapProvider.js'
7
- import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
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/react/wallets/hosted/turnkey/utils/createSigner.js'
10
9
 
@@ -41,13 +40,9 @@ export class TurnkeyWallet extends EOAWallet {
41
40
  organizationId: string
42
41
  signWith: string
43
42
  ethereumAddress?: string
44
- lendProviders?: {
45
- morpho?: LendProvider<LendProviderConfig>
46
- aave?: LendProvider<LendProviderConfig>
47
- }
48
- swapProviders?: {
49
- uniswap?: SwapProvider<SwapProviderConfig>
50
- }
43
+ lendProviders?: LendProviders
44
+ swapProviders?: SwapProviders
45
+ supportedAssets?: Asset[]
51
46
  }) {
52
47
  const {
53
48
  chainManager,
@@ -57,8 +52,9 @@ export class TurnkeyWallet extends EOAWallet {
57
52
  ethereumAddress,
58
53
  lendProviders,
59
54
  swapProviders,
55
+ supportedAssets,
60
56
  } = params
61
- super(chainManager, lendProviders, swapProviders)
57
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
62
58
  this.client = client
63
59
  this.organizationId = organizationId
64
60
  this.signWith = signWith
@@ -71,13 +67,9 @@ export class TurnkeyWallet extends EOAWallet {
71
67
  organizationId: string
72
68
  signWith: string
73
69
  ethereumAddress?: string
74
- lendProviders?: {
75
- morpho?: LendProvider<LendProviderConfig>
76
- aave?: LendProvider<LendProviderConfig>
77
- }
78
- swapProviders?: {
79
- uniswap?: SwapProvider<SwapProviderConfig>
80
- }
70
+ lendProviders?: LendProviders
71
+ swapProviders?: SwapProviders
72
+ supportedAssets?: Asset[]
81
73
  }): Promise<TurnkeyWallet> {
82
74
  const wallet = new TurnkeyWallet(params)
83
75
  await wallet.initialize()