@eth-optimism/actions-sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/dist/__mocks__/MockAssets.d.ts.map +1 -1
  2. package/dist/__mocks__/MockAssets.js +2 -0
  3. package/dist/__mocks__/MockAssets.js.map +1 -1
  4. package/dist/__tests__/actions.test.js +0 -4
  5. package/dist/__tests__/actions.test.js.map +1 -1
  6. package/dist/actions.d.ts +20 -1
  7. package/dist/actions.d.ts.map +1 -1
  8. package/dist/actions.js +37 -13
  9. package/dist/actions.js.map +1 -1
  10. package/dist/constants/assets.d.ts +4 -0
  11. package/dist/constants/assets.d.ts.map +1 -1
  12. package/dist/constants/assets.js +15 -0
  13. package/dist/constants/assets.js.map +1 -1
  14. package/dist/constants/contracts.d.ts +4 -0
  15. package/dist/constants/contracts.d.ts.map +1 -0
  16. package/dist/constants/contracts.js +3 -0
  17. package/dist/constants/contracts.js.map +1 -0
  18. package/dist/index.d.ts +4 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/lend/core/LendProvider.d.ts +0 -6
  23. package/dist/lend/core/LendProvider.d.ts.map +1 -1
  24. package/dist/lend/core/LendProvider.js +6 -15
  25. package/dist/lend/core/LendProvider.js.map +1 -1
  26. package/dist/lend/core/__tests__/LendProvider.test.js +2 -4
  27. package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
  28. package/dist/lend/providers/morpho/__tests__/sdk.test.js +3 -2
  29. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
  30. package/dist/lend/providers/morpho/api.d.ts +4 -0
  31. package/dist/lend/providers/morpho/api.d.ts.map +1 -1
  32. package/dist/lend/providers/morpho/api.js.map +1 -1
  33. package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
  34. package/dist/lend/providers/morpho/sdk.js +10 -1
  35. package/dist/lend/providers/morpho/sdk.js.map +1 -1
  36. package/dist/supported/tokens.d.ts.map +1 -1
  37. package/dist/supported/tokens.js +9 -2
  38. package/dist/supported/tokens.js.map +1 -1
  39. package/dist/swap/__mocks__/MockSwapProvider.d.ts +38 -0
  40. package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
  41. package/dist/swap/__mocks__/MockSwapProvider.js +138 -0
  42. package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -0
  43. package/dist/swap/core/SwapProvider.d.ts +56 -0
  44. package/dist/swap/core/SwapProvider.d.ts.map +1 -0
  45. package/dist/swap/core/SwapProvider.js +177 -0
  46. package/dist/swap/core/SwapProvider.js.map +1 -0
  47. package/dist/swap/core/__tests__/SwapProvider.test.d.ts +2 -0
  48. package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
  49. package/dist/swap/core/__tests__/SwapProvider.test.js +329 -0
  50. package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -0
  51. package/dist/swap/index.d.ts +7 -0
  52. package/dist/swap/index.d.ts.map +1 -0
  53. package/dist/swap/index.js +8 -0
  54. package/dist/swap/index.js.map +1 -0
  55. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +8 -0
  56. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
  57. package/dist/swap/namespaces/ActionsSwapNamespace.js +8 -0
  58. package/dist/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
  59. package/dist/swap/namespaces/BaseSwapNamespace.d.ts +33 -0
  60. package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
  61. package/dist/swap/namespaces/BaseSwapNamespace.js +58 -0
  62. package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -0
  63. package/dist/swap/namespaces/WalletSwapNamespace.d.ts +22 -0
  64. package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
  65. package/dist/swap/namespaces/WalletSwapNamespace.js +60 -0
  66. package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -0
  67. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +2 -0
  68. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
  69. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +106 -0
  70. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
  71. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +2 -0
  72. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
  73. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +132 -0
  74. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
  75. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +68 -0
  76. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
  77. package/dist/swap/providers/uniswap/UniswapSwapProvider.js +206 -0
  78. package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
  79. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +2 -0
  80. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
  81. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +257 -0
  82. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
  83. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts +2 -0
  84. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
  85. package/dist/swap/providers/uniswap/__tests__/sdk.test.js +312 -0
  86. package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
  87. package/dist/swap/providers/uniswap/abis.d.ts +227 -0
  88. package/dist/swap/providers/uniswap/abis.d.ts.map +1 -0
  89. package/dist/swap/providers/uniswap/abis.js +138 -0
  90. package/dist/swap/providers/uniswap/abis.js.map +1 -0
  91. package/dist/swap/providers/uniswap/addresses.d.ts +21 -0
  92. package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -0
  93. package/dist/swap/providers/uniswap/addresses.js +81 -0
  94. package/dist/swap/providers/uniswap/addresses.js.map +1 -0
  95. package/dist/swap/providers/uniswap/encoding.d.ts +77 -0
  96. package/dist/swap/providers/uniswap/encoding.d.ts.map +1 -0
  97. package/dist/swap/providers/uniswap/encoding.js +233 -0
  98. package/dist/swap/providers/uniswap/encoding.js.map +1 -0
  99. package/dist/swap/providers/uniswap/types.d.ts +20 -0
  100. package/dist/swap/providers/uniswap/types.d.ts.map +1 -0
  101. package/dist/swap/providers/uniswap/types.js +2 -0
  102. package/dist/swap/providers/uniswap/types.js.map +1 -0
  103. package/dist/types/actions.d.ts +19 -5
  104. package/dist/types/actions.d.ts.map +1 -1
  105. package/dist/types/index.d.ts +2 -0
  106. package/dist/types/index.d.ts.map +1 -1
  107. package/dist/types/index.js +2 -0
  108. package/dist/types/index.js.map +1 -1
  109. package/dist/types/lend/base.d.ts +3 -13
  110. package/dist/types/lend/base.d.ts.map +1 -1
  111. package/dist/types/lend/base.js.map +1 -1
  112. package/dist/types/swap/base.d.ts +238 -0
  113. package/dist/types/swap/base.d.ts.map +1 -0
  114. package/dist/types/swap/base.js +4 -0
  115. package/dist/types/swap/base.js.map +1 -0
  116. package/dist/types/swap/index.d.ts +2 -0
  117. package/dist/types/swap/index.d.ts.map +1 -0
  118. package/dist/types/swap/index.js +2 -0
  119. package/dist/types/swap/index.js.map +1 -0
  120. package/dist/types/transaction.d.ts +14 -0
  121. package/dist/types/transaction.d.ts.map +1 -0
  122. package/dist/types/transaction.js +2 -0
  123. package/dist/types/transaction.js.map +1 -0
  124. package/dist/utils/assets.d.ts +4 -5
  125. package/dist/utils/assets.d.ts.map +1 -1
  126. package/dist/utils/assets.js +4 -11
  127. package/dist/utils/assets.js.map +1 -1
  128. package/dist/utils/assets.test.js +13 -1
  129. package/dist/utils/assets.test.js.map +1 -1
  130. package/dist/utils/permit2.d.ts +46 -0
  131. package/dist/utils/permit2.d.ts.map +1 -0
  132. package/dist/utils/permit2.js +100 -0
  133. package/dist/utils/permit2.js.map +1 -0
  134. package/dist/utils/permit2.test.d.ts +2 -0
  135. package/dist/utils/permit2.test.d.ts.map +1 -0
  136. package/dist/utils/permit2.test.js +110 -0
  137. package/dist/utils/permit2.test.js.map +1 -0
  138. package/dist/utils/validation.d.ts +12 -0
  139. package/dist/utils/validation.d.ts.map +1 -0
  140. package/dist/utils/validation.js +44 -0
  141. package/dist/utils/validation.js.map +1 -0
  142. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +7 -1
  143. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
  144. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +2 -1
  145. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
  146. package/dist/wallet/core/providers/hosted/types/index.d.ts +5 -1
  147. package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
  148. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +7 -1
  149. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
  150. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +5 -1
  151. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
  152. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +2 -2
  153. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
  154. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +13 -2
  155. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  156. package/dist/wallet/core/wallets/abstract/Wallet.js +7 -1
  157. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  158. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +7 -2
  159. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  160. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +6 -5
  161. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  162. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
  163. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  164. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -1
  165. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  166. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
  167. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +4 -3
  168. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
  169. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +5 -1
  170. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  171. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +4 -2
  172. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  173. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +6 -1
  174. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  175. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +4 -3
  176. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  177. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
  178. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  179. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  180. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  181. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +7 -1
  182. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
  183. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +6 -2
  184. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
  185. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -0
  186. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
  187. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
  188. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  189. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -2
  190. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  191. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -0
  192. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  193. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +6 -3
  194. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  195. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +5 -4
  196. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  197. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
  198. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +6 -6
  199. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
  200. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +7 -1
  201. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
  202. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +5 -3
  203. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
  204. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -1
  205. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  206. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
  207. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  208. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
  209. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  210. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  211. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  212. package/package.json +2 -2
  213. package/src/__mocks__/MockAssets.ts +2 -0
  214. package/src/__tests__/actions.test.ts +0 -4
  215. package/src/actions.ts +57 -19
  216. package/src/constants/assets.ts +16 -0
  217. package/src/constants/contracts.ts +5 -0
  218. package/src/index.ts +30 -2
  219. package/src/lend/core/LendProvider.ts +6 -18
  220. package/src/lend/core/__tests__/LendProvider.test.ts +2 -5
  221. package/src/lend/providers/morpho/__tests__/sdk.test.ts +3 -2
  222. package/src/lend/providers/morpho/api.ts +4 -0
  223. package/src/lend/providers/morpho/sdk.ts +10 -1
  224. package/src/supported/tokens.ts +16 -2
  225. package/src/swap/__mocks__/MockSwapProvider.ts +216 -0
  226. package/src/swap/core/SwapProvider.ts +319 -0
  227. package/src/swap/core/__tests__/SwapProvider.test.ts +478 -0
  228. package/src/swap/index.ts +14 -0
  229. package/src/swap/namespaces/ActionsSwapNamespace.ts +7 -0
  230. package/src/swap/namespaces/BaseSwapNamespace.ts +77 -0
  231. package/src/swap/namespaces/WalletSwapNamespace.ts +82 -0
  232. package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +138 -0
  233. package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +162 -0
  234. package/src/swap/providers/uniswap/UniswapSwapProvider.ts +304 -0
  235. package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +299 -0
  236. package/src/swap/providers/uniswap/__tests__/sdk.test.ts +370 -0
  237. package/src/swap/providers/uniswap/abis.ts +144 -0
  238. package/src/swap/providers/uniswap/addresses.ts +108 -0
  239. package/src/swap/providers/uniswap/encoding.ts +406 -0
  240. package/src/swap/providers/uniswap/types.ts +24 -0
  241. package/src/types/actions.ts +22 -6
  242. package/src/types/index.ts +2 -0
  243. package/src/types/lend/base.ts +4 -14
  244. package/src/types/swap/base.ts +259 -0
  245. package/src/types/swap/index.ts +1 -0
  246. package/src/types/transaction.ts +14 -0
  247. package/src/utils/assets.test.ts +16 -1
  248. package/src/utils/assets.ts +13 -10
  249. package/src/utils/permit2.test.ts +142 -0
  250. package/src/utils/permit2.ts +144 -0
  251. package/src/utils/validation.ts +76 -0
  252. package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +9 -1
  253. package/src/wallet/core/providers/hosted/types/index.ts +5 -1
  254. package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +13 -1
  255. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +2 -0
  256. package/src/wallet/core/wallets/abstract/Wallet.ts +18 -2
  257. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +14 -5
  258. package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +13 -2
  259. package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +10 -2
  260. package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -2
  261. package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +11 -2
  262. package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
  263. package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +10 -2
  264. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -0
  265. package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +9 -2
  266. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -0
  267. package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +9 -4
  268. package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +18 -6
  269. package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -2
  270. package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +10 -2
  271. package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
