@eth-optimism/actions-sdk 0.0.0-main-20251009211102

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 (648) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +106 -0
  3. package/dist/actions.d.ts +58 -0
  4. package/dist/actions.d.ts.map +1 -0
  5. package/dist/actions.js +88 -0
  6. package/dist/actions.js.map +1 -0
  7. package/dist/actions.test.d.ts +2 -0
  8. package/dist/actions.test.d.ts.map +1 -0
  9. package/dist/actions.test.js +620 -0
  10. package/dist/actions.test.js.map +1 -0
  11. package/dist/constants/assets.d.ts +3 -0
  12. package/dist/constants/assets.d.ts.map +1 -0
  13. package/dist/constants/assets.js +16 -0
  14. package/dist/constants/assets.js.map +1 -0
  15. package/dist/constants/config.d.ts +10 -0
  16. package/dist/constants/config.d.ts.map +1 -0
  17. package/dist/constants/config.js +10 -0
  18. package/dist/constants/config.js.map +1 -0
  19. package/dist/constants/supportedChains.d.ts +3 -0
  20. package/dist/constants/supportedChains.d.ts.map +1 -0
  21. package/dist/constants/supportedChains.js +8 -0
  22. package/dist/constants/supportedChains.js.map +1 -0
  23. package/dist/core/asset/__mocks__/mockAsset.d.ts +6 -0
  24. package/dist/core/asset/__mocks__/mockAsset.d.ts.map +1 -0
  25. package/dist/core/asset/__mocks__/mockAsset.js +12 -0
  26. package/dist/core/asset/__mocks__/mockAsset.js.map +1 -0
  27. package/dist/core/error/errors.d.ts +19 -0
  28. package/dist/core/error/errors.d.ts.map +1 -0
  29. package/dist/core/error/errors.js +22 -0
  30. package/dist/core/error/errors.js.map +1 -0
  31. package/dist/core/utils/__tests__/retryOnStaleRead.spec.d.ts +2 -0
  32. package/dist/core/utils/__tests__/retryOnStaleRead.spec.d.ts.map +1 -0
  33. package/dist/core/utils/__tests__/retryOnStaleRead.spec.js +41 -0
  34. package/dist/core/utils/__tests__/retryOnStaleRead.spec.js.map +1 -0
  35. package/dist/core/utils/retryOnStaleRead.d.ts +14 -0
  36. package/dist/core/utils/retryOnStaleRead.d.ts.map +1 -0
  37. package/dist/core/utils/retryOnStaleRead.js +29 -0
  38. package/dist/core/utils/retryOnStaleRead.js.map +1 -0
  39. package/dist/index.d.ts +11 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +8 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/index.node.d.ts +5 -0
  44. package/dist/index.node.d.ts.map +1 -0
  45. package/dist/index.node.js +4 -0
  46. package/dist/index.node.js.map +1 -0
  47. package/dist/index.react.d.ts +5 -0
  48. package/dist/index.react.d.ts.map +1 -0
  49. package/dist/index.react.js +4 -0
  50. package/dist/index.react.js.map +1 -0
  51. package/dist/lend/__mocks__/mockLendTransaction.d.ts +22 -0
  52. package/dist/lend/__mocks__/mockLendTransaction.d.ts.map +1 -0
  53. package/dist/lend/__mocks__/mockLendTransaction.js +32 -0
  54. package/dist/lend/__mocks__/mockLendTransaction.js.map +1 -0
  55. package/dist/lend/core/LendProvider.d.ts +122 -0
  56. package/dist/lend/core/LendProvider.d.ts.map +1 -0
  57. package/dist/lend/core/LendProvider.js +183 -0
  58. package/dist/lend/core/LendProvider.js.map +1 -0
  59. package/dist/lend/core/__tests__/LendProvider.test.d.ts +2 -0
  60. package/dist/lend/core/__tests__/LendProvider.test.d.ts.map +1 -0
  61. package/dist/lend/core/__tests__/LendProvider.test.js +247 -0
  62. package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -0
  63. package/dist/lend/index.d.ts +3 -0
  64. package/dist/lend/index.d.ts.map +1 -0
  65. package/dist/lend/index.js +3 -0
  66. package/dist/lend/index.js.map +1 -0
  67. package/dist/lend/namespaces/ActionsLendNamespace.d.ts +15 -0
  68. package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -0
  69. package/dist/lend/namespaces/ActionsLendNamespace.js +17 -0
  70. package/dist/lend/namespaces/ActionsLendNamespace.js.map +1 -0
  71. package/dist/lend/namespaces/WalletLendNamespace.d.ts +36 -0
  72. package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -0
  73. package/dist/lend/namespaces/WalletLendNamespace.js +68 -0
  74. package/dist/lend/namespaces/WalletLendNamespace.js.map +1 -0
  75. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts +2 -0
  76. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts.map +1 -0
  77. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js +41 -0
  78. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +1 -0
  79. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts +2 -0
  80. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts.map +1 -0
  81. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js +188 -0
  82. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -0
  83. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +55 -0
  84. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -0
  85. package/dist/lend/providers/morpho/MorphoLendProvider.js +193 -0
  86. package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -0
  87. package/dist/lend/providers/morpho/__mocks__/mockVault.d.ts +21 -0
  88. package/dist/lend/providers/morpho/__mocks__/mockVault.d.ts.map +1 -0
  89. package/dist/lend/providers/morpho/__mocks__/mockVault.js +27 -0
  90. package/dist/lend/providers/morpho/__mocks__/mockVault.js.map +1 -0
  91. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts +2 -0
  92. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts.map +1 -0
  93. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js +259 -0
  94. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +1 -0
  95. package/dist/lend/providers/morpho/__tests__/api.test.d.ts +2 -0
  96. package/dist/lend/providers/morpho/__tests__/api.test.d.ts.map +1 -0
  97. package/dist/lend/providers/morpho/__tests__/api.test.js +66 -0
  98. package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -0
  99. package/dist/lend/providers/morpho/__tests__/sdk.test.d.ts +2 -0
  100. package/dist/lend/providers/morpho/__tests__/sdk.test.d.ts.map +1 -0
  101. package/dist/lend/providers/morpho/__tests__/sdk.test.js +332 -0
  102. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -0
  103. package/dist/lend/providers/morpho/api.d.ts +14 -0
  104. package/dist/lend/providers/morpho/api.d.ts.map +1 -0
  105. package/dist/lend/providers/morpho/api.js +76 -0
  106. package/dist/lend/providers/morpho/api.js.map +1 -0
  107. package/dist/lend/providers/morpho/sdk.d.ts +61 -0
  108. package/dist/lend/providers/morpho/sdk.d.ts.map +1 -0
  109. package/dist/lend/providers/morpho/sdk.js +300 -0
  110. package/dist/lend/providers/morpho/sdk.js.map +1 -0
  111. package/dist/nodeActionsFactory.d.ts +19 -0
  112. package/dist/nodeActionsFactory.d.ts.map +1 -0
  113. package/dist/nodeActionsFactory.js +17 -0
  114. package/dist/nodeActionsFactory.js.map +1 -0
  115. package/dist/reactActionsFactory.d.ts +19 -0
  116. package/dist/reactActionsFactory.d.ts.map +1 -0
  117. package/dist/reactActionsFactory.js +17 -0
  118. package/dist/reactActionsFactory.js.map +1 -0
  119. package/dist/services/ChainManager.d.ts +90 -0
  120. package/dist/services/ChainManager.d.ts.map +1 -0
  121. package/dist/services/ChainManager.js +183 -0
  122. package/dist/services/ChainManager.js.map +1 -0
  123. package/dist/services/ChainManager.spec.d.ts +2 -0
  124. package/dist/services/ChainManager.spec.d.ts.map +1 -0
  125. package/dist/services/ChainManager.spec.js +260 -0
  126. package/dist/services/ChainManager.spec.js.map +1 -0
  127. package/dist/services/tokenBalance.d.ts +15 -0
  128. package/dist/services/tokenBalance.d.ts.map +1 -0
  129. package/dist/services/tokenBalance.js +82 -0
  130. package/dist/services/tokenBalance.js.map +1 -0
  131. package/dist/services/tokenBalance.spec.d.ts +2 -0
  132. package/dist/services/tokenBalance.spec.d.ts.map +1 -0
  133. package/dist/services/tokenBalance.spec.js +73 -0
  134. package/dist/services/tokenBalance.spec.js.map +1 -0
  135. package/dist/supported/tokens.d.ts +25 -0
  136. package/dist/supported/tokens.d.ts.map +1 -0
  137. package/dist/supported/tokens.js +88 -0
  138. package/dist/supported/tokens.js.map +1 -0
  139. package/dist/test/MockAssets.d.ts +10 -0
  140. package/dist/test/MockAssets.d.ts.map +1 -0
  141. package/dist/test/MockAssets.js +29 -0
  142. package/dist/test/MockAssets.js.map +1 -0
  143. package/dist/test/MockChainManager.d.ts +31 -0
  144. package/dist/test/MockChainManager.d.ts.map +1 -0
  145. package/dist/test/MockChainManager.js +92 -0
  146. package/dist/test/MockChainManager.js.map +1 -0
  147. package/dist/test/MockLendProvider.d.ts +68 -0
  148. package/dist/test/MockLendProvider.d.ts.map +1 -0
  149. package/dist/test/MockLendProvider.js +258 -0
  150. package/dist/test/MockLendProvider.js.map +1 -0
  151. package/dist/test/MockMarkets.d.ts +15 -0
  152. package/dist/test/MockMarkets.d.ts.map +1 -0
  153. package/dist/test/MockMarkets.js +26 -0
  154. package/dist/test/MockMarkets.js.map +1 -0
  155. package/dist/test/MockPrivyClient.d.ts +66 -0
  156. package/dist/test/MockPrivyClient.d.ts.map +1 -0
  157. package/dist/test/MockPrivyClient.js +93 -0
  158. package/dist/test/MockPrivyClient.js.map +1 -0
  159. package/dist/test/utils.d.ts +2 -0
  160. package/dist/test/utils.d.ts.map +1 -0
  161. package/dist/test/utils.js +5 -0
  162. package/dist/test/utils.js.map +1 -0
  163. package/dist/types/actions.d.ts +69 -0
  164. package/dist/types/actions.d.ts.map +1 -0
  165. package/dist/types/actions.js +2 -0
  166. package/dist/types/actions.js.map +1 -0
  167. package/dist/types/asset.d.ts +32 -0
  168. package/dist/types/asset.d.ts.map +1 -0
  169. package/dist/types/asset.js +2 -0
  170. package/dist/types/asset.js.map +1 -0
  171. package/dist/types/chain.d.ts +26 -0
  172. package/dist/types/chain.d.ts.map +1 -0
  173. package/dist/types/chain.js +2 -0
  174. package/dist/types/chain.js.map +1 -0
  175. package/dist/types/index.d.ts +6 -0
  176. package/dist/types/index.d.ts.map +1 -0
  177. package/dist/types/index.js +6 -0
  178. package/dist/types/index.js.map +1 -0
  179. package/dist/types/lend/base.d.ts +370 -0
  180. package/dist/types/lend/base.d.ts.map +1 -0
  181. package/dist/types/lend/base.js +4 -0
  182. package/dist/types/lend/base.js.map +1 -0
  183. package/dist/types/lend/index.d.ts +3 -0
  184. package/dist/types/lend/index.d.ts.map +1 -0
  185. package/dist/types/lend/index.js +3 -0
  186. package/dist/types/lend/index.js.map +1 -0
  187. package/dist/types/lend/morpho.d.ts +7 -0
  188. package/dist/types/lend/morpho.d.ts.map +1 -0
  189. package/dist/types/lend/morpho.js +6 -0
  190. package/dist/types/lend/morpho.js.map +1 -0
  191. package/dist/types/wallet.d.ts +26 -0
  192. package/dist/types/wallet.d.ts.map +1 -0
  193. package/dist/types/wallet.js +2 -0
  194. package/dist/types/wallet.js.map +1 -0
  195. package/dist/utils/assets.d.ts +33 -0
  196. package/dist/utils/assets.d.ts.map +1 -0
  197. package/dist/utils/assets.js +53 -0
  198. package/dist/utils/assets.js.map +1 -0
  199. package/dist/utils/assets.test.d.ts +2 -0
  200. package/dist/utils/assets.test.d.ts.map +1 -0
  201. package/dist/utils/assets.test.js +24 -0
  202. package/dist/utils/assets.test.js.map +1 -0
  203. package/dist/utils/markets.d.ts +17 -0
  204. package/dist/utils/markets.d.ts.map +1 -0
  205. package/dist/utils/markets.js +25 -0
  206. package/dist/utils/markets.js.map +1 -0
  207. package/dist/utils/test.d.ts +117 -0
  208. package/dist/utils/test.d.ts.map +1 -0
  209. package/dist/utils/test.js +265 -0
  210. package/dist/utils/test.js.map +1 -0
  211. package/dist/wallet/core/namespace/WalletNamespace.d.ts +84 -0
  212. package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -0
  213. package/dist/wallet/core/namespace/WalletNamespace.js +89 -0
  214. package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -0
  215. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.d.ts +2 -0
  216. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.d.ts.map +1 -0
  217. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +249 -0
  218. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -0
  219. package/dist/wallet/core/providers/WalletProvider.d.ts +63 -0
  220. package/dist/wallet/core/providers/WalletProvider.d.ts.map +1 -0
  221. package/dist/wallet/core/providers/WalletProvider.js +85 -0
  222. package/dist/wallet/core/providers/WalletProvider.js.map +1 -0
  223. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.d.ts +2 -0
  224. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.d.ts.map +1 -0
  225. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +246 -0
  226. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -0
  227. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +33 -0
  228. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -0
  229. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +13 -0
  230. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -0
  231. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.d.ts +20 -0
  232. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.d.ts.map +1 -0
  233. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js +29 -0
  234. package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js.map +1 -0
  235. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.d.ts +2 -0
  236. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.d.ts.map +1 -0
  237. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +52 -0
  238. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -0
  239. package/dist/wallet/core/providers/hosted/types/index.d.ts +70 -0
  240. package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -0
  241. package/dist/wallet/core/providers/hosted/types/index.js +2 -0
  242. package/dist/wallet/core/providers/hosted/types/index.js.map +1 -0
  243. package/dist/wallet/core/providers/smart/abstract/SmartWalletProvider.d.ts +61 -0
  244. package/dist/wallet/core/providers/smart/abstract/SmartWalletProvider.d.ts.map +1 -0
  245. package/dist/wallet/core/providers/smart/abstract/SmartWalletProvider.js +7 -0
  246. package/dist/wallet/core/providers/smart/abstract/SmartWalletProvider.js.map +1 -0
  247. package/dist/wallet/core/providers/smart/abstract/types/index.d.ts +16 -0
  248. package/dist/wallet/core/providers/smart/abstract/types/index.d.ts.map +1 -0
  249. package/dist/wallet/core/providers/smart/abstract/types/index.js +2 -0
  250. package/dist/wallet/core/providers/smart/abstract/types/index.js.map +1 -0
  251. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +77 -0
  252. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -0
  253. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +125 -0
  254. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -0
  255. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.d.ts +2 -0
  256. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.d.ts.map +1 -0
  257. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +325 -0
  258. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -0
  259. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +96 -0
  260. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -0
  261. package/dist/wallet/core/wallets/abstract/Wallet.js +81 -0
  262. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -0
  263. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +15 -0
  264. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -0
  265. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js +18 -0
  266. package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -0
  267. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.d.ts +2 -0
  268. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.d.ts.map +1 -0
  269. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +44 -0
  270. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -0
  271. package/dist/wallet/core/wallets/abstract/types/index.d.ts +30 -0
  272. package/dist/wallet/core/wallets/abstract/types/index.d.ts.map +1 -0
  273. package/dist/wallet/core/wallets/abstract/types/index.js +2 -0
  274. package/dist/wallet/core/wallets/abstract/types/index.js.map +1 -0
  275. package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts +44 -0
  276. package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts.map +1 -0
  277. package/dist/wallet/core/wallets/eoa/EOAWallet.js +67 -0
  278. package/dist/wallet/core/wallets/eoa/EOAWallet.js.map +1 -0
  279. package/dist/wallet/core/wallets/eoa/__mocks__/EOAWallet.d.ts +28 -0
  280. package/dist/wallet/core/wallets/eoa/__mocks__/EOAWallet.d.ts.map +1 -0
  281. package/dist/wallet/core/wallets/eoa/__mocks__/EOAWallet.js +51 -0
  282. package/dist/wallet/core/wallets/eoa/__mocks__/EOAWallet.js.map +1 -0
  283. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.d.ts +2 -0
  284. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.d.ts.map +1 -0
  285. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js +191 -0
  286. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js.map +1 -0
  287. package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts +69 -0
  288. package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts.map +1 -0
  289. package/dist/wallet/core/wallets/smart/abstract/SmartWallet.js +8 -0
  290. package/dist/wallet/core/wallets/smart/abstract/SmartWallet.js.map +1 -0
  291. package/dist/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.d.ts +43 -0
  292. package/dist/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.d.ts.map +1 -0
  293. package/dist/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.js +67 -0
  294. package/dist/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.js.map +1 -0
  295. package/dist/wallet/core/wallets/smart/abstract/types/index.d.ts +19 -0
  296. package/dist/wallet/core/wallets/smart/abstract/types/index.d.ts.map +1 -0
  297. package/dist/wallet/core/wallets/smart/abstract/types/index.js +2 -0
  298. package/dist/wallet/core/wallets/smart/abstract/types/index.js.map +1 -0
  299. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +191 -0
  300. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -0
  301. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +436 -0
  302. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -0
  303. package/dist/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.d.ts +40 -0
  304. package/dist/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.d.ts.map +1 -0
  305. package/dist/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.js +72 -0
  306. package/dist/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.js.map +1 -0
  307. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.d.ts +2 -0
  308. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.d.ts.map +1 -0
  309. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +561 -0
  310. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -0
  311. package/dist/wallet/core/wallets/smart/default/constants/index.d.ts +719 -0
  312. package/dist/wallet/core/wallets/smart/default/constants/index.d.ts.map +1 -0
  313. package/dist/wallet/core/wallets/smart/default/constants/index.js +480 -0
  314. package/dist/wallet/core/wallets/smart/default/constants/index.js.map +1 -0
  315. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.d.ts +2 -0
  316. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.d.ts.map +1 -0
  317. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js +52 -0
  318. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js.map +1 -0
  319. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.d.ts +2 -0
  320. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.d.ts.map +1 -0
  321. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.js +109 -0
  322. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.js.map +1 -0
  323. package/dist/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.d.ts +2 -0
  324. package/dist/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.d.ts.map +1 -0
  325. package/dist/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.js +22 -0
  326. package/dist/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.js.map +1 -0
  327. package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.d.ts +2 -0
  328. package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.d.ts.map +1 -0
  329. package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js +44 -0
  330. package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js.map +1 -0
  331. package/dist/wallet/core/wallets/smart/default/utils/findSignerInArray.d.ts +12 -0
  332. package/dist/wallet/core/wallets/smart/default/utils/findSignerInArray.d.ts.map +1 -0
  333. package/dist/wallet/core/wallets/smart/default/utils/findSignerInArray.js +23 -0
  334. package/dist/wallet/core/wallets/smart/default/utils/findSignerInArray.js.map +1 -0
  335. package/dist/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.d.ts +30 -0
  336. package/dist/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.d.ts.map +1 -0
  337. package/dist/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.js +40 -0
  338. package/dist/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.js.map +1 -0
  339. package/dist/wallet/core/wallets/smart/default/utils/formatPublicKey.d.ts +8 -0
  340. package/dist/wallet/core/wallets/smart/default/utils/formatPublicKey.d.ts.map +1 -0
  341. package/dist/wallet/core/wallets/smart/default/utils/formatPublicKey.js +13 -0
  342. package/dist/wallet/core/wallets/smart/default/utils/formatPublicKey.js.map +1 -0
  343. package/dist/wallet/core/wallets/smart/default/utils/getSignerPublicKey.d.ts +12 -0
  344. package/dist/wallet/core/wallets/smart/default/utils/getSignerPublicKey.d.ts.map +1 -0
  345. package/dist/wallet/core/wallets/smart/default/utils/getSignerPublicKey.js +18 -0
  346. package/dist/wallet/core/wallets/smart/default/utils/getSignerPublicKey.js.map +1 -0
  347. package/dist/wallet/core/wallets/smart/error/errors.d.ts +8 -0
  348. package/dist/wallet/core/wallets/smart/error/errors.d.ts.map +1 -0
  349. package/dist/wallet/core/wallets/smart/error/errors.js +9 -0
  350. package/dist/wallet/core/wallets/smart/error/errors.js.map +1 -0
  351. package/dist/wallet/node/index.d.ts +4 -0
  352. package/dist/wallet/node/index.d.ts.map +1 -0
  353. package/dist/wallet/node/index.js +3 -0
  354. package/dist/wallet/node/index.js.map +1 -0
  355. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +34 -0
  356. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -0
  357. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +43 -0
  358. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -0
  359. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.d.ts +2 -0
  360. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.d.ts.map +1 -0
  361. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +80 -0
  362. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -0
  363. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts +15 -0
  364. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -0
  365. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +37 -0
  366. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -0
  367. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.d.ts +2 -0
  368. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.d.ts.map +1 -0
  369. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +62 -0
  370. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -0
  371. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +50 -0
  372. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -0
  373. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +60 -0
  374. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -0
  375. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.d.ts +2 -0
  376. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.d.ts.map +1 -0
  377. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +132 -0
  378. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -0
  379. package/dist/wallet/node/providers/hosted/types/index.d.ts +90 -0
  380. package/dist/wallet/node/providers/hosted/types/index.d.ts.map +1 -0
  381. package/dist/wallet/node/providers/hosted/types/index.js +2 -0
  382. package/dist/wallet/node/providers/hosted/types/index.js.map +1 -0
  383. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +43 -0
  384. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -0
  385. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +47 -0
  386. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -0
  387. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.d.ts +2 -0
  388. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.d.ts.map +1 -0
  389. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +105 -0
  390. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -0
  391. package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.d.ts +2 -0
  392. package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.d.ts.map +1 -0
  393. package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +39 -0
  394. package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -0
  395. package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.d.ts +15 -0
  396. package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.d.ts.map +1 -0
  397. package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.js +23 -0
  398. package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.js.map +1 -0
  399. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +46 -0
  400. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -0
  401. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +34 -0
  402. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -0
  403. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.d.ts +2 -0
  404. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.d.ts.map +1 -0
  405. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +82 -0
  406. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -0
  407. package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.d.ts +2 -0
  408. package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.d.ts.map +1 -0
  409. package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +61 -0
  410. package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -0
  411. package/dist/wallet/node/wallets/hosted/turnkey/utils/createSigner.d.ts +17 -0
  412. package/dist/wallet/node/wallets/hosted/turnkey/utils/createSigner.d.ts.map +1 -0
  413. package/dist/wallet/node/wallets/hosted/turnkey/utils/createSigner.js +24 -0
  414. package/dist/wallet/node/wallets/hosted/turnkey/utils/createSigner.js.map +1 -0
  415. package/dist/wallet/react/index.d.ts +3 -0
  416. package/dist/wallet/react/index.d.ts.map +1 -0
  417. package/dist/wallet/react/index.js +2 -0
  418. package/dist/wallet/react/index.js.map +1 -0
  419. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +29 -0
  420. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -0
  421. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +36 -0
  422. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -0
  423. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.d.ts +33 -0
  424. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.d.ts.map +1 -0
  425. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js +30 -0
  426. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js.map +1 -0
  427. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.d.ts +2 -0
  428. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.d.ts.map +1 -0
  429. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +79 -0
  430. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -0
  431. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +29 -0
  432. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -0
  433. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +38 -0
  434. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -0
  435. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.d.ts +33 -0
  436. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.d.ts.map +1 -0
  437. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js +29 -0
  438. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js.map +1 -0
  439. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.d.ts +2 -0
  440. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.d.ts.map +1 -0
  441. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +79 -0
  442. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -0
  443. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +49 -0
  444. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -0
  445. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +60 -0
  446. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -0
  447. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.d.ts +2 -0
  448. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.d.ts.map +1 -0
  449. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +110 -0
  450. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -0
  451. package/dist/wallet/react/providers/hosted/types/index.d.ts +86 -0
  452. package/dist/wallet/react/providers/hosted/types/index.d.ts.map +1 -0
  453. package/dist/wallet/react/providers/hosted/types/index.js +2 -0
  454. package/dist/wallet/react/providers/hosted/types/index.js.map +1 -0
  455. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts +15 -0
  456. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -0
  457. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +46 -0
  458. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -0
  459. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.d.ts +2 -0
  460. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.d.ts.map +1 -0
  461. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +68 -0
  462. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -0
  463. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +39 -0
  464. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -0
  465. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +43 -0
  466. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -0
  467. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +16 -0
  468. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -0
  469. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js +15 -0
  470. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -0
  471. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.d.ts +2 -0
  472. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.d.ts.map +1 -0
  473. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js +117 -0
  474. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js.map +1 -0
  475. package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.d.ts +2 -0
  476. package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.d.ts.map +1 -0
  477. package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js +62 -0
  478. package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js.map +1 -0
  479. package/dist/wallet/react/wallets/hosted/dynamic/utils/createSigner.d.ts +13 -0
  480. package/dist/wallet/react/wallets/hosted/dynamic/utils/createSigner.d.ts.map +1 -0
  481. package/dist/wallet/react/wallets/hosted/dynamic/utils/createSigner.js +32 -0
  482. package/dist/wallet/react/wallets/hosted/dynamic/utils/createSigner.js.map +1 -0
  483. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +34 -0
  484. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -0
  485. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +38 -0
  486. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -0
  487. package/dist/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.d.ts +16 -0
  488. package/dist/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.d.ts.map +1 -0
  489. package/dist/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.js +15 -0
  490. package/dist/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.js.map +1 -0
  491. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.d.ts +2 -0
  492. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.d.ts.map +1 -0
  493. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +95 -0
  494. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -0
  495. package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.d.ts +2 -0
  496. package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.d.ts.map +1 -0
  497. package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +55 -0
  498. package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -0
  499. package/dist/wallet/react/wallets/hosted/privy/utils/createSigner.d.ts +13 -0
  500. package/dist/wallet/react/wallets/hosted/privy/utils/createSigner.d.ts.map +1 -0
  501. package/dist/wallet/react/wallets/hosted/privy/utils/createSigner.js +24 -0
  502. package/dist/wallet/react/wallets/hosted/privy/utils/createSigner.js.map +1 -0
  503. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +53 -0
  504. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -0
  505. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +43 -0
  506. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -0
  507. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.d.ts +2 -0
  508. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.d.ts.map +1 -0
  509. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +82 -0
  510. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -0
  511. package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.d.ts +2 -0
  512. package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.d.ts.map +1 -0
  513. package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +61 -0
  514. package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -0
  515. package/dist/wallet/react/wallets/hosted/turnkey/utils/createSigner.d.ts +17 -0
  516. package/dist/wallet/react/wallets/hosted/turnkey/utils/createSigner.d.ts.map +1 -0
  517. package/dist/wallet/react/wallets/hosted/turnkey/utils/createSigner.js +24 -0
  518. package/dist/wallet/react/wallets/hosted/turnkey/utils/createSigner.js.map +1 -0
  519. package/package.json +86 -0
  520. package/src/actions.test.ts +885 -0
  521. package/src/actions.ts +190 -0
  522. package/src/constants/assets.ts +20 -0
  523. package/src/constants/config.ts +9 -0
  524. package/src/constants/supportedChains.ts +10 -0
  525. package/src/core/asset/__mocks__/mockAsset.ts +13 -0
  526. package/src/core/error/errors.ts +27 -0
  527. package/src/core/utils/__tests__/retryOnStaleRead.spec.ts +56 -0
  528. package/src/core/utils/retryOnStaleRead.ts +39 -0
  529. package/src/index.node.ts +4 -0
  530. package/src/index.react.ts +4 -0
  531. package/src/index.ts +35 -0
  532. package/src/lend/__mocks__/mockLendTransaction.ts +47 -0
  533. package/src/lend/core/LendProvider.ts +311 -0
  534. package/src/lend/core/__tests__/LendProvider.test.ts +305 -0
  535. package/src/lend/index.ts +2 -0
  536. package/src/lend/namespaces/ActionsLendNamespace.ts +26 -0
  537. package/src/lend/namespaces/WalletLendNamespace.ts +116 -0
  538. package/src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts +58 -0
  539. package/src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts +223 -0
  540. package/src/lend/providers/morpho/MorphoLendProvider.ts +258 -0
  541. package/src/lend/providers/morpho/__mocks__/mockVault.ts +28 -0
  542. package/src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts +356 -0
  543. package/src/lend/providers/morpho/__tests__/api.test.ts +104 -0
  544. package/src/lend/providers/morpho/__tests__/sdk.test.ts +366 -0
  545. package/src/lend/providers/morpho/api.ts +86 -0
  546. package/src/lend/providers/morpho/sdk.ts +418 -0
  547. package/src/nodeActionsFactory.ts +37 -0
  548. package/src/reactActionsFactory.ts +37 -0
  549. package/src/services/ChainManager.spec.ts +332 -0
  550. package/src/services/ChainManager.ts +237 -0
  551. package/src/services/tokenBalance.spec.ts +93 -0
  552. package/src/services/tokenBalance.ts +122 -0
  553. package/src/supported/tokens.ts +103 -0
  554. package/src/test/MockAssets.ts +33 -0
  555. package/src/test/MockChainManager.ts +138 -0
  556. package/src/test/MockLendProvider.ts +397 -0
  557. package/src/test/MockMarkets.ts +32 -0
  558. package/src/test/MockPrivyClient.ts +118 -0
  559. package/src/test/utils.ts +5 -0
  560. package/src/types/actions.ts +80 -0
  561. package/src/types/asset.ts +34 -0
  562. package/src/types/chain.ts +30 -0
  563. package/src/types/index.ts +5 -0
  564. package/src/types/lend/base.ts +415 -0
  565. package/src/types/lend/index.ts +2 -0
  566. package/src/types/lend/morpho.ts +16 -0
  567. package/src/types/wallet.ts +28 -0
  568. package/src/utils/assets.test.ts +28 -0
  569. package/src/utils/assets.ts +71 -0
  570. package/src/utils/markets.ts +35 -0
  571. package/src/utils/test.ts +379 -0
  572. package/src/wallet/core/namespace/WalletNamespace.ts +125 -0
  573. package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +398 -0
  574. package/src/wallet/core/providers/WalletProvider.ts +123 -0
  575. package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +374 -0
  576. package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +45 -0
  577. package/src/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.ts +46 -0
  578. package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +77 -0
  579. package/src/wallet/core/providers/hosted/types/index.ts +76 -0
  580. package/src/wallet/core/providers/smart/abstract/SmartWalletProvider.ts +64 -0
  581. package/src/wallet/core/providers/smart/abstract/types/index.ts +17 -0
  582. package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +175 -0
  583. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +467 -0
  584. package/src/wallet/core/wallets/abstract/Wallet.ts +149 -0
  585. package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +40 -0
  586. package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +61 -0
  587. package/src/wallet/core/wallets/abstract/types/index.ts +42 -0
  588. package/src/wallet/core/wallets/eoa/EOAWallet.ts +96 -0
  589. package/src/wallet/core/wallets/eoa/__mocks__/EOAWallet.ts +112 -0
  590. package/src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts +299 -0
  591. package/src/wallet/core/wallets/smart/abstract/SmartWallet.ts +93 -0
  592. package/src/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.ts +161 -0
  593. package/src/wallet/core/wallets/smart/abstract/types/index.ts +19 -0
  594. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +598 -0
  595. package/src/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.ts +172 -0
  596. package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +781 -0
  597. package/src/wallet/core/wallets/smart/default/constants/index.ts +482 -0
  598. package/src/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.ts +68 -0
  599. package/src/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.ts +147 -0
  600. package/src/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.ts +28 -0
  601. package/src/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.ts +60 -0
  602. package/src/wallet/core/wallets/smart/default/utils/findSignerInArray.ts +30 -0
  603. package/src/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.ts +66 -0
  604. package/src/wallet/core/wallets/smart/default/utils/formatPublicKey.ts +14 -0
  605. package/src/wallet/core/wallets/smart/default/utils/getSignerPublicKey.ts +18 -0
  606. package/src/wallet/core/wallets/smart/error/errors.ts +18 -0
  607. package/src/wallet/node/index.ts +7 -0
  608. package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +65 -0
  609. package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +112 -0
  610. package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +55 -0
  611. package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +89 -0
  612. package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +84 -0
  613. package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +182 -0
  614. package/src/wallet/node/providers/hosted/types/index.ts +102 -0
  615. package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +78 -0
  616. package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +142 -0
  617. package/src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +48 -0
  618. package/src/wallet/node/wallets/hosted/privy/utils/createSigner.ts +32 -0
  619. package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +90 -0
  620. package/src/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +104 -0
  621. package/src/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +77 -0
  622. package/src/wallet/node/wallets/hosted/turnkey/utils/createSigner.ts +32 -0
  623. package/src/wallet/react/index.ts +5 -0
  624. package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +54 -0
  625. package/src/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.ts +57 -0
  626. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +105 -0
  627. package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +56 -0
  628. package/src/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.ts +56 -0
  629. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +103 -0
  630. package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +78 -0
  631. package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +142 -0
  632. package/src/wallet/react/providers/hosted/types/index.ts +100 -0
  633. package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +57 -0
  634. package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +117 -0
  635. package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +67 -0
  636. package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +22 -0
  637. package/src/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.ts +148 -0
  638. package/src/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.ts +82 -0
  639. package/src/wallet/react/wallets/hosted/dynamic/utils/createSigner.ts +38 -0
  640. package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +63 -0
  641. package/src/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.ts +22 -0
  642. package/src/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +109 -0
  643. package/src/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +66 -0
  644. package/src/wallet/react/wallets/hosted/privy/utils/createSigner.ts +30 -0
  645. package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +94 -0
  646. package/src/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +99 -0
  647. package/src/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +72 -0
  648. package/src/wallet/react/wallets/hosted/turnkey/utils/createSigner.ts +29 -0
