@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,191 @@
1
+ import { createWalletClient } from 'viem';
2
+ import { unichain } from 'viem/chains';
3
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
4
+ import { MockChainManager } from '../../../../../test/MockChainManager.js';
5
+ import { getRandomAddress } from '../../../../../test/utils.js';
6
+ import { EOAWallet } from '../EOAWallet.js';
7
+ vi.mock('viem', async () => ({
8
+ // @ts-ignore - importActual returns unknown
9
+ ...(await vi.importActual('viem')),
10
+ createWalletClient: vi.fn(),
11
+ }));
12
+ // Concrete implementation for testing abstract class
13
+ class TestEOAWallet extends EOAWallet {
14
+ constructor(address, signer, chainManager) {
15
+ super(chainManager);
16
+ this.address = address;
17
+ this.signer = signer;
18
+ }
19
+ static async create(address, signer, chainManager) {
20
+ const wallet = new TestEOAWallet(address, signer, chainManager);
21
+ await wallet.initialize();
22
+ return wallet;
23
+ }
24
+ }
25
+ const mockAddress = getRandomAddress();
26
+ const mockChainManager = new MockChainManager({
27
+ supportedChains: [130], // Unichain
28
+ });
29
+ const mockLocalAccount = {
30
+ address: mockAddress,
31
+ signMessage: vi.fn(),
32
+ sign: vi.fn(),
33
+ signTransaction: vi.fn(),
34
+ signTypedData: vi.fn(),
35
+ };
36
+ const mockTransactionHash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef';
37
+ const mockReceipt = {
38
+ transactionHash: mockTransactionHash,
39
+ blockNumber: 12345n,
40
+ status: 'success',
41
+ from: mockAddress,
42
+ to: getRandomAddress(),
43
+ gasUsed: 21000n,
44
+ };
45
+ describe('EOAWallet', () => {
46
+ let wallet;
47
+ let mockWalletClient;
48
+ let mockPublicClient;
49
+ beforeEach(async () => {
50
+ vi.clearAllMocks();
51
+ // Setup mock wallet client
52
+ mockWalletClient = {
53
+ sendTransaction: vi.fn().mockResolvedValue(mockTransactionHash),
54
+ };
55
+ // Setup mock public client
56
+ mockPublicClient = {
57
+ waitForTransactionReceipt: vi.fn().mockResolvedValue(mockReceipt),
58
+ };
59
+ // Mock chainManager methods
60
+ vi.spyOn(mockChainManager, 'getChain').mockReturnValue(unichain);
61
+ vi.spyOn(mockChainManager, 'getRpcUrls').mockReturnValue([
62
+ 'https://rpc1.example.com',
63
+ 'https://rpc2.example.com',
64
+ ]);
65
+ vi.spyOn(mockChainManager, 'getPublicClient').mockReturnValue(mockPublicClient);
66
+ // Mock createWalletClient
67
+ vi.mocked(createWalletClient).mockResolvedValue(mockWalletClient);
68
+ wallet = await TestEOAWallet.create(mockAddress, mockLocalAccount, mockChainManager);
69
+ });
70
+ describe('walletClient', () => {
71
+ it('should create a wallet client with correct configuration', async () => {
72
+ const walletClient = await wallet.walletClient(unichain.id);
73
+ expect(createWalletClient).toHaveBeenCalledOnce();
74
+ const callArgs = vi.mocked(createWalletClient).mock.calls[0][0];
75
+ expect(callArgs.account).toBe(mockLocalAccount);
76
+ expect(callArgs.chain).toBe(unichain);
77
+ expect(walletClient).toBe(mockWalletClient);
78
+ });
79
+ });
80
+ describe('send', () => {
81
+ const mockTransactionData = {
82
+ to: getRandomAddress(),
83
+ value: 1000000000000000000n, // 1 ETH
84
+ data: '0x',
85
+ };
86
+ it('should send a transaction and return receipt', async () => {
87
+ const receipt = await wallet.send(mockTransactionData, unichain.id);
88
+ expect(mockWalletClient.sendTransaction).toHaveBeenCalledWith(mockTransactionData);
89
+ expect(mockChainManager.getPublicClient).toHaveBeenCalledWith(unichain.id);
90
+ expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenCalledWith({
91
+ hash: mockTransactionHash,
92
+ });
93
+ expect(receipt).toBe(mockReceipt);
94
+ });
95
+ it('should create wallet client with correct chain', async () => {
96
+ await wallet.send(mockTransactionData, unichain.id);
97
+ expect(mockChainManager.getChain).toHaveBeenCalledWith(unichain.id);
98
+ expect(createWalletClient).toHaveBeenCalled();
99
+ });
100
+ });
101
+ describe('sendBatch', () => {
102
+ const mockTransactionData1 = {
103
+ to: getRandomAddress(),
104
+ value: 1000000000000000000n,
105
+ data: '0x',
106
+ };
107
+ const mockTransactionData2 = {
108
+ to: getRandomAddress(),
109
+ value: 2000000000000000000n,
110
+ data: '0xabcd',
111
+ };
112
+ const mockTransactionData3 = {
113
+ to: getRandomAddress(),
114
+ value: 3000000000000000000n,
115
+ data: '0x1234',
116
+ };
117
+ const mockReceipt2 = {
118
+ ...mockReceipt,
119
+ transactionHash: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd',
120
+ };
121
+ const mockReceipt3 = {
122
+ ...mockReceipt,
123
+ transactionHash: '0x9876543210987654321098765432109876543210987654321098765432109876',
124
+ };
125
+ beforeEach(() => {
126
+ vi.mocked(mockWalletClient.sendTransaction)
127
+ .mockResolvedValueOnce(mockReceipt.transactionHash)
128
+ .mockResolvedValueOnce(mockReceipt2.transactionHash)
129
+ .mockResolvedValueOnce(mockReceipt3.transactionHash);
130
+ vi.mocked(mockPublicClient.waitForTransactionReceipt)
131
+ .mockResolvedValueOnce(mockReceipt)
132
+ .mockResolvedValueOnce(mockReceipt)
133
+ .mockResolvedValueOnce(mockReceipt2)
134
+ .mockResolvedValueOnce(mockReceipt2)
135
+ .mockResolvedValueOnce(mockReceipt3)
136
+ .mockResolvedValueOnce(mockReceipt3);
137
+ });
138
+ it('should send multiple transactions sequentially', async () => {
139
+ const receipts = await wallet.sendBatch([mockTransactionData1, mockTransactionData2, mockTransactionData3], unichain.id);
140
+ expect(receipts).toHaveLength(3);
141
+ expect(receipts[0]).toBe(mockReceipt);
142
+ expect(receipts[1]).toBe(mockReceipt2);
143
+ expect(receipts[2]).toBe(mockReceipt3);
144
+ expect(mockWalletClient.sendTransaction).toHaveBeenCalledTimes(3);
145
+ expect(mockWalletClient.sendTransaction).toHaveBeenNthCalledWith(1, mockTransactionData1);
146
+ expect(mockWalletClient.sendTransaction).toHaveBeenNthCalledWith(2, mockTransactionData2);
147
+ expect(mockWalletClient.sendTransaction).toHaveBeenNthCalledWith(3, mockTransactionData3);
148
+ });
149
+ it('should wait for extra confirmations after each transaction', async () => {
150
+ await wallet.sendBatch([mockTransactionData1, mockTransactionData2], unichain.id);
151
+ // Should be called twice per transaction:
152
+ // 1. Initial wait in send()
153
+ // 2. Extra confirmation wait (confirmations: 2) in sendBatch()
154
+ expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenCalledTimes(4);
155
+ // Check that extra confirmation wait was called with confirmations: 2
156
+ expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenNthCalledWith(2, {
157
+ hash: mockReceipt.transactionHash,
158
+ confirmations: 2,
159
+ });
160
+ expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenNthCalledWith(4, {
161
+ hash: mockReceipt2.transactionHash,
162
+ confirmations: 2,
163
+ });
164
+ });
165
+ it('should get public client for each transaction', async () => {
166
+ await wallet.sendBatch([mockTransactionData1, mockTransactionData2], unichain.id);
167
+ // Called twice per transaction (once in send, once for extra confirmation)
168
+ expect(mockChainManager.getPublicClient).toHaveBeenCalledTimes(4);
169
+ expect(mockChainManager.getPublicClient).toHaveBeenCalledWith(unichain.id);
170
+ });
171
+ it('should handle single transaction in batch', async () => {
172
+ const receipts = await wallet.sendBatch([mockTransactionData1], unichain.id);
173
+ expect(receipts).toHaveLength(1);
174
+ expect(receipts[0]).toBe(mockReceipt);
175
+ expect(mockWalletClient.sendTransaction).toHaveBeenCalledOnce();
176
+ });
177
+ it('should return empty array for empty batch', async () => {
178
+ const receipts = await wallet.sendBatch([], unichain.id);
179
+ expect(receipts).toEqual([]);
180
+ expect(mockWalletClient.sendTransaction).not.toHaveBeenCalled();
181
+ });
182
+ it('should maintain transaction order in results', async () => {
183
+ const receipts = await wallet.sendBatch([mockTransactionData1, mockTransactionData2, mockTransactionData3], unichain.id);
184
+ // Verify order is preserved
185
+ expect(receipts[0].transactionHash).toBe(mockReceipt.transactionHash);
186
+ expect(receipts[1].transactionHash).toBe(mockReceipt2.transactionHash);
187
+ expect(receipts[2].transactionHash).toBe(mockReceipt3.transactionHash);
188
+ });
189
+ });
190
+ });
191
+ //# sourceMappingURL=EOAWallet.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EOAWallet.spec.js","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { Address } from 'viem';
2
+ import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
3
+ import type { SupportedChainId } from '../../../../../constants/supportedChains.js';
4
+ import type { Asset } from '../../../../../types/asset.js';
5
+ import type { TransactionData } from '../../../../../types/lend/index.js';
6
+ import { Wallet } from '../../abstract/Wallet.js';
7
+ import type { Signer } from './types/index.js';
8
+ /**
9
+ * Base smart wallet class
10
+ * @description Abstract base class for smart wallet implementations (ERC-4337 compatible wallets).
11
+ */
12
+ export declare abstract class SmartWallet extends Wallet {
13
+ /**
14
+ * Send a transaction using this smart wallet
15
+ * @description Executes a transaction through the smart wallet, handling gas sponsorship
16
+ * and ERC-4337 UserOperation creation automatically.
17
+ * @param transactionData - The transaction data to execute
18
+ * @param chainId - Target blockchain chain ID
19
+ * @returns Promise resolving to the transaction hash
20
+ */
21
+ abstract send(transactionData: TransactionData, chainId: SupportedChainId): Promise<WaitForUserOperationReceiptReturnType>;
22
+ /**
23
+ * Send a batch of transactions using this smart wallet
24
+ * @description Executes a batch of transactions through the smart wallet, handling gas sponsorship
25
+ * and ERC-4337 UserOperation creation automatically.
26
+ * @param transactionData - The transaction data to execute
27
+ * @param chainId
28
+ */
29
+ abstract sendBatch(transactionData: TransactionData[], chainId: SupportedChainId): Promise<WaitForUserOperationReceiptReturnType>;
30
+ /**
31
+ * Add a new signer to the smart wallet
32
+ * @description Adds either an EOA address signer or a WebAuthn account signer
33
+ * to the underlying smart wallet contract.
34
+ * @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to add
35
+ * @param chainId - Target chain on which the smart wallet operates
36
+ * @returns Promise resolving to the onchain signer index for the newly added signer
37
+ * @throws Error if the add operation fails or the owner index cannot be found
38
+ */
39
+ abstract addSigner(signer: Signer, chainId: SupportedChainId): Promise<number>;
40
+ /**
41
+ * Remove a signer from the smart wallet
42
+ * @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to remove
43
+ * @param chainId - Target chain on which the smart wallet operates
44
+ * @param signerIndex - Index of the signer to remove, if not provided, it will be found by
45
+ * doing a lookup on the smart wallet contract.
46
+ * @returns Promise resolving to the receipt of the remove operation
47
+ */
48
+ abstract removeSigner(signer: Signer, chainId: SupportedChainId, signerIndex?: number): Promise<WaitForUserOperationReceiptReturnType>;
49
+ /**
50
+ * Find the index of a signer in the smart wallet
51
+ * @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to find
52
+ * @param chainId - Target chain on which the smart wallet operates
53
+ * @returns Promise resolving to the onchain signer index for the found signer
54
+ * returns -1 if the signer is not found
55
+ */
56
+ abstract findSignerIndexOnChain(signer: Signer, chainId: SupportedChainId): Promise<number>;
57
+ /**
58
+ * Send tokens to another address
59
+ * @description Prepares transaction data for sending tokens from this smart wallet
60
+ * to a recipient address. Returns transaction data that can be executed via send().
61
+ * @param amount - Amount to send in human-readable format
62
+ * @param asset - Asset object with address mapping and metadata
63
+ * @param chainId - Chain ID for the transaction
64
+ * @param recipientAddress - Destination address for the tokens
65
+ * @returns Promise resolving to prepared transaction data
66
+ */
67
+ abstract sendTokens(amount: number, asset: Asset, chainId: SupportedChainId, recipientAddress: Address): Promise<TransactionData>;
68
+ }
69
+ //# sourceMappingURL=SmartWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartWallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/smart/abstract/SmartWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAA;AAErF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qDAAqD,CAAA;AAEjF;;;GAGG;AACH,8BAAsB,WAAY,SAAQ,MAAM;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CACX,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,qCAAqC,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAChB,eAAe,EAAE,eAAe,EAAE,EAClC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,qCAAqC,CAAC;IAEjD;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9E;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,qCAAqC,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,sBAAsB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,eAAe,CAAC;CAC5B"}
@@ -0,0 +1,8 @@
1
+ import { Wallet } from '../../abstract/Wallet.js';
2
+ /**
3
+ * Base smart wallet class
4
+ * @description Abstract base class for smart wallet implementations (ERC-4337 compatible wallets).
5
+ */
6
+ export class SmartWallet extends Wallet {
7
+ }
8
+ //# sourceMappingURL=SmartWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/smart/abstract/SmartWallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAGjE;;;GAGG;AACH,MAAM,OAAgB,WAAY,SAAQ,MAAM;CA+E/C"}
@@ -0,0 +1,43 @@
1
+ import type { Address, Hex, LocalAccount, WalletClient } from 'viem';
2
+ import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
3
+ import type { SupportedChainId } from '../../../../../../constants/supportedChains.js';
4
+ import type { Asset } from '../../../../../../types/asset.js';
5
+ import type { TransactionData } from '../../../../../../types/lend/index.js';
6
+ import type { SmartWallet } from '../SmartWallet.js';
7
+ export type CreateSmartWalletMockOptions = {
8
+ /** Mock wallet address */
9
+ address?: Address;
10
+ /** Mock signer */
11
+ signer?: LocalAccount;
12
+ /** Custom implementation for addSigner */
13
+ addSignerImpl?: (owner: Address | {
14
+ type: 'webAuthn';
15
+ publicKey: Hex;
16
+ }, chainId: SupportedChainId) => Promise<number | void>;
17
+ /** Custom implementation for findSignerIndex */
18
+ findSignerIndexImpl?: (signer: Address | {
19
+ type: 'webAuthn';
20
+ publicKey: Hex;
21
+ }, chainId: SupportedChainId) => Promise<number>;
22
+ /** Custom implementation for removeSigner */
23
+ removeSignerImpl?: (signer: Address | {
24
+ type: 'webAuthn';
25
+ publicKey: Hex;
26
+ }, chainId: SupportedChainId, signerIndex?: number) => Promise<WaitForUserOperationReceiptReturnType>;
27
+ /** Custom implementation for send */
28
+ sendImpl?: (transactionData: TransactionData, chainId: SupportedChainId) => Promise<WaitForUserOperationReceiptReturnType>;
29
+ /** Custom implementation for sendBatch */
30
+ sendBatchImpl?: (transactionData: TransactionData[], chainId: SupportedChainId) => Promise<WaitForUserOperationReceiptReturnType>;
31
+ /** Optional custom walletClient implementation */
32
+ walletClientImpl?: (chainId: SupportedChainId) => Promise<WalletClient>;
33
+ /** Optional custom sendTokens implementation */
34
+ sendTokensImpl?: (amount: number, asset: Asset, chainId: SupportedChainId, recipientAddress: Address) => Promise<TransactionData>;
35
+ };
36
+ /**
37
+ * Create a mock SmartWallet instance
38
+ * @description Returns an object typed as `SmartWallet` with configurable
39
+ * implementations for `send` and `sendBatch`. Other abstract members are
40
+ * provided with minimal defaults or throw if invoked (unless overridden).
41
+ */
42
+ export declare function createMock(options?: CreateSmartWalletMockOptions): SmartWallet;
43
+ //# sourceMappingURL=SmartWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartWallet.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACpE,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAA;AAGrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAA;AAEtF,MAAM,MAAM,4BAA4B,GAAG;IACzC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kBAAkB;IAClB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,EACrD,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3B,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,EACtD,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,MAAM,CAAC,CAAA;IACpB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,CACjB,MAAM,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,EACtD,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACnD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CACT,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACnD,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CACd,eAAe,EAAE,eAAe,EAAE,EAClC,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACnD,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACvE,gDAAgD;IAChD,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,OAAO,KACtB,OAAO,CAAC,eAAe,CAAC,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE,4BAAiC,GACzC,WAAW,CAqGb"}
@@ -0,0 +1,67 @@
1
+ import { vi } from 'vitest';
2
+ /**
3
+ * Create a mock SmartWallet instance
4
+ * @description Returns an object typed as `SmartWallet` with configurable
5
+ * implementations for `send` and `sendBatch`. Other abstract members are
6
+ * provided with minimal defaults or throw if invoked (unless overridden).
7
+ */
8
+ export function createMock(options = {}) {
9
+ const defaultReceipt = {
10
+ success: true,
11
+ };
12
+ const address = (options.address ??
13
+ '0x0000000000000000000000000000000000000000');
14
+ const signer = options.signer ?? { address, type: 'local' };
15
+ const addSigner = vi.fn(async (owner, chainId) => {
16
+ if (options.addSignerImpl)
17
+ return options.addSignerImpl(owner, chainId);
18
+ return undefined;
19
+ });
20
+ const findSignerIndex = vi.fn(async (signer, chainId) => {
21
+ if (options.findSignerIndexImpl)
22
+ return options.findSignerIndexImpl(signer, chainId);
23
+ return -1;
24
+ });
25
+ const removeSigner = vi.fn(async (signer, chainId, signerIndex) => {
26
+ if (options.removeSignerImpl)
27
+ return options.removeSignerImpl(signer, chainId, signerIndex);
28
+ return defaultReceipt;
29
+ });
30
+ const send = vi.fn(async (transactionData, chainId) => {
31
+ if (options.sendImpl)
32
+ return options.sendImpl(transactionData, chainId);
33
+ return defaultReceipt;
34
+ });
35
+ const sendBatch = vi.fn(async (transactionData, chainId) => {
36
+ if (options.sendBatchImpl)
37
+ return options.sendBatchImpl(transactionData, chainId);
38
+ return defaultReceipt;
39
+ });
40
+ const walletClient = vi.fn(async (chainId) => {
41
+ if (options.walletClientImpl)
42
+ return options.walletClientImpl(chainId);
43
+ throw new Error('walletClient not implemented in SmartWallet mock');
44
+ });
45
+ const sendTokens = vi.fn(async (amount, asset, chainId, recipientAddress) => {
46
+ if (options.sendTokensImpl)
47
+ return options.sendTokensImpl(amount, asset, chainId, recipientAddress);
48
+ throw new Error('sendTokens not implemented in SmartWallet mock');
49
+ });
50
+ const mock = {
51
+ get address() {
52
+ return address;
53
+ },
54
+ get signer() {
55
+ return signer;
56
+ },
57
+ addSigner,
58
+ findSignerIndex,
59
+ removeSigner,
60
+ walletClient,
61
+ send,
62
+ sendBatch,
63
+ sendTokens,
64
+ };
65
+ return mock;
66
+ }
67
+ //# sourceMappingURL=SmartWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartWallet.js","sourceRoot":"","sources":["../../../../../../../src/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Address, LocalAccount, OneOf } from 'viem';
2
+ import type { WebAuthnAccount } from 'viem/account-abstraction';
3
+ /**
4
+ * A single signer/owner for a Smart Wallet.
5
+ *
6
+ * Can be one of three types:
7
+ * - **`Address`**: A plain Ethereum address (hex string like `'0x123...'`). The address itself cannot sign,
8
+ * but can be used as an owner identifier.
9
+ * - **`LocalAccount`**: A local account (e.g., from a private key or mnemonic) that can sign transactions
10
+ * and messages using standard ECDSA signatures.
11
+ * - **`WebAuthnAccount`**: A WebAuthn/passkey account that signs using the WebAuthn P256 curve,
12
+ * typically used for biometric authentication.
13
+ *
14
+ * The `OneOf` utility ensures that account objects are mutually exclusive - an account can be
15
+ * either a `LocalAccount` OR a `WebAuthnAccount`, never a hybrid with properties from both types.
16
+ * This prevents type confusion and ensures proper signature handling for each account type.
17
+ */
18
+ export type Signer = Address | OneOf<LocalAccount | WebAuthnAccount>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallet/core/wallets/smart/abstract/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,YAAY,GAAG,eAAe,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/wallet/core/wallets/smart/abstract/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,191 @@
1
+ import type { Address, Hex, LocalAccount } from 'viem';
2
+ import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
3
+ import { toCoinbaseSmartAccount } from 'viem/account-abstraction';
4
+ import type { SupportedChainId } from '../../../../../constants/supportedChains.js';
5
+ import type { ChainManager } from '../../../../../services/ChainManager.js';
6
+ import type { Asset } from '../../../../../types/asset.js';
7
+ import type { LendConfig, LendProvider, TransactionData } from '../../../../../types/lend/index.js';
8
+ import { SmartWallet } from '../abstract/SmartWallet.js';
9
+ import type { Signer } from '../abstract/types/index.js';
10
+ /**
11
+ * Smart Wallet Implementation
12
+ * @description ERC-4337 compatible smart wallet that uses Coinbase Smart Account (https://github.com/coinbase/smart-wallet/blob/main/src/CoinbaseSmartWallet.sol).
13
+ * Supports multi-owner wallets, gasless transactions via paymasters, and cross-chain operations.
14
+ */
15
+ export declare class DefaultSmartWallet extends SmartWallet {
16
+ /** Local account used for signing transactions and UserOperations */
17
+ readonly signer: LocalAccount;
18
+ /** Address of the smart wallet */
19
+ private _address;
20
+ /** Array of wallet signers */
21
+ private signers;
22
+ /** Index of this.signer in this.signers array */
23
+ private signerIndex;
24
+ /** Known deployment address of the wallet (if already deployed) */
25
+ private deploymentAddress?;
26
+ /** Nonce used for deterministic address generation (defaults to 0) */
27
+ private nonce?;
28
+ /** Optional 16-byte attribution suffix appended to callData */
29
+ private attributionSuffix?;
30
+ /**
31
+ * Create a Smart Wallet instance
32
+ * @param owners - Array of wallet owners (addresses or WebAuthn accounts)
33
+ * @param signer - Local account for signing transactions
34
+ * @param chainManager - Network management service
35
+ * @param lendProvider - Lending operations provider
36
+ * @param deploymentAddress - Known wallet address (if already deployed)
37
+ * @param ownerIndex - Index of signer in owners array
38
+ * @param nonce - Nonce for address generation
39
+ */
40
+ private constructor();
41
+ get address(): `0x${string}`;
42
+ /**
43
+ * Get the formatted owner bytes for smart wallet operations
44
+ * @description Converts the wallet's owners array into the bytes format expected by the smart wallet
45
+ * factory and contract. EOA addresses are padded to 32 bytes, LocalAccount addresses are extracted and padded,
46
+ * and WebAuthn public keys are passed through.
47
+ * @returns Array of 32-byte formatted owner identifiers
48
+ * @private
49
+ */
50
+ get _signerBytes(): `0x${string}`[];
51
+ static create(params: {
52
+ signer: LocalAccount;
53
+ chainManager: ChainManager;
54
+ signers?: Signer[];
55
+ lendProvider?: LendProvider<LendConfig>;
56
+ deploymentAddress?: Address;
57
+ nonce?: bigint;
58
+ attributionSuffix?: Hex;
59
+ }): Promise<DefaultSmartWallet>;
60
+ /**
61
+ * Ensures the LocalAccount signer is present in the signers array for signing operations.
62
+ * This is needed because the toCoinbaseSmartAccount requires two things:
63
+ * 1. The signers array to contain the signer (LocalAccount).
64
+ * 2. The index that the signer is at in the signers array.
65
+ *
66
+ *
67
+ * Another benefit of this is that it allows flexible constructor arguments because it can take a mix
68
+ * of public keys/addresses or LocalAccounts.
69
+ * Searches for the signer's public key in the array and replaces that entry with the LocalAccount.
70
+ * If the LocalAccount is already at that index, this is a no-op.
71
+ * @param signers - Array of signers (addresses, LocalAccounts, or WebAuthnAccounts)
72
+ * @param signer - LocalAccount that will sign transactions
73
+ * @returns The signers array with LocalAccount at the correct index, and that index
74
+ * @throws Error if signer's public key is not found in the signers array
75
+ */
76
+ private static ensureLocalAccountSigner;
77
+ /**
78
+ * Checks if a 16-byte attribution suffix is valid
79
+ * @description Checks if the suffix is a valid hex string and is exactly 16 bytes
80
+ * @throws Error if suffix is not hex or is not exactly 16 bytes
81
+ */
82
+ private static isValidAttributionSuffix;
83
+ /**
84
+ * Create a Coinbase Smart Account instance
85
+ * @description Converts this wallet into a viem-compatible smart account for ERC-4337 operations.
86
+ * @param chainId - Target blockchain network ID
87
+ * @returns Coinbase Smart Account instance configured for the specified chain
88
+ */
89
+ getCoinbaseSmartAccount(chainId: SupportedChainId): ReturnType<typeof toCoinbaseSmartAccount>;
90
+ /**
91
+ * Send a batch of transactions using this smart wallet
92
+ * @description Executes a batch of transactions through the smart wallet, handling gas sponsorship
93
+ * and ERC-4337 UserOperation creation automatically.
94
+ * @param transactionData - The transaction data to execute
95
+ * @param chainId - Target blockchain chain ID
96
+ * @returns Promise resolving to the transaction hash
97
+ */
98
+ sendBatch(transactionData: TransactionData[], chainId: SupportedChainId): Promise<WaitForUserOperationReceiptReturnType>;
99
+ /**
100
+ * Send a transaction via ERC-4337
101
+ * @description Executes a transaction using the smart wallet with automatic gas sponsorship.
102
+ * The transaction is sent as a UserOperation through the bundler service.
103
+ * @param transactionData - Transaction details (to, value, data)
104
+ * @param chainId - Target blockchain network ID
105
+ * @returns Promise resolving to UserOperation hash
106
+ * @throws Error if transaction fails or validation errors occur
107
+ */
108
+ send(transactionData: TransactionData, chainId: SupportedChainId): Promise<WaitForUserOperationReceiptReturnType>;
109
+ /**
110
+ * Add a new signer to the smart wallet
111
+ * @description Adds either an EOA address signer or a WebAuthn account signer
112
+ * to the underlying smart wallet contract. For WebAuthn accounts, the method
113
+ * extracts the x and y coordinates from the provided 64-byte public key and
114
+ * calls the contract's `addOwnerPublicKey`. For EOA addresses it calls
115
+ * `addOwnerAddress`. The add operation is sent as a UserOperation via
116
+ * {@link sendBatch}, and upon success the method queries the contract to
117
+ * resolve the signer's index.
118
+ * @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to add
119
+ * @param chainId - Target chain on which the smart wallet operates
120
+ * @returns Promise resolving to the onchain signer index for the newly added signer
121
+ * @throws Error if the add operation fails or the owner index cannot be found
122
+ */
123
+ addSigner(signer: Signer, chainId: SupportedChainId): Promise<number>;
124
+ /**
125
+ * Remove an existing signer from the smart wallet
126
+ * @description Removes a signer (EOA address or WebAuthn public key) from the
127
+ * smart wallet contract. If `signerIndex` is not provided, the method resolves
128
+ * it via {@link findSignerIndexOnChain}. The removal is executed via {@link sendBatch}
129
+ * by calling the contract function `removeOwnerAtIndex(index, signerBytes)`.
130
+ * Returns the ERC-4337 UserOperation receipt on success.
131
+ * @param signer - Signer to remove: EOA address or `WebAuthnAccount`
132
+ * @param chainId - Target chain on which the smart wallet operates
133
+ * @param signerIndex - Optional known on-chain index of the signer (skips lookup when provided)
134
+ * @returns Promise resolving to the UserOperation receipt for the removal
135
+ * @throws Error if the signer index cannot be found or the removal operation fails
136
+ */
137
+ removeSigner(signer: Signer, chainId: SupportedChainId, signerIndex?: number): Promise<WaitForUserOperationReceiptReturnType>;
138
+ /**
139
+ * Find the index of a signer in the smart wallet
140
+ * @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to find
141
+ * @param chainId - Target chain on which the smart wallet operates
142
+ * @returns Promise resolving to the onchain signer index for the found signer
143
+ * returns -1 if the signer is not found
144
+ */
145
+ findSignerIndexOnChain(signer: Signer, chainId: SupportedChainId): Promise<number>;
146
+ /**
147
+ * Deploy the smart wallet on a specific chain
148
+ * @description Triggers deployment of the smart wallet contract on the specified chain.
149
+ * If the wallet is already deployed, returns success immediately without creating a new transaction.
150
+ * Deployment is done by calling the factory's `createAccount` function, which is idempotent and will
151
+ * return the existing address if already deployed. The factory address is a fixed address that can be
152
+ * added to paymaster allowlists once, avoiding the need to allowlist each dynamically created wallet.
153
+ * @param chainId - Target chain ID to deploy the wallet on
154
+ * @returns Promise resolving to deployment result containing:
155
+ * - `chainId`: The chain ID where deployment was attempted
156
+ * - `success`: Whether the deployment succeeded
157
+ * - `receipt`: UserOperation receipt (undefined if wallet was already deployed)
158
+ * @throws {SmartWalletDeploymentError} If deployment fails or transaction reverts
159
+ */
160
+ deploy(chainId: SupportedChainId): Promise<{
161
+ chainId: SupportedChainId;
162
+ success: boolean;
163
+ receipt?: WaitForUserOperationReceiptReturnType;
164
+ }>;
165
+ /**
166
+ * Send tokens to another address
167
+ * @description Sends ETH or ERC20 tokens to a recipient address
168
+ * @param amount - Human-readable amount to send (e.g. 1.5)
169
+ * @param asset - Asset object with address mapping and metadata
170
+ * @param chainId - Chain ID for the transaction
171
+ * @param recipientAddress - Address to send to
172
+ * @returns Promise resolving to transaction data
173
+ * @throws Error if wallet is not initialized or asset is not supported
174
+ */
175
+ sendTokens(amount: number, asset: Asset, chainId: SupportedChainId, recipientAddress: Address): Promise<TransactionData>;
176
+ protected performInitialization(): Promise<void>;
177
+ /**
178
+ * Get the smart wallet address
179
+ * @description Returns the deployment address if known, otherwise calculates the deterministic
180
+ * address using CREATE2 based on signers and nonce.
181
+ * @returns Promise resolving to the wallet address
182
+ */
183
+ private getAddress;
184
+ /**
185
+ * Appends the attribution suffix to the bytes
186
+ * @param bytes
187
+ * @returns The bytes with the attribution suffix appended
188
+ */
189
+ private appendAttributionSuffix;
190
+ }
191
+ //# sourceMappingURL=DefaultSmartWallet.d.ts.map