@@ -5,7 +5,8 @@ import type { Address, LocalAccount } from 'viem'
5
5
 
6
6
  import type { LendProvider } from '@/lend/core/LendProvider.js'
7
7
  import type { ChainManager } from '@/services/ChainManager.js'
8
- import type { LendProviderConfig } from '@/types/actions.js'
8
+ import type { SwapProvider } from '@/swap/core/SwapProvider.js'
9
+ import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
9
10
  import type { Asset } from '@/types/asset.js'
10
11
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
11
12
  import { createSigner } from '@/wallet/node/wallets/hosted/turnkey/utils/createSigner.js'
@@ -50,6 +51,9 @@ export class TurnkeyWallet extends EOAWallet {
50
51
  morpho?: LendProvider<LendProviderConfig>
51
52
  aave?: LendProvider<LendProviderConfig>
52
53
  }
54
+ swapProviders?: {
55
+ uniswap?: SwapProvider<SwapProviderConfig>
56
+ }
53
57
  supportedAssets?: Asset[]
54
58
  }) {
55
59
  const {
@@ -59,9 +63,10 @@ export class TurnkeyWallet extends EOAWallet {
59
63
  signWith,
60
64
  ethereumAddress,
61
65
  lendProviders,
66
+ swapProviders,
62
67
  supportedAssets,
63
68
  } = params
64
- super(chainManager, lendProviders, supportedAssets)
69
+ super(chainManager, lendProviders, swapProviders, supportedAssets)
65
70
  this.client = client
66
71
  this.organizationId = organizationId
67
72
  this.signWith = signWith
@@ -78,6 +83,9 @@ export class TurnkeyWallet extends EOAWallet {
78
83
  morpho?: LendProvider<LendProviderConfig>
79
84
  aave?: LendProvider<LendProviderConfig>
80
85
  }
86
+ swapProviders?: {
87
+ uniswap?: SwapProvider<SwapProviderConfig>
88
+ }
81
89
  supportedAssets?: Asset[]
82
90
  }): Promise<TurnkeyWallet> {
83
91
  const wallet = new TurnkeyWallet(params)
@@ -2,7 +2,8 @@ import type { LocalAccount } from 'viem'
2
2
 
3
3
  import type { LendProvider } from '@/lend/core/LendProvider.js'
4
4
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
5
+ import type { SwapProvider } from '@/swap/core/SwapProvider.js'
6
+ import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
6
7
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
7
8
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
8
9
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -19,6 +20,9 @@ export class DynamicHostedWalletProvider extends HostedWalletProvider<
19
20
  > {
20
21
  /**
21
22
  * Create a new Dynamic wallet provider
23
+ * @param chainManager Chain manager for RPC, chain info, and transports
24
+ * @param lendProviders Optional lend providers for DeFi operations
25
+ * @param swapProviders Optional swap providers for trading operations
22
26
  */
23
27
  constructor(
24
28
  chainManager: ChainManager,
@@ -26,8 +30,11 @@ export class DynamicHostedWalletProvider extends HostedWalletProvider<
26
30
  morpho?: LendProvider<LendProviderConfig>
27
31
  aave?: LendProvider<LendProviderConfig>
28
32
  },
33
+ swapProviders?: {
34
+ uniswap?: SwapProvider<SwapProviderConfig>
35
+ },
29
36
  ) {
30
- super(chainManager, lendProviders)
37
+ super(chainManager, lendProviders, swapProviders)
31
38
  }
32
39
 
33
40
  async toActionsWallet(
@@ -37,6 +44,7 @@ export class DynamicHostedWalletProvider extends HostedWalletProvider<
37
44
  dynamicWallet: params.wallet,
38
45
  chainManager: this.chainManager,
39
46
  lendProviders: this.lendProviders,
47
+ swapProviders: this.swapProviders,
40
48
  })