@@ -0,0 +1,182 @@
1
+ import type { TurnkeyClient } from '@turnkey/http'
2
+ import type { LocalAccount } from 'viem'
3
+ import { unichain } from 'viem/chains'
4
+ import { describe, expect, it, vi } from 'vitest'
5
+
6
+ import type { ChainManager } from '@/services/ChainManager.js'
7
+ import { MockChainManager } from '@/test/MockChainManager.js'
8
+ import type { LendConfig, LendProvider } from '@/types/lend/index.js'
9
+ import { TurnkeyHostedWalletProvider } from '@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
10
+ import { TurnkeyWallet } from '@/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js'
11
+ import * as createSignerUtil from '@/wallet/node/wallets/hosted/turnkey/utils/createSigner.js'
12
+
13
+ describe('TurnkeyHostedWalletProvider', () => {
14
+ const mockChainManager = new MockChainManager({
15
+ supportedChains: [unichain.id],
16
+ }) as unknown as ChainManager
17
+
18
+ describe('toActionsWallet', () => {
19
+ it('forwards params to TurnkeyWallet.create', async () => {
20
+ const turnkeyClient = {} as unknown as TurnkeyClient
21
+ const provider = new TurnkeyHostedWalletProvider(
22
+ turnkeyClient,
23
+ mockChainManager,
24
+ )
25
+ const spyTurnkeyWalletCreate = vi
26
+ .spyOn(TurnkeyWallet, 'create')
27
+ .mockResolvedValueOnce({
28
+ address: '0xabc',
29
+ } as unknown as TurnkeyWallet)
30
+
31
+ await provider.toActionsWallet({
32
+ organizationId: 'org_123',
33
+ signWith: 'key_abc',
34
+ })
35
+
36
+ expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
37
+ expect.objectContaining({
38
+ client: turnkeyClient,
39
+ organizationId: 'org_123',
40
+ signWith: 'key_abc',
41
+ ethereumAddress: undefined,
42
+ chainManager: mockChainManager,
43
+ }),
44
+ )
45
+ })
46
+
47
+ it('forwards ethereumAddress when provided', async () => {
48
+ const turnkeyClient = {} as unknown as TurnkeyClient
49
+ const provider = new TurnkeyHostedWalletProvider(
50
+ turnkeyClient,
51
+ mockChainManager,
52
+ )
53
+ const spyTurnkeyWalletCreate = vi
54
+ .spyOn(TurnkeyWallet, 'create')
55
+ .mockResolvedValueOnce({
56
+ address: '0xabc',
57
+ } as unknown as TurnkeyWallet)
58
+
59
+ await provider.toActionsWallet({
60
+ organizationId: 'org_123',
61
+ signWith: 'key_abc',
62
+ ethereumAddress: '0x123',
63
+ })
64
+
65
+ expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
66
+ expect.objectContaining({
67
+ client: turnkeyClient,
68
+ organizationId: 'org_123',
69
+ signWith: 'key_abc',
70
+ ethereumAddress: '0x123',
71
+ chainManager: mockChainManager,
72
+ }),
73
+ )
74
+ })
75
+
76
+ it('returns the created TurnkeyWallet instance', async () => {
77
+ const turnkeyClient = {} as unknown as TurnkeyClient
78
+ const provider = new TurnkeyHostedWalletProvider(
79
+ turnkeyClient,
80
+ mockChainManager,
81
+ )
82
+ const fakeWallet = {
83
+ address: '0xabc',
84
+ } as unknown as TurnkeyWallet
85
+ vi.spyOn(TurnkeyWallet, 'create').mockResolvedValueOnce(fakeWallet)
86
+
87
+ const actionsWallet = await provider.toActionsWallet({
88
+ organizationId: 'org_123',
89
+ signWith: 'key_abc',
90
+ })
91
+
92
+ expect(actionsWallet).toBe(fakeWallet)
93
+ })
94
+
95
+ it('forwards lendProvider when provided to constructor', async () => {
96
+ const turnkeyClient = {} as unknown as TurnkeyClient
97
+ const mockLendProvider = {} as LendProvider<LendConfig>
98
+ const provider = new TurnkeyHostedWalletProvider(
99
+ turnkeyClient,
100
+ mockChainManager,
101
+ mockLendProvider,
102
+ )
103
+ const spyTurnkeyWalletCreate = vi
104
+ .spyOn(TurnkeyWallet, 'create')
105
+ .mockResolvedValueOnce({
106
+ address: '0xabc',
107
+ } as unknown as TurnkeyWallet)
108
+
109
+ await provider.toActionsWallet({
110
+ organizationId: 'org_123',
111
+ signWith: 'key_abc',
112
+ })
113
+
114
+ expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
115
+ expect.objectContaining({
116
+ lendProvider: mockLendProvider,
117
+ }),
118
+ )
119
+ })
120
+ })
121
+
122
+ describe('createSigner', () => {
123
+ it('should delegate to createSigner utility with correct params', async () => {
124
+ const turnkeyClient = {} as unknown as TurnkeyClient
125
+ const provider = new TurnkeyHostedWalletProvider(
126
+ turnkeyClient,
127
+ mockChainManager,
128
+ )
129
+ const mockSigner = {
130
+ address: '0xabc',
131
+ type: 'local',
132
+ } as unknown as LocalAccount
133
+ const createSignerSpy = vi
134
+ .spyOn(createSignerUtil, 'createSigner')
135
+ .mockResolvedValueOnce(mockSigner)
136
+
137
+ const params = {
138
+ organizationId: 'org_123',
139
+ signWith: 'key_abc',
140
+ }
141
+
142
+ const signer = await provider.createSigner(params)
143
+
144
+ expect(createSignerSpy).toHaveBeenCalledWith({
145
+ client: turnkeyClient,
146
+ organizationId: 'org_123',
147
+ signWith: 'key_abc',
148
+ })
149
+ expect(signer).toBe(mockSigner)
150
+ })
151
+
152
+ it('should forward ethereumAddress when provided', async () => {
153
+ const turnkeyClient = {} as unknown as TurnkeyClient
154
+ const provider = new TurnkeyHostedWalletProvider(
155
+ turnkeyClient,
156
+ mockChainManager,
157
+ )
158
+ const mockSigner = {
159
+ address: '0x123',
160
+ type: 'local',
161
+ } as unknown as LocalAccount
162
+ const createSignerSpy = vi
163
+ .spyOn(createSignerUtil, 'createSigner')
164
+ .mockResolvedValueOnce(mockSigner)
165
+
166
+ const params = {
167
+ organizationId: 'org_123',
168
+ signWith: 'key_abc',
169
+ ethereumAddress: '0x123',
170
+ }
171
+
172
+ await provider.createSigner(params)
173
+
174
+ expect(createSignerSpy).toHaveBeenCalledWith({
175
+ client: turnkeyClient,
176
+ organizationId: 'org_123',
177
+ signWith: 'key_abc',
178
+ ethereumAddress: '0x123',
179
+ })
180
+ })
181
+ })
182
+ })
@@ -0,0 +1,102 @@
1
+ import type { PrivyClient } from '@privy-io/server-auth'
2
+ import type { TurnkeySDKClientBase } from '@turnkey/core'
3
+ import type { TurnkeyClient as TurnkeyHttpClient } from '@turnkey/http'
4
+ import type { TurnkeyServerClient } from '@turnkey/sdk-server'
5
+ import type { Address } from 'viem'
6
+
7
+ import type { HostedWalletProvidersSchema } from '@/wallet/core/providers/hosted/types/index.js'
8
+ import type { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
9
+ import type { TurnkeyHostedWalletProvider } from '@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
10
+
11
+ /**
12
+ * Node provider type keys
13
+ * @description
14
+ * Narrow union of provider identifiers supported in the Node environment.
15
+ * Uses an intersection of the keys from each map to guarantee that all maps
16
+ * stay in sync (options, instances, and toActions options) at compile time.
17
+ */
18
+ export type NodeProviderTypes = keyof NodeOptionsMap &
19
+ keyof NodeHostedProviderInstanceMap &
20
+ keyof NodeToActionsOptionsMap
21
+
22
+ /**
23
+ * Configuration options per Node hosted wallet provider
24
+ * @description
25
+ * Strongly-typed configuration inputs passed to each provider factory when
26
+ * creating a hosted wallet provider for Node.
27
+ */
28
+ export interface NodeOptionsMap {
29
+ /**
30
+ * Privy provider configuration
31
+ * @property privyClient Server-side Privy client instance used to query/create wallets
32
+ */
33
+ privy: { privyClient: PrivyClient }
34
+ /**
35
+ * Turnkey provider configuration
36
+ * @property client Turnkey SDK/HTTP client used to sign and manage keys
37
+ * @property organizationId Turnkey organization identifier that owns the key material
38
+ */
39
+ turnkey: {
40
+ client: TurnkeyHttpClient | TurnkeyServerClient | TurnkeySDKClientBase
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Options for converting a Turnkey hosted wallet to an Actions wallet
46
+ * @description Parameters for converting a hosted wallet to an Actions wallet
47
+ * @property signWith This can be a wallet account address, private key address, or private key ID.
48
+ * @property ethereumAddress Ethereum address to use for this account, in the case that a private key ID is used to sign.
49
+ * If left undefined, `createAccount` will fetch it from the Turnkey API. We recommend setting this if you're using a passkey
50
+ * client, so that your users are not prompted for a passkey signature just to fetch their address. You may leave this
51
+ * undefined if using an API key client.
52
+ */
53
+ export type TurnkeyHostedWalletToActionsWalletOptions = {
54
+ organizationId: string
55
+ signWith: string
56
+ ethereumAddress?: string
57
+ }
58
+
59
+ /**
60
+ * Options for converting a Privy hosted wallet to an Actions wallet
61
+ * @description Parameters for converting a hosted wallet to an Actions wallet
62
+ * @property walletId Privy wallet identifier
63
+ * @property address Ethereum address of the wallet
64
+ */
65
+ export type PrivyHostedWalletToActionsWalletOptions = {
66
+ walletId: string
67
+ address: Address
68
+ }
69
+
70
+ /**
71
+ * Node environment hosted wallet registry.
72
+ * Registers server-safe providers for use in Node.
73
+ */
74
+ export type NodeHostedProviderInstanceMap = {
75
+ privy: PrivyHostedWalletProvider
76
+ turnkey: TurnkeyHostedWalletProvider
77
+ }
78
+
79
+ /**
80
+ * Parameters required to convert each hosted wallet to an Actions wallet (Node)
81
+ * @description
82
+ * Provider-specific, caller-supplied data needed by `toActionsWallet`.
83
+ */
84
+ export type NodeToActionsOptionsMap = {
85
+ privy: PrivyHostedWalletToActionsWalletOptions
86
+ turnkey: TurnkeyHostedWalletToActionsWalletOptions
87
+ }
88
+
89
+ /**
90
+ * Complete Node hosted wallet providers schema
91
+ * @description
92
+ * Bundles provider type keys, concrete provider instances, creation configs,
93
+ * and `toActionsWallet` parameter types for the Node environment.
94
+ * This schema is used to type `Actions` and its registries without widening
95
+ * to generic `string` keys.
96
+ */
97
+ export type NodeHostedWalletProvidersSchema = HostedWalletProvidersSchema<
98
+ NodeProviderTypes,
99
+ NodeHostedProviderInstanceMap,
100
+ NodeOptionsMap,
101
+ NodeToActionsOptionsMap
102
+ >
@@ -0,0 +1,78 @@
1
+ import type { PrivyClient } from '@privy-io/server-auth'
2
+ import { type Address, type LocalAccount } from 'viem'
3
+
4
+ import type { ChainManager } from '@/services/ChainManager.js'
5
+ import type { LendConfig, LendProvider } from '@/types/lend/index.js'
6
+ import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
7
+ import { createSigner } from '@/wallet/node/wallets/hosted/privy/utils/createSigner.js'
8
+
9
+ /**
10
+ * Privy wallet implementation
11
+ * @description Wallet implementation using Privy service
12
+ */
13
+ export class PrivyWallet extends EOAWallet {
14
+ public walletId: string
15
+ public signer!: LocalAccount
16
+ public readonly address: Address
17
+ private privyClient: PrivyClient
18
+
19
+ /**
20
+ * Create a new Privy wallet provider
21
+ * @param appId - Privy application ID
22
+ * @param appSecret - Privy application secret
23
+ * @param actions - Actions instance for accessing configured providers
24
+ */
25
+ private constructor(
26
+ privyClient: PrivyClient,
27
+ walletId: string,
28
+ address: Address,
29
+ chainManager: ChainManager,
30
+ lendProvider?: LendProvider<LendConfig>,
31
+ ) {
32
+ super(chainManager, lendProvider)
33
+ this.privyClient = privyClient
34
+ this.walletId = walletId
35
+ this.address = address
36
+ }
37
+
38
+ static async create(params: {
39
+ privyClient: PrivyClient
40
+ walletId: string
41
+ address: Address
42
+ chainManager: ChainManager
43
+ lendProvider?: LendProvider<LendConfig>
44
+ }): Promise<PrivyWallet> {
45
+ const wallet = new PrivyWallet(
46
+ params.privyClient,
47
+ params.walletId,
48
+ params.address,
49
+ params.chainManager,
50
+ params.lendProvider,
51
+ )
52
+ await wallet.initialize()
53
+ return wallet
54
+ }
55
+
56
+ /**
57
+ * Initialize the PrivyWallet by creating the signer account
58
+ */
59
+ protected async performInitialization() {
60
+ this.signer = await this.createSigner()
61
+ }
62
+
63
+ /**
64
+ * Create a LocalAccount from this Privy wallet
65
+ * @description Converts the Privy wallet into a viem-compatible LocalAccount that can sign
66
+ * messages and transactions. The returned account uses Privy's signing infrastructure
67
+ * under the hood while providing a standard viem interface.
68
+ * @returns Promise resolving to a LocalAccount configured for signing operations
69
+ * @throws Error if wallet retrieval fails or signing operations are not supported
70
+ */
71
+ private async createSigner(): Promise<LocalAccount> {
72
+ return createSigner({
73
+ walletId: this.walletId,
74
+ address: this.address,
75
+ privyClient: this.privyClient,
76
+ })
77
+ }
78
+ }
@@ -0,0 +1,142 @@
1
+ import type { PrivyClient } from '@privy-io/server-auth'
2
+ import { createViemAccount } from '@privy-io/server-auth/viem'
3
+ import {
4
+ type Address,
5
+ createWalletClient,
6
+ getAddress,
7
+ type LocalAccount,
8
+ type WalletClient,
9
+ } from 'viem'
10
+ import { unichain } from 'viem/chains'
11
+ import { describe, expect, it, vi } from 'vitest'
12
+
13
+ import type { ChainManager } from '@/services/ChainManager.js'
14
+ import { MockChainManager } from '@/test/MockChainManager.js'
15
+ import { createMockPrivyClient } from '@/test/MockPrivyClient.js'
16
+ import { getRandomAddress } from '@/test/utils.js'
17
+ import { PrivyWallet } from '@/wallet/node/wallets/hosted/privy/PrivyWallet.js'
18
+
19
+ vi.mock('viem', async () => ({
20
+ // @ts-ignore - importActual returns unknown
21
+ ...(await vi.importActual('viem')),
22
+ createWalletClient: vi.fn(),
23
+ }))
24
+
25
+ vi.mock('viem/accounts', async () => ({
26
+ // @ts-ignore - importActual returns unknown
27
+ ...(await vi.importActual('viem/accounts')),
28
+ toAccount: vi.fn(),
29
+ }))
30
+
31
+ vi.mock('@privy-io/server-auth/viem', async () => ({
32
+ // @ts-ignore - importActual returns unknown
33
+ ...(await vi.importActual('@privy-io/server-auth/viem')),
34
+ createViemAccount: vi.fn(),
35
+ }))
36
+
37
+ const mockAddress = getRandomAddress()
38
+ const mockPrivyClient = createMockPrivyClient('test-app-id', 'test-app-secret')
39
+ const mockChainManager = new MockChainManager({
40
+ supportedChains: [130], // Unichain
41
+ }) as unknown as ChainManager
42
+ const mockLocalAccount = {
43
+ address: mockAddress,
44
+ signMessage: vi.fn(),
45
+ sign: vi.fn(),
46
+ signTransaction: vi.fn(),
47
+ signTypedData: vi.fn(),
48
+ } as unknown as LocalAccount
49
+
50
+ describe('PrivyWallet', () => {
51
+ it('should return the correct wallet ID', async () => {
52
+ const createdWallet = await mockPrivyClient.walletApi.createWallet({
53
+ chainType: 'ethereum',
54
+ })
55
+
56
+ const wallet = await createAndInitPrivyWallet({
57
+ address: getAddress(createdWallet.address),
58
+ walletId: createdWallet.id,
59
+ })
60
+
61
+ expect(wallet.walletId).toBe(createdWallet.id)
62
+ })
63
+
64
+ it('should return the correct address', async () => {
65
+ const createdWallet = await mockPrivyClient.walletApi.createWallet({
66
+ chainType: 'ethereum',
67
+ })
68
+
69
+ const wallet = await createAndInitPrivyWallet({
70
+ address: getAddress(createdWallet.address),
71
+ walletId: createdWallet.id,
72
+ })
73
+
74
+ expect(wallet.address).toBe(createdWallet.address)
75
+ })
76
+
77
+ it('should create an account with correct configuration', async () => {
78
+ // Create a wallet using the mock client first
79
+ const createdWallet = await mockPrivyClient.walletApi.createWallet({
80
+ chainType: 'ethereum',
81
+ })
82
+ vi.mocked(createViemAccount).mockResolvedValue(mockLocalAccount)
83
+ const wallet = await createAndInitPrivyWallet({
84
+ address: getAddress(createdWallet.address),
85
+ walletId: createdWallet.id,
86
+ })
87
+
88
+ expect(createViemAccount).toHaveBeenCalledWith({
89
+ walletId: createdWallet.id,
90
+ address: createdWallet.address,
91
+ privy: mockPrivyClient,
92
+ })
93
+ expect(wallet.signer).toBe(mockLocalAccount)
94
+ })
95
+
96
+ it('should create a wallet client with correct configuration', async () => {
97
+ const createdWallet = await mockPrivyClient.walletApi.createWallet({
98
+ chainType: 'ethereum',
99
+ })
100
+ const wallet = await createAndInitPrivyWallet()
101
+
102
+ const mockWalletClient = {
103
+ account: mockLocalAccount,
104
+ address: createdWallet.address as Address,
105
+ } as unknown as WalletClient
106
+ vi.mocked(createViemAccount).mockResolvedValue(mockLocalAccount)
107
+ vi.mocked(createWalletClient).mockResolvedValue(mockWalletClient)
108
+
109
+ const walletClient = await wallet.walletClient(unichain.id)
110
+
111
+ expect(createWalletClient).toHaveBeenCalledOnce()
112
+ const callArgs = vi.mocked(createWalletClient).mock.calls[0][0]
113
+ expect(callArgs.account).toBe(mockLocalAccount)
114
+ expect(callArgs.chain).toBe(mockChainManager.getChain(unichain.id))
115
+ expect(walletClient).toBe(mockWalletClient)
116
+ })
117
+ })
118
+
119
+ async function createAndInitPrivyWallet(
120
+ params: {
121
+ privyClient?: PrivyClient
122
+ walletId?: string
123
+ address?: Address
124
+ chainManager?: ChainManager
125
+ } = {},
126
+ ) {
127
+ const {
128
+ privyClient = mockPrivyClient,
129
+ walletId,
130
+ address,
131
+ chainManager = mockChainManager,
132
+ } = params
133
+ const createdWallet = await privyClient.walletApi.createWallet({
134
+ chainType: 'ethereum',
135
+ })
136
+ return PrivyWallet.create({
137
+ privyClient,
138
+ walletId: walletId ?? createdWallet.id,
139
+ address: address ?? getAddress(createdWallet.address),
140
+ chainManager,
141
+ })
142
+ }
@@ -0,0 +1,48 @@
1
+ import { createViemAccount } from '@privy-io/server-auth/viem'
2
+ import type { Address, LocalAccount } from 'viem'
3
+ import { describe, expect, it, vi } from 'vitest'
4
+
5
+ import { createMockPrivyClient } from '@/test/MockPrivyClient.js'
6
+ import { getRandomAddress } from '@/test/utils.js'
7
+ import { createSigner } from '@/wallet/node/wallets/hosted/privy/utils/createSigner.js'
8
+
9
+ vi.mock('@privy-io/server-auth/viem', async () => ({
10
+ // @ts-ignore - importActual returns unknown
11
+ ...(await vi.importActual('@privy-io/server-auth/viem')),
12
+ createViemAccount: vi.fn(),
13
+ }))
14
+
15
+ describe('createSigner (Node Privy)', () => {
16
+ const mockAddress = getRandomAddress()
17
+ const mockPrivyClient = createMockPrivyClient(
18
+ 'test-app-id',
19
+ 'test-app-secret',
20
+ )
21
+ const mockLocalAccount = {
22
+ address: mockAddress,
23
+ signMessage: vi.fn(),
24
+ sign: vi.fn(),
25
+ signTransaction: vi.fn(),
26
+ signTypedData: vi.fn(),
27
+ } as unknown as LocalAccount
28
+
29
+ it('should create a LocalAccount with correct configuration', async () => {
30
+ const createdWallet = await mockPrivyClient.walletApi.createWallet({
31
+ chainType: 'ethereum',
32
+ })
33
+ vi.mocked(createViemAccount).mockResolvedValue(mockLocalAccount)
34
+
35
+ const signer = await createSigner({
36
+ privyClient: mockPrivyClient,
37
+ walletId: createdWallet.id,
38
+ address: createdWallet.address as Address,
39
+ })
40
+
41
+ expect(createViemAccount).toHaveBeenCalledWith({
42
+ walletId: createdWallet.id,
43
+ address: createdWallet.address,
44
+ privy: mockPrivyClient,
45
+ })
46
+ expect(signer).toBe(mockLocalAccount)
47
+ })
48
+ })
@@ -0,0 +1,32 @@
1
+ import type { GetViemAccountInputType } from '@privy-io/server-auth/viem'
2
+ import { createViemAccount } from '@privy-io/server-auth/viem'
3
+ import type { LocalAccount } from 'viem'
4
+
5
+ import type {
6
+ NodeOptionsMap,
7
+ PrivyHostedWalletToActionsWalletOptions,
8
+ } from '@/wallet/node/providers/hosted/types/index.js'
9
+
10
+ /**
11
+ * Create a LocalAccount from a Privy wallet
12
+ * @description Converts the Privy wallet into a viem-compatible LocalAccount that can sign
13
+ * messages and transactions. The returned account uses Privy's signing infrastructure
14
+ * under the hood while providing a standard viem interface.
15
+ * @param params.walletId - Privy wallet identifier
16
+ * @param params.address - Ethereum address of the wallet
17
+ * @param params.privyClient - Privy client instance
18
+ * @returns Promise resolving to a LocalAccount configured for signing operations
19
+ * @throws Error if wallet retrieval fails or signing operations are not supported
20
+ */
21
+ export async function createSigner(
22
+ params: PrivyHostedWalletToActionsWalletOptions & NodeOptionsMap['privy'],
23
+ ): Promise<LocalAccount> {
24
+ const { walletId, address, privyClient } = params
25
+ const account = await createViemAccount({
26
+ walletId,
27
+ address,
28
+ // TODO: Fix this type error
29
+ privy: privyClient as unknown as GetViemAccountInputType['privy'],
30
+ })
31
+ return account
32
+ }
@@ -0,0 +1,90 @@
1
+ import type { TurnkeySDKClientBase } from '@turnkey/core'
2
+ import type { TurnkeyClient } from '@turnkey/http'
3
+ import type { TurnkeyServerClient } from '@turnkey/sdk-server'
4
+ import type { Address, LocalAccount } from 'viem'
5
+
6
+ import type { ChainManager } from '@/services/ChainManager.js'
7
+ import type { LendConfig, LendProvider } from '@/types/lend/index.js'
8
+ import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
9
+ import { createSigner } from '@/wallet/node/wallets/hosted/turnkey/utils/createSigner.js'
10
+
11
+ /**
12
+ * Turnkey wallet implementation
13
+ * @description Wallet implementation using Turnkey service
14
+ */
15
+ export class TurnkeyWallet extends EOAWallet {
16
+ public address!: Address
17
+ public signer!: LocalAccount
18
+ /**
19
+ * Turnkey client instance (HTTP, server, or core SDK base)
20
+ */
21
+ private readonly client:
22
+ | TurnkeyClient
23
+ | TurnkeyServerClient
24
+ | TurnkeySDKClientBase
25
+ /**
26
+ * Turnkey organization ID that owns the signing key
27
+ */
28
+ private readonly organizationId: string
29
+ /**
30
+ * This can be a wallet account address, private key address, or private key ID.
31
+ */
32
+ private readonly signWith: string
33
+ /**
34
+ * Ethereum address to use for this account, in the case that a private key ID is used to sign.
35
+ * If left undefined, `createAccount` will fetch it from the Turnkey API.
36
+ * We recommend setting this if you're using a passkey client, so that your users are not prompted for a passkey signature just to fetch their address.
37
+ * You may leave this undefined if using an API key client.
38
+ */
39
+ private readonly ethereumAddress?: string
40
+
41
+ private constructor(params: {
42
+ chainManager: ChainManager
43
+ client: TurnkeyClient | TurnkeyServerClient | TurnkeySDKClientBase
44
+ organizationId: string
45
+ signWith: string
46
+ ethereumAddress?: string
47
+ lendProvider?: LendProvider<LendConfig>
48
+ }) {
49
+ const {
50
+ chainManager,
51
+ client,
52
+ organizationId,
53
+ signWith,
54
+ ethereumAddress,
55
+ lendProvider,
56
+ } = params
57
+ super(chainManager, lendProvider)
58
+ this.client = client
59
+ this.organizationId = organizationId
60
+ this.signWith = signWith
61
+ this.ethereumAddress = ethereumAddress
62
+ }
63
+
64
+ static async create(params: {
65
+ chainManager: ChainManager
66
+ client: TurnkeyClient | TurnkeyServerClient | TurnkeySDKClientBase
67
+ organizationId: string
68
+ signWith: string
69
+ ethereumAddress?: string
70
+ lendProvider?: LendProvider<LendConfig>
71
+ }): Promise<TurnkeyWallet> {
72
+ const wallet = new TurnkeyWallet(params)
73
+ await wallet.initialize()
74
+ return wallet
75
+ }
76
+
77
+ protected async performInitialization() {
78
+ this.signer = await this.createSigner()
79
+ this.address = this.signer.address
80
+ }
81
+
82
+ private async createSigner(): Promise<LocalAccount> {
83
+ return createSigner({
84
+ client: this.client,
85
+ organizationId: this.organizationId,
86
+ signWith: this.signWith,
87
+ ethereumAddress: this.ethereumAddress,
88
+ })
89
+ }
90
+ }