@eth-optimism/actions-sdk 0.0.2

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,17 @@
1
+ import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction'
2
+
3
+ import type { SupportedChainId } from '@/constants/supportedChains.js'
4
+ import type { SmartWallet } from '@/wallet/core/wallets/smart/abstract/SmartWallet.js'
5
+ import type { SmartWalletDeploymentError } from '@/wallet/core/wallets/smart/error/errors.js'
6
+
7
+ interface SmartWalletDeployment {
8
+ chainId: SupportedChainId
9
+ success: boolean
10
+ receipt?: WaitForUserOperationReceiptReturnType
11
+ error?: SmartWalletDeploymentError
12
+ }
13
+
14
+ export type SmartWalletCreationResult<TWallet extends SmartWallet> = {
15
+ wallet: TWallet
16
+ deployments: SmartWalletDeployment[]
17
+ }
@@ -0,0 +1,175 @@
1
+ import type { Address, Hex, LocalAccount } from 'viem'
2
+ import { keccak256, slice, toHex } from 'viem'
3
+
4
+ import type { SupportedChainId } from '@/constants/supportedChains.js'
5
+ import type { ChainManager } from '@/services/ChainManager.js'
6
+ import type { LendConfig, LendProvider } from '@/types/lend/index.js'
7
+ import { SmartWalletProvider } from '@/wallet/core/providers/smart/abstract/SmartWalletProvider.js'
8
+ import type { SmartWalletCreationResult } from '@/wallet/core/providers/smart/abstract/types/index.js'
9
+ import type { Signer } from '@/wallet/core/wallets/smart/abstract/types/index.js'
10
+ import {
11
+ smartWalletFactoryAbi,
12
+ smartWalletFactoryAddress,
13
+ } from '@/wallet/core/wallets/smart/default/constants/index.js'
14
+ import { DefaultSmartWallet } from '@/wallet/core/wallets/smart/default/DefaultSmartWallet.js'
15
+ import { formatPublicKey } from '@/wallet/core/wallets/smart/default/utils/formatPublicKey.js'
16
+ import { getSignerPublicKey } from '@/wallet/core/wallets/smart/default/utils/getSignerPublicKey.js'
17
+ import { SmartWalletDeploymentError } from '@/wallet/core/wallets/smart/error/errors.js'
18
+
19
+ /**
20
+ * Smart Wallet Provider
21
+ * @description Factory for creating and managing Smart Wallet instances.
22
+ * Handles wallet address prediction, creation, and retrieval using ERC-4337 account abstraction.
23
+ */
24
+ export class DefaultSmartWalletProvider extends SmartWalletProvider {
25
+ /** Manages supported blockchain networks */
26
+ private chainManager: ChainManager
27
+ /** Provider for lending market operations */
28
+ private lendProvider?: LendProvider<LendConfig>
29
+ /** Optional 16-byte attribution suffix appended to callData */
30
+ private attributionSuffix?: Hex
31
+
32
+ /**
33
+ * Initialize the Smart Wallet Provider
34
+ * @param chainManager - Manages supported blockchain networks
35
+ * @param paymasterAndBundlerUrl - URL for ERC-4337 bundler and paymaster services
36
+ * @param lendProvider - Provider for lending market operations
37
+ */
38
+ constructor(
39
+ chainManager: ChainManager,
40
+ lendProvider?: LendProvider<LendConfig>,
41
+ attributionSuffix?: string,
42
+ ) {
43
+ super()
44
+ this.chainManager = chainManager
45
+ this.lendProvider = lendProvider
46
+ if (attributionSuffix) {
47
+ this.attributionSuffix =
48
+ DefaultSmartWalletProvider.computeAttributionSuffix(attributionSuffix)
49
+ }
50
+ }
51
+
52
+ static computeAttributionSuffix(attributionSuffix: string) {
53
+ return slice(keccak256(toHex(attributionSuffix)), 0, 16)
54
+ }
55
+
56
+ /**
57
+ * Create a new smart wallet instance
58
+ * @description Creates a new smart wallet and attempts to deploy it across all supported chains.
59
+ * The wallet address is deterministically calculated from owners and nonce. Deployment failures
60
+ * on individual chains do not prevent wallet creation - they are reported in the result.
61
+ * @param owners - Array of wallet owners (addresses or WebAuthn public keys)
62
+ * @param signer - Local account used for signing transactions
63
+ * @param nonce - Optional nonce for address generation (defaults to 0)
64
+ * @param deploymentChainIds - Optional chain IDs to deploy the wallet to.
65
+ * If not provided, the wallet will be deployed to all supported chains. If you would
66
+ * like to lazily deploy the wallet on first transaction, you can provide an empty array.
67
+ * @returns Promise resolving to deployment result containing:
68
+ * - `wallet`: The created SmartWallet instance
69
+ * - `deployments`: Array of deployment results with chainId, receipt, success flag, and error
70
+ */
71
+ async createWallet(params: {
72
+ signer: LocalAccount
73
+ signers?: Signer[]
74
+ nonce?: bigint
75
+ deploymentChainIds?: SupportedChainId[]
76
+ }): Promise<SmartWalletCreationResult<DefaultSmartWallet>> {
77
+ const { signers, signer, nonce, deploymentChainIds } = params
78
+ const wallet = await DefaultSmartWallet.create({
79
+ signers,
80
+ signer,
81
+ chainManager: this.chainManager,
82
+ lendProvider: this.lendProvider,
83
+ nonce,
84
+ attributionSuffix: this.attributionSuffix,
85
+ })
86
+
87
+ const deploymentResults = await Promise.allSettled(
88
+ (deploymentChainIds ?? this.chainManager.getSupportedChains()).map(
89
+ (chainId) => wallet.deploy(chainId),
90
+ ),
91
+ )
92
+ const deploymentSuccesses = deploymentResults
93
+ .filter(
94
+ (
95
+ r,
96
+ ): r is PromiseFulfilledResult<
97
+ Awaited<ReturnType<typeof wallet.deploy>>
98
+ > => r.status === 'fulfilled',
99
+ )
100
+ .map((r) => {
101
+ return {
102
+ chainId: r.value.chainId,
103
+ receipt: r.value.receipt,
104
+ success: r.value.success,
105
+ }
106
+ })
107
+
108
+ const deploymentFailures = deploymentResults
109
+ .filter((r): r is PromiseRejectedResult => r.status === 'rejected')
110
+ .map((r) => {
111
+ if (r.reason instanceof SmartWalletDeploymentError) {
112
+ return { error: r.reason, chainId: r.reason.chainId, success: false }
113
+ }
114
+ throw new Error(`Unknown error: ${r.reason}`)
115
+ })
116
+
117
+ return {
118
+ wallet,
119
+ deployments: [...deploymentSuccesses, ...deploymentFailures],
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Get the predicted smart wallet address
125
+ * @description Calculates the deterministic address where a smart wallet would be deployed
126
+ * given the specified owners and nonce. Uses CREATE2 for address prediction.
127
+ * @param params.owners - Array of wallet owners (addresses or WebAuthn public keys)
128
+ * @param params.nonce - Nonce for address generation (defaults to 0)
129
+ * @returns Promise resolving to the predicted wallet address
130
+ */
131
+ async getWalletAddress(params: { signers: Signer[]; nonce?: bigint }) {
132
+ const { signers, nonce = 0n } = params
133
+ const signerBytes = signers.map((signer) => {
134
+ const publicKey = getSignerPublicKey(signer)
135
+ return formatPublicKey(publicKey)
136
+ })
137
+
138
+ // Factory is the same accross all chains, so we can use the first chain to get the wallet address
139
+ const publicClient = this.chainManager.getPublicClient(
140
+ this.chainManager.getSupportedChains()[0],
141
+ )
142
+ const smartWalletAddress = await publicClient.readContract({
143
+ abi: smartWalletFactoryAbi,
144
+ address: smartWalletFactoryAddress,
145
+ functionName: 'getAddress',
146
+ args: [signerBytes, nonce],
147
+ })
148
+ return smartWalletAddress
149
+ }
150
+
151
+ /**
152
+ * Get an existing smart wallet instance
153
+ * @description Creates a SmartWallet instance for an already deployed wallet.
154
+ * Use this when you know the wallet address and want to interact with it.
155
+ * @param params.walletAddress - Address of the deployed smart wallet
156
+ * @param params.signer - Local account used for signing transactions
157
+ * @param params.ownerIndex - Index of the signer in the wallet's owner list (defaults to 0)
158
+ * @returns SmartWallet instance
159
+ */
160
+ async getWallet(params: {
161
+ walletAddress: Address
162
+ signer: LocalAccount
163
+ signers?: Signer[]
164
+ }): Promise<DefaultSmartWallet> {
165
+ const { walletAddress, signer, signers } = params
166
+ return DefaultSmartWallet.create({
167
+ signers,
168
+ signer,
169
+ chainManager: this.chainManager,
170
+ lendProvider: this.lendProvider,
171
+ deploymentAddress: walletAddress,
172
+ attributionSuffix: this.attributionSuffix,
173
+ })
174
+ }
175
+ }
@@ -0,0 +1,467 @@
1
+ import {
2
+ type Address,
3
+ isHex,
4
+ keccak256,
5
+ type LocalAccount,
6
+ pad,
7
+ size,
8
+ slice,
9
+ toHex,
10
+ } from 'viem'
11
+ import type {
12
+ WaitForUserOperationReceiptReturnType,
13
+ WebAuthnAccount,
14
+ } from 'viem/account-abstraction'
15
+ import { beforeEach, describe, expect, it, vi } from 'vitest'
16
+
17
+ import type { SupportedChainId } from '@/constants/supportedChains.js'
18
+ import type { ChainManager } from '@/services/ChainManager.js'
19
+ import { MockChainManager } from '@/test/MockChainManager.js'
20
+ import { createMockLendProvider } from '@/test/MockLendProvider.js'
21
+ import { getRandomAddress } from '@/test/utils.js'
22
+ import { DefaultSmartWalletProvider } from '@/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js'
23
+ import { createMock as createDefaultSmartWalletMock } from '@/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.js'
24
+ import {
25
+ smartWalletFactoryAbi,
26
+ smartWalletFactoryAddress,
27
+ } from '@/wallet/core/wallets/smart/default/constants/index.js'
28
+ import { DefaultSmartWallet } from '@/wallet/core/wallets/smart/default/DefaultSmartWallet.js'
29
+
30
+ const mockChainManager = new MockChainManager({
31
+ supportedChains: [1, 130],
32
+ }) as unknown as ChainManager
33
+ const mockLendProvider = createMockLendProvider()
34
+ const mockSigner: LocalAccount = {
35
+ address: getRandomAddress(),
36
+ type: 'local',
37
+ } as unknown as LocalAccount
38
+
39
+ describe('DefaultSmartWalletProvider', () => {
40
+ const mockWallet: ReturnType<typeof createDefaultSmartWalletMock> =
41
+ createDefaultSmartWalletMock({
42
+ address: getRandomAddress(),
43
+ signer: mockSigner,
44
+ })
45
+ const createWalletSpy = vi
46
+ .spyOn(DefaultSmartWallet, 'create')
47
+ .mockResolvedValue(mockWallet as unknown as DefaultSmartWallet)
48
+
49
+ beforeEach(() => {
50
+ vi.clearAllMocks()
51
+ })
52
+
53
+ describe('computeAttributionSuffix', () => {
54
+ it('returns first 16 bytes of keccak256(input)', () => {
55
+ const input = 'attribution-seed'
56
+ const expected = slice(keccak256(toHex(input)), 0, 16)
57
+
58
+ const actual = DefaultSmartWalletProvider.computeAttributionSuffix(input)
59
+
60
+ expect(actual).toBe(expected)
61
+ expect(isHex(actual)).toBe(true)
62
+ expect(size(actual)).toBe(16)
63
+ })
64
+
65
+ it('always returns a 16-byte suffix for arbitrarily long input', () => {
66
+ const input = 'x'.repeat(10_000)
67
+ const expected = slice(keccak256(toHex(input)), 0, 16)
68
+
69
+ const actual = DefaultSmartWalletProvider.computeAttributionSuffix(input)
70
+
71
+ expect(actual).toBe(expected)
72
+ expect(isHex(actual)).toBe(true)
73
+ expect(size(actual)).toBe(16)
74
+ })
75
+ })
76
+
77
+ it('should create a wallet and return deployment results', async () => {
78
+ const provider = new DefaultSmartWalletProvider(
79
+ mockChainManager,
80
+ mockLendProvider,
81
+ )
82
+ const signers = [mockSigner.address, getRandomAddress()]
83
+ const nonce = BigInt(123)
84
+
85
+ // Mock deploy to succeed for all chains
86
+ vi.mocked(mockWallet.deploy).mockResolvedValueOnce({
87
+ chainId: 1,
88
+ success: true,
89
+ receipt: undefined,
90
+ })
91
+ vi.mocked(mockWallet.deploy).mockResolvedValueOnce({
92
+ chainId: 130,
93
+ success: true,
94
+ receipt: undefined,
95
+ })
96
+
97
+ const result = await provider.createWallet({
98
+ signers,
99
+ signer: mockSigner,
100
+ nonce,
101
+ })
102
+
103
+ expect(result.wallet).toBe(mockWallet)
104
+ expect(result.wallet.signer).toBe(mockSigner)
105
+ expect(result).toEqual({
106
+ wallet: mockWallet,
107
+ deployments: [
108
+ { chainId: 1, receipt: undefined, success: true },
109
+ { chainId: 130, receipt: undefined, success: true },
110
+ ],
111
+ })
112
+
113
+ // Verify deploy was called for each supported chain
114
+ expect(mockWallet.deploy).toHaveBeenCalledTimes(2)
115
+ expect(mockWallet.deploy).toHaveBeenCalledWith(1)
116
+ expect(mockWallet.deploy).toHaveBeenCalledWith(130)
117
+ })
118
+
119
+ it('should report deployment successes across multiple chains', async () => {
120
+ const provider = new DefaultSmartWalletProvider(
121
+ mockChainManager,
122
+ mockLendProvider,
123
+ )
124
+ const signers = [mockSigner.address, getRandomAddress()]
125
+ const nonce = BigInt(123)
126
+
127
+ const mockReceipt = {
128
+ txHash: '0x123',
129
+ success: true,
130
+ } as unknown as WaitForUserOperationReceiptReturnType
131
+ // Mock deploy to succeed for different chains
132
+ vi.mocked(mockWallet.deploy)
133
+ .mockResolvedValueOnce({
134
+ chainId: 1,
135
+ success: true,
136
+ receipt: mockReceipt,
137
+ })
138
+ .mockResolvedValueOnce({
139
+ chainId: 130,
140
+ success: true,
141
+ receipt: undefined,
142
+ })
143
+
144
+ const result = await provider.createWallet({
145
+ signers,
146
+ signer: mockSigner,
147
+ nonce,
148
+ })
149
+
150
+ expect(result.deployments).toEqual([
151
+ { chainId: 1, receipt: mockReceipt, success: true },
152
+ { chainId: 130, receipt: undefined, success: true },
153
+ ])
154
+
155
+ // Verify deploy was called once per chain
156
+ expect(mockWallet.deploy).toHaveBeenCalledTimes(2)
157
+ expect(mockWallet.deploy).toHaveBeenCalledWith(1)
158
+ expect(mockWallet.deploy).toHaveBeenCalledWith(130)
159
+ })
160
+
161
+ it('should report deployment failures', async () => {
162
+ const provider = new DefaultSmartWalletProvider(
163
+ mockChainManager,
164
+ mockLendProvider,
165
+ )
166
+ const signers = [mockSigner.address, getRandomAddress()]
167
+ const nonce = BigInt(123)
168
+
169
+ // Mock deploy to fail for all chains
170
+ const { SmartWalletDeploymentError } = await import(
171
+ '@/wallet/core/wallets/smart/error/errors.js'
172
+ )
173
+ vi.mocked(mockWallet.deploy)
174
+ .mockRejectedValueOnce(
175
+ new SmartWalletDeploymentError('Deployment failed', 1),
176
+ )
177
+ .mockRejectedValueOnce(
178
+ new SmartWalletDeploymentError('Deployment failed', 130),
179
+ )
180
+
181
+ const result = await provider.createWallet({
182
+ signers,
183
+ signer: mockSigner,
184
+ nonce,
185
+ })
186
+
187
+ expect(result).toEqual({
188
+ wallet: mockWallet,
189
+ deployments: [
190
+ {
191
+ chainId: 1,
192
+ error: new SmartWalletDeploymentError('Deployment failed', 1),
193
+ success: false,
194
+ },
195
+ {
196
+ chainId: 130,
197
+ error: new SmartWalletDeploymentError('Deployment failed', 130),
198
+ success: false,
199
+ },
200
+ ],
201
+ })
202
+
203
+ // Verify deploy was called for each chain
204
+ expect(mockWallet.deploy).toHaveBeenCalledTimes(2)
205
+ })
206
+
207
+ it('should handle mixed deployment successes and failures', async () => {
208
+ const provider = new DefaultSmartWalletProvider(
209
+ mockChainManager,
210
+ mockLendProvider,
211
+ )
212
+ const signers = [mockSigner.address, getRandomAddress()]
213
+ const nonce = BigInt(123)
214
+
215
+ const { SmartWalletDeploymentError } = await import(
216
+ '@/wallet/core/wallets/smart/error/errors.js'
217
+ )
218
+
219
+ // Mock deploy to succeed for chain 1, fail for chain 130
220
+ vi.mocked(mockWallet.deploy)
221
+ .mockResolvedValueOnce({
222
+ chainId: 1,
223
+ success: true,
224
+ receipt: undefined,
225
+ })
226
+ .mockRejectedValueOnce(
227
+ new SmartWalletDeploymentError('Deployment failed on chain 130', 130),
228
+ )
229
+
230
+ const result = await provider.createWallet({
231
+ signers,
232
+ signer: mockSigner,
233
+ nonce,
234
+ })
235
+
236
+ expect(result).toEqual({
237
+ wallet: mockWallet,
238
+ deployments: [
239
+ { chainId: 1, receipt: undefined, success: true },
240
+ {
241
+ chainId: 130,
242
+ error: new SmartWalletDeploymentError(
243
+ 'Deployment failed on chain 130',
244
+ 130,
245
+ ),
246
+ success: false,
247
+ },
248
+ ],
249
+ })
250
+
251
+ // Verify deploy was called for both chains
252
+ expect(mockWallet.deploy).toHaveBeenCalledTimes(2)
253
+ expect(mockWallet.deploy).toHaveBeenCalledWith(1)
254
+ expect(mockWallet.deploy).toHaveBeenCalledWith(130)
255
+ })
256
+
257
+ it('should respect deploymentChainIds parameter', async () => {
258
+ const provider = new DefaultSmartWalletProvider(
259
+ mockChainManager,
260
+ mockLendProvider,
261
+ )
262
+ const signers = [mockSigner.address, getRandomAddress()]
263
+ const nonce = BigInt(123)
264
+ const deploymentChainIds: SupportedChainId[] = [1]
265
+
266
+ vi.mocked(mockWallet.deploy).mockResolvedValue({
267
+ chainId: 1,
268
+ success: true,
269
+ receipt: undefined,
270
+ })
271
+
272
+ const result = await provider.createWallet({
273
+ signers,
274
+ signer: mockSigner,
275
+ nonce,
276
+ deploymentChainIds,
277
+ })
278
+
279
+ // Should only call deploy once for chain 1
280
+ expect(mockWallet.deploy).toHaveBeenCalledTimes(1)
281
+ expect(mockWallet.deploy).toHaveBeenCalledWith(1)
282
+ expect(result).toEqual({
283
+ wallet: mockWallet,
284
+ deployments: [{ chainId: 1, receipt: undefined, success: true }],
285
+ })
286
+ })
287
+
288
+ it('should throw error for non-SmartWalletDeploymentError failures', async () => {
289
+ const provider = new DefaultSmartWalletProvider(
290
+ mockChainManager,
291
+ mockLendProvider,
292
+ )
293
+ const signers = [mockSigner.address, getRandomAddress()]
294
+ const nonce = BigInt(123)
295
+
296
+ // Mock deploy to throw a generic error (not SmartWalletDeploymentError)
297
+ vi.mocked(mockWallet.deploy).mockRejectedValue(new Error('Generic error'))
298
+
299
+ await expect(
300
+ provider.createWallet({
301
+ signers,
302
+ signer: mockSigner,
303
+ nonce,
304
+ }),
305
+ ).rejects.toThrow('Unknown error')
306
+ })
307
+
308
+ it('should get wallet address with correct contract call', async () => {
309
+ const provider = new DefaultSmartWalletProvider(
310
+ mockChainManager,
311
+ mockLendProvider,
312
+ )
313
+ const signers = [mockSigner.address, getRandomAddress()]
314
+ const nonce = BigInt(456)
315
+ const mockAddress = getRandomAddress()
316
+
317
+ const publicClient = vi.mocked(mockChainManager.getPublicClient(1))
318
+ publicClient.readContract = vi.fn().mockResolvedValue(mockAddress)
319
+
320
+ const address = await provider.getWalletAddress({ signers, nonce })
321
+
322
+ expect(address).toBe(mockAddress)
323
+ expect(publicClient.readContract).toHaveBeenCalledWith({
324
+ abi: smartWalletFactoryAbi,
325
+ address: smartWalletFactoryAddress,
326
+ functionName: 'getAddress',
327
+ args: [signers.map((signer) => pad(signer)), nonce],
328
+ })
329
+ })
330
+
331
+ it('should get wallet address with default nonce', async () => {
332
+ const provider = new DefaultSmartWalletProvider(
333
+ mockChainManager,
334
+ mockLendProvider,
335
+ )
336
+ const signers = [getRandomAddress()]
337
+ const mockAddress = getRandomAddress()
338
+
339
+ const publicClient = vi.mocked(mockChainManager.getPublicClient(1))
340
+ publicClient.readContract = vi.fn().mockResolvedValue(mockAddress)
341
+
342
+ const address = await provider.getWalletAddress({ signers })
343
+
344
+ expect(address).toBe(mockAddress)
345
+ expect(publicClient.readContract).toHaveBeenCalledWith({
346
+ abi: smartWalletFactoryAbi,
347
+ address: smartWalletFactoryAddress,
348
+ functionName: 'getAddress',
349
+ args: [signers.map((signer) => pad(signer)), BigInt(0)],
350
+ })
351
+ })
352
+
353
+ it('should handle WebAuthn accounts in wallet address calculation', async () => {
354
+ const provider = new DefaultSmartWalletProvider(
355
+ mockChainManager,
356
+ mockLendProvider,
357
+ )
358
+ const webAuthnAccount: WebAuthnAccount = {
359
+ type: 'webAuthn',
360
+ publicKey: '0x123456789abcdef',
361
+ } as unknown as WebAuthnAccount
362
+ const signers = [getRandomAddress(), webAuthnAccount]
363
+ const mockAddress = getRandomAddress()
364
+
365
+ const publicClient = vi.mocked(mockChainManager.getPublicClient(1))
366
+ publicClient.readContract = vi.fn().mockResolvedValue(mockAddress)
367
+
368
+ const address = await provider.getWalletAddress({ signers })
369
+
370
+ expect(address).toBe(mockAddress)
371
+ expect(publicClient.readContract).toHaveBeenCalledWith({
372
+ abi: smartWalletFactoryAbi,
373
+ address: smartWalletFactoryAddress,
374
+ functionName: 'getAddress',
375
+ args: [
376
+ [pad(signers[0] as Address), webAuthnAccount.publicKey],
377
+ BigInt(0),
378
+ ],
379
+ })
380
+ })
381
+
382
+ it('should throw error for invalid signer type', async () => {
383
+ const provider = new DefaultSmartWalletProvider(
384
+ mockChainManager,
385
+ mockLendProvider,
386
+ )
387
+ const invalidSigner = { type: 'invalid' } as unknown as Address
388
+ const signers = [invalidSigner]
389
+
390
+ await expect(provider.getWalletAddress({ signers })).rejects.toThrow(
391
+ 'invalid signer type',
392
+ )
393
+ })
394
+
395
+ it('should get existing wallet', async () => {
396
+ const provider = new DefaultSmartWalletProvider(
397
+ mockChainManager,
398
+ mockLendProvider,
399
+ )
400
+ const walletAddress = getRandomAddress()
401
+
402
+ const wallet = await provider.getWallet({
403
+ walletAddress,
404
+ signer: mockSigner,
405
+ signers: [mockSigner.address],
406
+ })
407
+
408
+ // Verify DefaultSmartWallet.create was called with correct params
409
+ expect(createWalletSpy).toHaveBeenCalledWith(
410
+ expect.objectContaining({
411
+ signers: [mockSigner.address],
412
+ signer: mockSigner,
413
+ deploymentAddress: walletAddress,
414
+ }),
415
+ )
416
+ expect(wallet).toBe(mockWallet)
417
+ expect(wallet.signer).toBe(mockSigner)
418
+ expect(wallet.address).toBeDefined()
419
+ })
420
+
421
+ it('passes attributionSuffix from constructor into createWallet', async () => {
422
+ const attributionSeed = 'https://my.app'
423
+ const expectedSuffix =
424
+ DefaultSmartWalletProvider.computeAttributionSuffix(attributionSeed)
425
+ const provider = new DefaultSmartWalletProvider(
426
+ mockChainManager,
427
+ mockLendProvider,
428
+ attributionSeed,
429
+ )
430
+
431
+ vi.mocked(mockWallet.deploy).mockResolvedValue({
432
+ chainId: 1,
433
+ success: true,
434
+ receipt: undefined,
435
+ })
436
+
437
+ await provider.createWallet({
438
+ signers: [mockSigner.address],
439
+ signer: mockSigner,
440
+ })
441
+
442
+ expect(createWalletSpy).toHaveBeenCalled()
443
+ const callArg = createWalletSpy.mock.calls[0]?.[0]
444
+ expect(callArg?.attributionSuffix).toBe(expectedSuffix)
445
+ })
446
+
447
+ it('passes attributionSuffix from constructor into getWallet', async () => {
448
+ const attributionSeed = 'campaign-123'
449
+ const expectedSuffix =
450
+ DefaultSmartWalletProvider.computeAttributionSuffix(attributionSeed)
451
+ const provider = new DefaultSmartWalletProvider(
452
+ mockChainManager,
453
+ mockLendProvider,
454
+ attributionSeed,
455
+ )
456
+
457
+ await provider.getWallet({
458
+ walletAddress: getRandomAddress(),
459
+ signer: mockSigner,
460
+ signers: [mockSigner.address],
461
+ })
462
+
463
+ expect(createWalletSpy).toHaveBeenCalled()
464
+ const callArg = createWalletSpy.mock.calls[0]?.[0]
465
+ expect(callArg?.attributionSuffix).toBe(expectedSuffix)
466
+ })
467
+ })