41
49
  }
42
50
 
@@ -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
  })
@@ -2,7 +2,8 @@ import type { LocalAccount } from 'viem'
2
2
 
3
3
  import type { LendProvider } from '@/lend/core/LendProvider.js'
4
4
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
5
+ import type { SwapProvider } from '@/swap/core/SwapProvider.js'
6
+ import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
6
7
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
7
8
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
8
9
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -19,6 +20,8 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
19
20
  /**
20
21
  * Create a new Privy wallet provider
21
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,
@@ -26,8 +29,11 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
26
29
  morpho?: LendProvider<LendProviderConfig>
27
30
  aave?: LendProvider<LendProviderConfig>
28
31
  },
32
+ swapProviders?: {
33
+ uniswap?: SwapProvider<SwapProviderConfig>
34
+ },
29
35
  ) {
30
- super(chainManager, lendProviders)
36
+ super(chainManager, lendProviders, swapProviders)
31
37
  }
32
38
 
33
39
  async toActionsWallet(
@@ -38,6 +44,7 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
38
44
  chainManager: this.chainManager,
39
45
  connectedWallet,
40
46
  lendProviders: this.lendProviders,
47
+ swapProviders: this.swapProviders,
41
48
  })
42
49
  return wallet
43
50
  }
@@ -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
  })
@@ -2,7 +2,8 @@ import type { LocalAccount } from 'viem'
2
2
 
3
3
  import type { LendProvider } from '@/lend/core/LendProvider.js'
4
4
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
5
+ import type { SwapProvider } from '@/swap/core/SwapProvider.js'
6
+ import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
6
7
  import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
7
8
  import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
8
9
  import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
@@ -22,9 +23,9 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
22
23
  > {
23
24
  /**
24
25
  * 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
26
  * @param chainManager - Chain manager used to resolve chains and RPC transports
27
+ * @param lendProviders - Optional lend providers for DeFi operations
28
+ * @param swapProviders - Optional swap providers for trading operations
28
29
  */
