@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,28 @@
1
+ import type { Address, Hex } from 'viem'
2
+ import { pad } from 'viem'
3
+ import type { WebAuthnAccount } from 'viem/account-abstraction'
4
+ import { describe, expect, it } from 'vitest'
5
+
6
+ import { formatPublicKey } from '@/wallet/core/wallets/smart/default/utils/formatPublicKey.js'
7
+
8
+ describe('formatPublicKey', () => {
9
+ it('pads EOA address to 32 bytes', () => {
10
+ const eoa: Address = '0x7838d2724FC686813CAf81d4429beff1110c739a'
11
+ const result = formatPublicKey(eoa)
12
+ expect(result).toBe(pad(eoa))
13
+ // 32 bytes = 64 hex chars after 0x
14
+ expect((result as string).length).toBe(66)
15
+ })
16
+
17
+ it('returns WebAuthn publicKey as-is', () => {
18
+ const publicKey64Bytes: Hex =
19
+ '0xe7575170745fe55d7a26190c6d5504743496c49498b129d2b3660da3697e81d4daebb2496f89aa4a05f1705e1d5d316153211c198f80d3100b51489bf4963f47'
20
+ const webAuthn: WebAuthnAccount = {
21
+ type: 'webAuthn',
22
+ publicKey: publicKey64Bytes,
23
+ } as unknown as WebAuthnAccount
24
+
25
+ const result = formatPublicKey(webAuthn.publicKey)
26
+ expect(result).toBe(publicKey64Bytes)
27
+ })
28
+ })
@@ -0,0 +1,60 @@
1
+ import type { Address, Hex, LocalAccount } from 'viem'
2
+ import type { WebAuthnAccount } from 'viem/account-abstraction'
3
+ import { describe, expect, it } from 'vitest'
4
+
5
+ import { getRandomAddress } from '@/test/utils.js'
6
+ import { getSignerPublicKey } from '@/wallet/core/wallets/smart/default/utils/getSignerPublicKey.js'
7
+
8
+ describe('getSignerPublicKey', () => {
9
+ it('returns the address itself when signer is a plain address string', () => {
10
+ const address = getRandomAddress()
11
+ const result = getSignerPublicKey(address)
12
+ expect(result).toBe(address)
13
+ })
14
+
15
+ it('returns the address when signer is a LocalAccount', () => {
16
+ const address = getRandomAddress()
17
+ const localAccount: LocalAccount = {
18
+ address,
19
+ type: 'local',
20
+ publicKey: '0xaabbccdd' as Hex,
21
+ } as unknown as LocalAccount
22
+
23
+ const result = getSignerPublicKey(localAccount)
24
+ expect(result).toBe(address)
25
+ })
26
+
27
+ it('returns the publicKey when signer is a WebAuthnAccount', () => {
28
+ const publicKey: Hex =
29
+ '0xe7575170745fe55d7a26190c6d5504743496c49498b129d2b3660da3697e81d4daebb2496f89aa4a05f1705e1d5d316153211c198f80d3100b51489bf4963f47'
30
+ const webAuthnAccount: WebAuthnAccount = {
31
+ type: 'webAuthn',
32
+ publicKey,
33
+ id: 'test-id',
34
+ } as unknown as WebAuthnAccount
35
+
36
+ const result = getSignerPublicKey(webAuthnAccount)
37
+ expect(result).toBe(publicKey)
38
+ })
39
+
40
+ it('throws error for invalid signer type', () => {
41
+ const invalidSigner = {
42
+ type: 'unknown',
43
+ address: '0x1234567890123456789012345678901234567890' as Address,
44
+ } as unknown as LocalAccount
45
+
46
+ expect(() => getSignerPublicKey(invalidSigner)).toThrow(
47
+ 'invalid signer type',
48
+ )
49
+ })
50
+
51
+ it('handles different address formats correctly', () => {
52
+ const checksummedAddress: Address =
53
+ '0x7838d2724FC686813CAf81d4429beff1110c739a'
54
+ const lowercaseAddress: Address =
55
+ '0x7838d2724fc686813caf81d4429beff1110c739a'
56
+
57
+ expect(getSignerPublicKey(checksummedAddress)).toBe(checksummedAddress)
58
+ expect(getSignerPublicKey(lowercaseAddress)).toBe(lowercaseAddress)
59
+ })
60
+ })
@@ -0,0 +1,30 @@
1
+ import { getAddress, type LocalAccount } from 'viem'
2
+
3
+ import type { Signer } from '@/wallet/core/wallets/smart/abstract/types/index.js'
4
+
5
+ /**
6
+ * Find the index of a signer in the signers array
7
+ * @description Searches through the signers array to find the index where the signer matches.
8
+ * We only support signer type of LocalAccount for now.
9
+ * @param signers - Array of wallet signers (addresses, LocalAccounts, or WebAuthn accounts)
10
+ * @param signer - The signer to find in the signers array
11
+ * @returns The index of the signer in the signers array
12
+ */
13
+ export function findSignerInArray(
14
+ signers: Signer[],
15
+ signer: LocalAccount,
16
+ ): number {
17
+ return signers.findIndex((signerEntry) => {
18
+ // we only support signer type of LocalAccount for now
19
+ if (typeof signerEntry === 'string') {
20
+ // EOA address comparison
21
+ return getAddress(signerEntry) === getAddress(signer.address)
22
+ }
23
+
24
+ if (signerEntry.type === 'local') {
25
+ return getAddress(signerEntry.address) === getAddress(signer.address)
26
+ }
27
+
28
+ return false
29
+ })
30
+ }
@@ -0,0 +1,66 @@
1
+ import type { Client, Hex } from 'viem'
2
+ import { readContract } from 'viem/actions'
3
+
4
+ import { smartWalletAbi } from '@/wallet/core/wallets/smart/default/constants/index.js'
5
+ import { formatPublicKey } from '@/wallet/core/wallets/smart/default/utils/formatPublicKey.js'
6
+
7
+ type FindSignerIndexOnChainParams = {
8
+ /**
9
+ * The address of the account to get the owner index for
10
+ */
11
+ address: `0x${string}`
12
+ /**
13
+ * The client to use to get the code and read the contract
14
+ */
15
+ client: Client
16
+ /**
17
+ * The public key of the owner
18
+ */
19
+ signerPublicKey: Hex
20
+ }
21
+
22
+ /**
23
+ * Find the index of a signer in a smart wallet
24
+ * @description Iterates over the wallet's owner slots from highest to lowest index
25
+ * (using the contract's `nextOwnerIndex` and `ownerAtIndex`) to locate the provided signer.
26
+ * The signer may be an EOA address or a WebAuthn account; in both cases it is normalized via
27
+ * {@link formatPublicKey} to the 32-byte form used by the contract for comparisons.
28
+ * Returns the owner's index if found, otherwise -1.
29
+ * @param address - Address of the smart wallet contract to inspect
30
+ * @param client - Public client used to perform contract reads
31
+ * @param signerPublicKey - Signer public key to search for (EOA `Address` or `WebAuthnAccount`)
32
+ * @returns Promise that resolves to the 0-based signer index, or -1 if not found
33
+ */
34
+ export async function findSignerIndexOnChain({
35
+ address,
36
+ client,
37
+ signerPublicKey,
38
+ }: FindSignerIndexOnChainParams): Promise<number> {
39
+ const nextOwnerIndex = await readContract(client, {
40
+ address,
41
+ abi: smartWalletAbi,
42
+ functionName: 'nextOwnerIndex',
43
+ })
44
+ const formattedSignerPublicKey = formatPublicKey(signerPublicKey)
45
+
46
+ // Iterate from highest index down and return early when found
47
+ for (let i = Number(nextOwnerIndex) - 1; i >= 0; i--) {
48
+ const signerAtIndex = await readContract(client, {
49
+ address,
50
+ abi: smartWalletAbi,
51
+ functionName: 'ownerAtIndex',
52
+ args: [BigInt(i)],
53
+ })
54
+
55
+ // Skip empty slots (deleted owners)
56
+ if (!signerAtIndex || signerAtIndex === '0x') continue
57
+
58
+ if (
59
+ signerAtIndex.toLowerCase() === formattedSignerPublicKey.toLowerCase()
60
+ ) {
61
+ return i
62
+ }
63
+ }
64
+
65
+ return -1
66
+ }
@@ -0,0 +1,14 @@
1
+ import type { Address, Hex } from 'viem'
2
+ import { isAddress, pad } from 'viem'
3
+
4
+ /**
5
+ * Formats 20 byte addresses to 32 byte public keys. Contract uses 32 byte keys for owners.
6
+ * @param publicKey - The public key to format
7
+ * @returns The formatted public key
8
+ */
9
+ export function formatPublicKey(publicKey: Hex | Address): Hex {
10
+ if (isAddress(publicKey)) {
11
+ return pad(publicKey)
12
+ }
13
+ return publicKey
14
+ }
@@ -0,0 +1,18 @@
1
+ import type { Hex } from 'viem'
2
+
3
+ import type { Signer } from '@/wallet/core/wallets/smart/abstract/types/index.js'
4
+
5
+ /**
6
+ * Extracts the public key or identifier from a smart wallet signer.
7
+ *
8
+ * Returns the appropriate public identifier for each signer type:
9
+ * - Address: returns the address itself
10
+ * - LocalAccount: returns the account's address
11
+ * - WebAuthnAccount: returns the P256 public key
12
+ */
13
+ export function getSignerPublicKey(signer: Signer): Hex {
14
+ if (typeof signer === 'string') return signer
15
+ if (signer.type === 'webAuthn') return signer.publicKey
16
+ if (signer.type === 'local') return signer.address
17
+ throw new Error('invalid signer type')
18
+ }
@@ -0,0 +1,18 @@
1
+ import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction'
2
+
3
+ import type { SupportedChainId } from '@/constants/supportedChains.js'
4
+
5
+ export class SmartWalletDeploymentError extends Error {
6
+ chainId: SupportedChainId
7
+ receipt?: WaitForUserOperationReceiptReturnType
8
+ constructor(
9
+ message: string,
10
+ chainId: SupportedChainId,
11
+ receipt?: WaitForUserOperationReceiptReturnType,
12
+ ) {
13
+ super(message)
14
+ this.name = 'SmartWalletDeploymentError'
15
+ this.chainId = chainId
16
+ this.receipt = receipt
17
+ }
18
+ }
@@ -0,0 +1,7 @@
1
+ export { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
2
+ export type {
3
+ NodeHostedWalletProvidersSchema,
4
+ NodeOptionsMap,
5
+ NodeProviderTypes,
6
+ } from '@/wallet/node/providers/hosted/types/index.js'
7
+ export { PrivyWallet } from '@/wallet/node/wallets/hosted/privy/PrivyWallet.js'
@@ -0,0 +1,65 @@
1
+ import type { PrivyClient } from '@privy-io/server-auth'
2
+ import type { LocalAccount } from 'viem'
3
+ import { getAddress } from 'viem'
4
+
5
+ import type { ChainManager } from '@/services/ChainManager.js'
6
+ import type { LendConfig, LendProvider } from '@/types/lend/index.js'
7
+ import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
8
+ import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
9
+ import type {
10
+ NodeToActionsOptionsMap,
11
+ PrivyHostedWalletToActionsWalletOptions,
12
+ } from '@/wallet/node/providers/hosted/types/index.js'
13
+ import { PrivyWallet } from '@/wallet/node/wallets/hosted/privy/PrivyWallet.js'
14
+ import { createSigner } from '@/wallet/node/wallets/hosted/privy/utils/createSigner.js'
15
+
16
+ /**
17
+ * Privy wallet provider implementation
18
+ * @description Wallet provider implementation using Privy service
19
+ */
20
+ export class PrivyHostedWalletProvider extends HostedWalletProvider<
21
+ 'privy',
22
+ NodeToActionsOptionsMap
23
+ > {
24
+ /**
25
+ * Create a new Privy wallet provider
26
+ * @param privyClient - Privy client instance
27
+ */
28
+ constructor(
29
+ private readonly privyClient: PrivyClient,
30
+ chainManager: ChainManager,
31
+ lendProvider?: LendProvider<LendConfig>,
32
+ ) {
33
+ super(chainManager, lendProvider)
34
+ }
35
+
36
+ async toActionsWallet(
37
+ params: PrivyHostedWalletToActionsWalletOptions,
38
+ ): Promise<Wallet> {
39
+ return PrivyWallet.create({
40
+ privyClient: this.privyClient,
41
+ walletId: params.walletId,
42
+ address: getAddress(params.address),
43
+ chainManager: this.chainManager,
44
+ lendProvider: this.lendProvider,
45
+ })
46
+ }
47
+
48
+ /**
49
+ * Create a LocalAccount from this Privy wallet
50
+ * @description Converts the Privy wallet into a viem-compatible LocalAccount that can sign
51
+ * messages and transactions. The returned account uses Privy's signing infrastructure
52
+ * under the hood while providing a standard viem interface.
53
+ * @param params - Privy configuration for the signer
54
+ * @param params.privyClient - Privy client instance
55
+ * @param params.walletId - Privy wallet identifier
56
+ * @param params.address - Ethereum address of the wallet
57
+ * @returns Promise resolving to a LocalAccount configured for signing operations
58
+ * @throws Error if wallet retrieval fails or signing operations are not supported
59
+ */
60
+ async createSigner(
61
+ params: NodeToActionsOptionsMap['privy'],
62
+ ): Promise<LocalAccount> {
63
+ return createSigner({ ...params, privyClient: this.privyClient })
64
+ }
65
+ }
@@ -0,0 +1,112 @@
1
+ import type { Address } from 'viem'
2
+ import { getAddress } 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 { createMockPrivyClient } from '@/test/MockPrivyClient.js'
9
+ import { getRandomAddress } from '@/test/utils.js'
10
+ import type { LendConfig, LendProvider } from '@/types/lend/index.js'
11
+ import { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
12
+ import { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
13
+ import { PrivyWallet } from '@/wallet/node/wallets/hosted/privy/PrivyWallet.js'
14
+
15
+ describe('PrivyHostedWalletProvider', () => {
16
+ const mockChainManager = new MockChainManager({
17
+ supportedChains: [unichain.id],
18
+ }) as unknown as ChainManager
19
+
20
+ describe('toActionsWallet', () => {
21
+ it('toActionsWallet creates an ActionsWallet with correct address and signer', async () => {
22
+ const privy = createMockPrivyClient('app', 'secret')
23
+ const provider = new PrivyHostedWalletProvider(privy, mockChainManager)
24
+
25
+ const hostedWallet = await privy.walletApi.createWallet({
26
+ chainType: 'ethereum',
27
+ })
28
+
29
+ const actionsWallet = await provider.toActionsWallet({
30
+ walletId: hostedWallet.id,
31
+ address: hostedWallet.address as Address,
32
+ })
33
+
34
+ expect(actionsWallet).toBeInstanceOf(Wallet)
35
+ expect(actionsWallet.address).toBe(hostedWallet.address)
36
+ expect(actionsWallet.signer.address).toBe(hostedWallet.address)
37
+ })
38
+
39
+ it('forwards params to PrivyWallet.create', async () => {
40
+ const privy = createMockPrivyClient('app', 'secret')
41
+ const provider = new PrivyHostedWalletProvider(privy, mockChainManager)
42
+ const spy = vi.spyOn(PrivyWallet, 'create')
43
+
44
+ const id = 'mock-wallet-123'
45
+ const addr = getRandomAddress().toLowerCase()
46
+
47
+ await provider.toActionsWallet({ walletId: id, address: addr as Address })
48
+
49
+ expect(spy).toHaveBeenCalledWith(
50
+ expect.objectContaining({
51
+ privyClient: privy,
52
+ walletId: id,
53
+ address: getAddress(addr),
54
+ chainManager: mockChainManager,
55
+ }),
56
+ )
57
+ })
58
+
59
+ it('throws on invalid address', async () => {
60
+ const privy = createMockPrivyClient('app', 'secret')
61
+ const provider = new PrivyHostedWalletProvider(privy, mockChainManager)
62
+
63
+ await expect(
64
+ provider.toActionsWallet({ walletId: 'id', address: '0x123' }),
65
+ ).rejects.toBeTruthy()
66
+ })
67
+
68
+ it('forwards lendProvider when provided to constructor', async () => {
69
+ const privy = createMockPrivyClient('app', 'secret')
70
+ const mockLendProvider = {} as LendProvider<LendConfig>
71
+ const provider = new PrivyHostedWalletProvider(
72
+ privy,
73
+ mockChainManager,
74
+ mockLendProvider,
75
+ )
76
+ const spy = vi.spyOn(PrivyWallet, 'create')
77
+
78
+ const id = 'mock-wallet-123'
79
+ const addr = getRandomAddress().toLowerCase()
80
+
81
+ await provider.toActionsWallet({
82
+ walletId: id,
83
+ address: addr as Address,
84
+ })
85
+
86
+ expect(spy).toHaveBeenCalledWith(
87
+ expect.objectContaining({
88
+ lendProvider: mockLendProvider,
89
+ }),
90
+ )
91
+ })
92
+ })
93
+
94
+ describe('createSigner', () => {
95
+ it('should create a LocalAccount with correct address', async () => {
96
+ const privy = createMockPrivyClient('app', 'secret')
97
+ const provider = new PrivyHostedWalletProvider(privy, mockChainManager)
98
+
99
+ const hostedWallet = await privy.walletApi.createWallet({
100
+ chainType: 'ethereum',
101
+ })
102
+
103
+ const signer = await provider.createSigner({
104
+ walletId: hostedWallet.id,
105
+ address: hostedWallet.address as Address,
106
+ })
107
+
108
+ expect(signer.address).toBe(hostedWallet.address)
109
+ expect(signer.type).toBe('local')
110
+ })
111
+ })
112
+ })
@@ -0,0 +1,55 @@
1
+ import { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
2
+ import { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
3
+ import { TurnkeyHostedWalletProvider } from '@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
4
+ import type {
5
+ NodeHostedProviderInstanceMap,
6
+ NodeOptionsMap,
7
+ NodeProviderTypes,
8
+ } from '@/wallet/node/providers/hosted/types/index.js'
9
+
10
+ /**
11
+ * Node hosted wallet provider registry
12
+ * @description
13
+ * Environment-scoped registry that binds Node/server provider keys to their
14
+ * factory implementations. This ensures browser-only hosted providers are
15
+ * discoverable at runtime without importing Node-only code. The registry
16
+ * pre-registers 'privy' and 'turnkey' providers and can be extended with
17
+ * additional providers via `register`.
18
+ */
19
+ export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegistry<
20
+ NodeHostedProviderInstanceMap,
21
+ NodeOptionsMap,
22
+ NodeProviderTypes
23
+ > {
24
+ public constructor() {
25
+ super()
26
+ this.register<'privy'>({
27
+ type: 'privy',
28
+ validateOptions(options): options is NodeOptionsMap['privy'] {
29
+ return Boolean((options as NodeOptionsMap['privy'])?.privyClient)
30
+ },
31
+ create({ chainManager, lendProvider }, options) {
32
+ return new PrivyHostedWalletProvider(
33
+ options.privyClient,
34
+ chainManager,
35
+ lendProvider,
36
+ )
37
+ },
38
+ })
39
+
40
+ this.register<'turnkey'>({
41
+ type: 'turnkey',
42
+ validateOptions(options): options is NodeOptionsMap['turnkey'] {
43
+ const o = options as NodeOptionsMap['turnkey']
44
+ return Boolean(o?.client)
45
+ },
46
+ create({ chainManager, lendProvider }, options) {
47
+ return new TurnkeyHostedWalletProvider(
48
+ options.client,
49
+ chainManager,
50
+ lendProvider,
51
+ )
52
+ },
53
+ })
54
+ }
55
+ }
@@ -0,0 +1,89 @@
1
+ import type { PrivyClient } from '@privy-io/server-auth'
2
+ import type { TurnkeyClient } from '@turnkey/http'
3
+ import { unichain } from 'viem/chains'
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
5
+
6
+ import type { ChainManager } from '@/services/ChainManager.js'
7
+ import { MockChainManager } from '@/test/MockChainManager.js'
8
+ import { createMockPrivyClient } from '@/test/MockPrivyClient.js'
9
+ import { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
10
+ import { NodeHostedWalletProviderRegistry } from '@/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js'
11
+ import { TurnkeyHostedWalletProvider } from '@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
12
+ import type { NodeOptionsMap } from '@/wallet/node/providers/hosted/types/index.js'
13
+
14
+ describe('NodeHostedWalletProviderRegistry', () => {
15
+ const mockChainManager = new MockChainManager({
16
+ supportedChains: [unichain.id],
17
+ }) as unknown as ChainManager
18
+ let mockPrivyClient: PrivyClient
19
+ const mockTurnkeyClient = {} as unknown as TurnkeyClient
20
+
21
+ beforeEach(() => {
22
+ mockPrivyClient = createMockPrivyClient('test-app-id', 'test-app-secret')
23
+ })
24
+
25
+ afterEach(() => {
26
+ vi.clearAllMocks()
27
+ })
28
+
29
+ it('returns privy factory and validates options', () => {
30
+ const registry = new NodeHostedWalletProviderRegistry()
31
+ const factory = registry.getFactory('privy')
32
+
33
+ expect(factory.type).toBe('privy')
34
+ expect(
35
+ factory.validateOptions?.({
36
+ privyClient: mockPrivyClient,
37
+ } as NodeOptionsMap['privy']),
38
+ ).toBe(true)
39
+ // Invalid shape should not pass validation
40
+ expect(factory.validateOptions?.({})).toBe(false)
41
+ })
42
+
43
+ it('creates a PrivyHostedWalletProvider instance', () => {
44
+ const registry = new NodeHostedWalletProviderRegistry()
45
+ const factory = registry.getFactory('privy')
46
+
47
+ const provider = factory.create({ chainManager: mockChainManager }, {
48
+ privyClient: mockPrivyClient,
49
+ } as NodeOptionsMap['privy'])
50
+
51
+ expect(provider).toBeInstanceOf(PrivyHostedWalletProvider)
52
+ })
53
+
54
+ it('returns turnkey factory and validates options', () => {
55
+ const registry = new NodeHostedWalletProviderRegistry()
56
+ const factory = registry.getFactory('turnkey')
57
+
58
+ expect(factory.type).toBe('turnkey')
59
+ expect(
60
+ factory.validateOptions?.({
61
+ client: mockTurnkeyClient,
62
+ } as NodeOptionsMap['turnkey']),
63
+ ).toBe(true)
64
+ // Invalid shape should not pass validation
65
+ expect(factory.validateOptions?.({})).toBe(false)
66
+ })
67
+
68
+ it('creates a TurnkeyHostedWalletProvider instance', () => {
69
+ const registry = new NodeHostedWalletProviderRegistry()
70
+ const factory = registry.getFactory('turnkey')
71
+
72
+ const provider = factory.create(
73
+ { chainManager: mockChainManager },
74
+ {
75
+ client: mockTurnkeyClient,
76
+ },
77
+ )
78
+
79
+ expect(provider).toBeInstanceOf(TurnkeyHostedWalletProvider)
80
+ })
81
+
82
+ it('throws for unknown provider type', () => {
83
+ const registry = new NodeHostedWalletProviderRegistry()
84
+ // @ts-expect-error: testing runtime error for unknown type
85
+ expect(() => registry.getFactory('unknown')).toThrow(
86
+ 'Unknown hosted wallet provider: unknown',
87
+ )
88
+ })
89
+ })
@@ -0,0 +1,84 @@
1
+ import type { TurnkeySDKClientBase } from '@turnkey/core'
2
+ import type { TurnkeyClient as TurnkeyHttpClient } from '@turnkey/http'
3
+ import type { TurnkeyServerClient } from '@turnkey/sdk-server'
4
+ import type { LocalAccount } from 'viem'
5
+
6
+ import type { ChainManager } from '@/services/ChainManager.js'
7
+ import type { LendConfig, LendProvider } from '@/types/lend/index.js'
8
+ import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
9
+ import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
10
+ import type { NodeToActionsOptionsMap } from '@/wallet/node/providers/hosted/types/index.js'
11
+ import { TurnkeyWallet } from '@/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js'
12
+ import { createSigner } from '@/wallet/node/wallets/hosted/turnkey/utils/createSigner.js'
13
+
14
+ /**
15
+ * Turnkey wallet provider implementation
16
+ * @description Hosted wallet provider that wraps Turnkey's signing infrastructure
17
+ * and exposes an Actions-compatible wallet. This provider is intended for Node
18
+ * environments where the Turnkey client (HTTP, server, or core SDK) and
19
+ * organization context are provided at construction time.
20
+ */
21
+ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
22
+ 'turnkey',
23
+ NodeToActionsOptionsMap
24
+ > {
25
+ /**
26
+ * Create a new Turnkey wallet provider
27
+ * @param client - Turnkey client instance (HTTP, server, or core SDK base)
28
+ * @param chainManager - Chain manager used to resolve chains and RPC transports
29
+ */
30
+ constructor(
31
+ private readonly client:
32
+ | TurnkeyHttpClient
33
+ | TurnkeyServerClient
34
+ | TurnkeySDKClientBase,
35
+ chainManager: ChainManager,
36
+ lendProvider?: LendProvider<LendConfig>,
37
+ ) {
38
+ super(chainManager, lendProvider)
39
+ }
40
+
41
+ /**
42
+ * Convert a Turnkey hosted wallet context into an Actions wallet
43
+ * @description Creates a `TurnkeyWallet` configured with the provider's Turnkey
44
+ * client and organization.
45
+ * @param params - Options for creating the Actions wallet from Turnkey context
46
+ * @param params.signWith - Wallet account address, private key address, or private key ID
47
+ * @param params.ethereumAddress - Ethereum address to use for this account, in the case that a private key ID is used to sign.
48
+ * @returns Promise resolving to an Actions-compatible wallet instance
49
+ */
50
+ async toActionsWallet(
51
+ params: NodeToActionsOptionsMap['turnkey'],
52
+ ): Promise<Wallet> {
53
+ return TurnkeyWallet.create({
54
+ client: this.client,
55
+ organizationId: params.organizationId,
56
+ signWith: params.signWith,
57
+ ethereumAddress: params.ethereumAddress,
58
+ chainManager: this.chainManager,
59
+ lendProvider: this.lendProvider,
60
+ })
61
+ }
62
+
63
+ /**
64
+ * Create a viem LocalAccount signer from Turnkey credentials
65
+ * @description Produces a signing account backed by Turnkey without wrapping
66
+ * it in a full Actions wallet. This is useful when you need to pass the signer
67
+ * into an Actions smart wallet as a signer, for lower-level viem operations, or
68
+ * for passing to other libraries that accept a viem `LocalAccount`.
69
+ * @param params - Turnkey configuration for the signer
70
+ * @param params.client - Turnkey client instance
71
+ * @param params.organizationId - Turnkey organization ID that owns the signing key
72
+ * @param params.signWith - Wallet account address, private key address, or private key ID
73
+ * @param params.ethereumAddress - Optional Ethereum address (recommended for passkey clients to avoid extra prompts)
74
+ * @returns Promise resolving to a viem `LocalAccount` with Turnkey as the signer backend
75
+ */
76
+ async createSigner(
77
+ params: NodeToActionsOptionsMap['turnkey'],
78
+ ): Promise<LocalAccount> {
79
+ return createSigner({
80
+ ...params,
81
+ client: this.client,
82
+ })
83
+ }
84
+ }