29
30
  constructor(
30
31
  chainManager: ChainManager,
@@ -32,8 +33,11 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
32
33
  morpho?: LendProvider<LendProviderConfig>
33
34
  aave?: LendProvider<LendProviderConfig>
34
35
  },
36
+ swapProviders?: {
37
+ uniswap?: SwapProvider<SwapProviderConfig>
38
+ },
35
39
  ) {
36
- super(chainManager, lendProviders)
40
+ super(chainManager, lendProviders, swapProviders)
37
41
  }
38
42
 
39
43
  /**
@@ -58,6 +62,7 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
58
62
  ethereumAddress,
59
63
  chainManager: this.chainManager,
60
64
  lendProviders: this.lendProviders,
65
+ swapProviders: this.swapProviders,
61
66
  })
62
67
  }
63
68
 
@@ -29,8 +29,12 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
29
29
  validateOptions(_options): _options is ReactOptionsMap['dynamic'] {
30
30
  return true
31
31
  },
32
- create({ chainManager, lendProviders }, _options) {
33
- return new DynamicHostedWalletProvider(chainManager, lendProviders)
32
+ create({ chainManager, lendProviders, swapProviders }, _options) {
33
+ return new DynamicHostedWalletProvider(
34
+ chainManager,
35
+ lendProviders,
36
+ swapProviders,
37
+ )
34
38
  },
35
39
  })
36
40
 
@@ -39,8 +43,12 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
39
43
  validateOptions(_options): _options is ReactOptionsMap['privy'] {
40
44
  return true
41
45
  },
42
- create({ chainManager, lendProviders }, _options) {
43
- return new PrivyHostedWalletProvider(chainManager, lendProviders)
46
+ create({ chainManager, lendProviders, swapProviders }, _options) {
47
+ return new PrivyHostedWalletProvider(
48
+ chainManager,
49
+ lendProviders,
50
+ swapProviders,
51
+ )
44
52
  },
45
53
  })
46
54
 
@@ -49,8 +57,12 @@ export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegis
49
57
  validateOptions(_options): _options is ReactOptionsMap['turnkey'] {
50
58
  return true
51
59
  },
52
- create({ chainManager, lendProviders }, _options) {
53
- return new TurnkeyHostedWalletProvider(chainManager, lendProviders)
60
+ create({ chainManager, lendProviders, swapProviders }, _options) {
61
+ return new TurnkeyHostedWalletProvider(
62
+ chainManager,
63
+ lendProviders,
64
+ swapProviders,
65
+ )
54
66
  },
55
67
  })
56
68
  }
@@ -2,7 +2,8 @@ import { type Address, type LocalAccount } from 'viem'
2
2
 
3
3
  import type { LendProvider } from '@/lend/core/LendProvider.js'
4
4
  import type { ChainManager } from '@/services/ChainManager.js'
5
- import type { LendProviderConfig } from '@/types/actions.js'
5
+ import type { SwapProvider } from '@/swap/core/SwapProvider.js'
6
+ import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
6
7
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
7
8
  import type { DynamicHostedWalletToActionsWalletOptions } from '@/wallet/react/providers/hosted/types/index.js'
8
9
  import { createSigner } from '@/wallet/react/wallets/hosted/dynamic/utils/createSigner.js'
@@ -20,6 +21,8 @@ export class DynamicWallet extends EOAWallet {
20
21
  * Create a new Dynamic wallet
21
22
  * @param chainManager - Chain manager for RPC, chain info, and transports
22
23
  * @param dynamicWallet - Dynamic Labs wallet instance (EVM)
24
+ * @param lendProviders - Optional lend providers for DeFi operations
25
+ * @param swapProviders - Optional swap providers for trading operations
23
26
  */
24
27
  private constructor(
25
28
  chainManager: ChainManager,
@@ -28,8 +31,11 @@ export class DynamicWallet extends EOAWallet {
28
31
  morpho?: LendProvider<LendProviderConfig>
29
32
  aave?: LendProvider<LendProviderConfig>
30
33
  },
34
+ swapProviders?: {
35
+ uniswap?: SwapProvider<SwapProviderConfig>
36
+ },
31
37
  ) {
32
- super(chainManager, lendProviders)
38
+ super(chainManager, lendProviders, swapProviders)
33
39
  this.dynamicWallet = dynamicWallet
34
40
  }
35
41
 
@@ -40,11 +46,15 @@ export class DynamicWallet extends EOAWallet {
40
46
  morpho?: LendProvider<LendProviderConfig>
41
47
  aave?: LendProvider<LendProviderConfig>
42
48
  }
49
+ swapProviders?: {
50
+ uniswap?: SwapProvider<SwapProviderConfig>
51
+ }
43
52
  }): Promise<DynamicWallet> {
44
53
  const wallet = new DynamicWallet(
45
54
  params.chainManager,
46
55
  params.dynamicWallet,
47
56
  params.lendProviders,
57
+ params.swapProviders,
48
58
  )
49
59
  await wallet.initialize()
50
60
  return wallet
@@ -3,7 +3,8 @@ import type { Address, LocalAccount } from 'viem'
3
3
 
4
4
  import type { LendProvider } from '@/lend/core/LendProvider.js'
5
5
  import type { ChainManager } from '@/services/ChainManager.js'
6
- import type { LendProviderConfig } from '@/types/actions.js'
6
+ import type { SwapProvider } from '@/swap/core/SwapProvider.js'
7
+ import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
7
8
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
8
9
  import { createSigner } from '@/wallet/react/wallets/hosted/privy/utils/createSigner.js'
9
10
 
@@ -24,8 +25,11 @@ export class PrivyWallet extends EOAWallet {
24
25
  morpho?: LendProvider<LendProviderConfig>
25
26
  aave?: LendProvider<LendProviderConfig>
26
27
  },
28
+ swapProviders?: {
29
+ uniswap?: SwapProvider<SwapProviderConfig>
30
+ },
27
31
  ) {
28
- super(chainManager, lendProviders)
32
+ super(chainManager, lendProviders, swapProviders)
29
33
  this.connectedWallet = connectedWallet
30
34
  }
31
35
 
@@ -36,11 +40,15 @@ export class PrivyWallet extends EOAWallet {
36
40
  morpho?: LendProvider<LendProviderConfig>
37
41
  aave?: LendProvider<LendProviderConfig>
38
42
  }
43
+ swapProviders?: {
44
+ uniswap?: SwapProvider<SwapProviderConfig>
45
+ }
39
46
  }): Promise<PrivyWallet> {
40
47
  const wallet = new PrivyWallet(
41
48
  params.chainManager,
42
49
  params.connectedWallet,
43
50
  params.lendProviders,
51
+ params.swapProviders,
44
52
  )
45
53
  await wallet.initialize()
46
54
  return wallet
@@ -3,7 +3,8 @@ import type { Address, LocalAccount } from 'viem'
3
3
 
4
4
  import type { LendProvider } from '@/lend/core/LendProvider.js'
5
5
  import type { ChainManager } from '@/services/ChainManager.js'
6
- import type { LendProviderConfig } from '@/types/actions.js'
6
+ import type { SwapProvider } from '@/swap/core/SwapProvider.js'
7
+ import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
7
8
  import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
8
9
  import { createSigner } from '@/wallet/react/wallets/hosted/turnkey/utils/createSigner.js'
9
10
 
@@ -44,6 +45,9 @@ export class TurnkeyWallet extends EOAWallet {
44
45
  morpho?: LendProvider<LendProviderConfig>
45
46
  aave?: LendProvider<LendProviderConfig>
46
47
  }
48
+ swapProviders?: {
49
+ uniswap?: SwapProvider<SwapProviderConfig>
50
+ }
47
51
  }) {
48
52
  const {
49
53
  chainManager,
@@ -52,8 +56,9 @@ export class TurnkeyWallet extends EOAWallet {
52
56
  signWith,
53
57
  ethereumAddress,
54
58
  lendProviders,
59
+ swapProviders,
55
60
  } = params
56
- super(chainManager, lendProviders)
61
+ super(chainManager, lendProviders, swapProviders)
57
62
  this.client = client
58
63
  this.organizationId = organizationId
59
64
  this.signWith = signWith
@@ -70,6 +75,9 @@ export class TurnkeyWallet extends EOAWallet {
70
75
  morpho?: LendProvider<LendProviderConfig>
71
76
  aave?: LendProvider<LendProviderConfig>
72
77
  }
78
+ swapProviders?: {
79
+ uniswap?: SwapProvider<SwapProviderConfig>
80
+ }
73
81
  }): Promise<TurnkeyWallet> {
74
82
  const wallet = new TurnkeyWallet(params)
75
83
  await wallet.initialize()