@alchemy/smart-accounts 0.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/LICENSE +21 -0
  2. package/dist/esm/errors/EntityIdOverrideError.d.ts +11 -0
  3. package/dist/esm/errors/EntityIdOverrideError.js +19 -0
  4. package/dist/esm/errors/EntityIdOverrideError.js.map +1 -0
  5. package/dist/esm/errors/InvalidDeferredActionNonceError.d.ts +11 -0
  6. package/dist/esm/errors/InvalidDeferredActionNonceError.js +19 -0
  7. package/dist/esm/errors/InvalidDeferredActionNonceError.js.map +1 -0
  8. package/dist/esm/errors/InvalidEntityIdError.d.ts +13 -0
  9. package/dist/esm/errors/InvalidEntityIdError.js +21 -0
  10. package/dist/esm/errors/InvalidEntityIdError.js.map +1 -0
  11. package/dist/esm/errors/InvalidNonceKeyError.d.ts +13 -0
  12. package/dist/esm/errors/InvalidNonceKeyError.js +21 -0
  13. package/dist/esm/errors/InvalidNonceKeyError.js.map +1 -0
  14. package/dist/esm/errors/InvalidOwnerError.d.ts +13 -0
  15. package/dist/esm/errors/InvalidOwnerError.js +21 -0
  16. package/dist/esm/errors/InvalidOwnerError.js.map +1 -0
  17. package/dist/esm/errors/permissionBuilderErrors.d.ts +150 -0
  18. package/dist/esm/errors/permissionBuilderErrors.js +233 -0
  19. package/dist/esm/errors/permissionBuilderErrors.js.map +1 -0
  20. package/dist/esm/index.d.ts +59 -0
  21. package/dist/esm/index.js +40 -0
  22. package/dist/esm/index.js.map +1 -0
  23. package/dist/esm/light-account/abis/LightAccountAbi_v1.d.ts +532 -0
  24. package/dist/esm/light-account/abis/LightAccountAbi_v1.js +379 -0
  25. package/dist/esm/light-account/abis/LightAccountAbi_v1.js.map +1 -0
  26. package/dist/esm/light-account/abis/LightAccountAbi_v2.d.ts +491 -0
  27. package/dist/esm/light-account/abis/LightAccountAbi_v2.js +355 -0
  28. package/dist/esm/light-account/abis/LightAccountAbi_v2.js.map +1 -0
  29. package/dist/esm/light-account/abis/LightAccountFactoryAbi_v1.d.ts +55 -0
  30. package/dist/esm/light-account/abis/LightAccountFactoryAbi_v1.js +75 -0
  31. package/dist/esm/light-account/abis/LightAccountFactoryAbi_v1.js.map +1 -0
  32. package/dist/esm/light-account/abis/LightAccountFactoryAbi_v2.d.ts +256 -0
  33. package/dist/esm/light-account/abis/LightAccountFactoryAbi_v2.js +210 -0
  34. package/dist/esm/light-account/abis/LightAccountFactoryAbi_v2.js.map +1 -0
  35. package/dist/esm/light-account/abis/MultiOwnerLightAccountAbi.d.ts +507 -0
  36. package/dist/esm/light-account/abis/MultiOwnerLightAccountAbi.js +372 -0
  37. package/dist/esm/light-account/abis/MultiOwnerLightAccountAbi.js.map +1 -0
  38. package/dist/esm/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts +286 -0
  39. package/dist/esm/light-account/abis/MultiOwnerLightAccountFactoryAbi.js +229 -0
  40. package/dist/esm/light-account/abis/MultiOwnerLightAccountFactoryAbi.js.map +1 -0
  41. package/dist/esm/light-account/abis/OZ_ERC1967Proxy.d.ts +13 -0
  42. package/dist/esm/light-account/abis/OZ_ERC1967Proxy.js +20 -0
  43. package/dist/esm/light-account/abis/OZ_ERC1967Proxy.js.map +1 -0
  44. package/dist/esm/light-account/accounts/account.d.ts +22 -0
  45. package/dist/esm/light-account/accounts/account.js +86 -0
  46. package/dist/esm/light-account/accounts/account.js.map +1 -0
  47. package/dist/esm/light-account/accounts/base.d.ts +28 -0
  48. package/dist/esm/light-account/accounts/base.js +170 -0
  49. package/dist/esm/light-account/accounts/base.js.map +1 -0
  50. package/dist/esm/light-account/accounts/calldataCodec.d.ts +3 -0
  51. package/dist/esm/light-account/accounts/calldataCodec.js +74 -0
  52. package/dist/esm/light-account/accounts/calldataCodec.js.map +1 -0
  53. package/dist/esm/light-account/accounts/multi-owner-account.d.ts +20 -0
  54. package/dist/esm/light-account/accounts/multi-owner-account.js +79 -0
  55. package/dist/esm/light-account/accounts/multi-owner-account.js.map +1 -0
  56. package/dist/esm/light-account/decorators/multiOwner.d.ts +17 -0
  57. package/dist/esm/light-account/decorators/multiOwner.js +38 -0
  58. package/dist/esm/light-account/decorators/multiOwner.js.map +1 -0
  59. package/dist/esm/light-account/decorators/singleOwner.d.ts +16 -0
  60. package/dist/esm/light-account/decorators/singleOwner.js +35 -0
  61. package/dist/esm/light-account/decorators/singleOwner.js.map +1 -0
  62. package/dist/esm/light-account/lightAccountStaticImpl.d.ts +24 -0
  63. package/dist/esm/light-account/lightAccountStaticImpl.js +112 -0
  64. package/dist/esm/light-account/lightAccountStaticImpl.js.map +1 -0
  65. package/dist/esm/light-account/predictAddress.d.ts +35 -0
  66. package/dist/esm/light-account/predictAddress.js +113 -0
  67. package/dist/esm/light-account/predictAddress.js.map +1 -0
  68. package/dist/esm/light-account/registry.d.ts +7115 -0
  69. package/dist/esm/light-account/registry.js +18 -0
  70. package/dist/esm/light-account/registry.js.map +1 -0
  71. package/dist/esm/light-account/utils.d.ts +1454 -0
  72. package/dist/esm/light-account/utils.js +65 -0
  73. package/dist/esm/light-account/utils.js.map +1 -0
  74. package/dist/esm/logger.d.ts +2 -0
  75. package/dist/esm/logger.js +8 -0
  76. package/dist/esm/logger.js.map +1 -0
  77. package/dist/esm/ma-v1/abis/IStandardExecutor.d.ts +50 -0
  78. package/dist/esm/ma-v1/abis/IStandardExecutor.js +32 -0
  79. package/dist/esm/ma-v1/abis/IStandardExecutor.js.map +1 -0
  80. package/dist/esm/ma-v1/abis/MultiOwnerModularAccountFactory.d.ts +234 -0
  81. package/dist/esm/ma-v1/abis/MultiOwnerModularAccountFactory.js +191 -0
  82. package/dist/esm/ma-v1/abis/MultiOwnerModularAccountFactory.js.map +1 -0
  83. package/dist/esm/ma-v1/abis/MultiOwnerPlugin.d.ts +698 -0
  84. package/dist/esm/ma-v1/abis/MultiOwnerPlugin.js +529 -0
  85. package/dist/esm/ma-v1/abis/MultiOwnerPlugin.js.map +1 -0
  86. package/dist/esm/ma-v1/abis/MultiOwnerPluginExecutionFunction.d.ts +67 -0
  87. package/dist/esm/ma-v1/abis/MultiOwnerPluginExecutionFunction.js +38 -0
  88. package/dist/esm/ma-v1/abis/MultiOwnerPluginExecutionFunction.js.map +1 -0
  89. package/dist/esm/ma-v1/abis/UpgradeableModularAccount.d.ts +880 -0
  90. package/dist/esm/ma-v1/abis/UpgradeableModularAccount.js +646 -0
  91. package/dist/esm/ma-v1/abis/UpgradeableModularAccount.js.map +1 -0
  92. package/dist/esm/ma-v1/account.d.ts +16 -0
  93. package/dist/esm/ma-v1/account.js +17 -0
  94. package/dist/esm/ma-v1/account.js.map +1 -0
  95. package/dist/esm/ma-v1/accounts/base.d.ts +29 -0
  96. package/dist/esm/ma-v1/accounts/base.js +150 -0
  97. package/dist/esm/ma-v1/accounts/base.js.map +1 -0
  98. package/dist/esm/ma-v1/accounts/multi-owner-account.d.ts +22 -0
  99. package/dist/esm/ma-v1/accounts/multi-owner-account.js +101 -0
  100. package/dist/esm/ma-v1/accounts/multi-owner-account.js.map +1 -0
  101. package/dist/esm/ma-v1/decorators/multiOwner.d.ts +17 -0
  102. package/dist/esm/ma-v1/decorators/multiOwner.js +38 -0
  103. package/dist/esm/ma-v1/decorators/multiOwner.js.map +1 -0
  104. package/dist/esm/ma-v1/mav1StaticImpl.d.ts +15 -0
  105. package/dist/esm/ma-v1/mav1StaticImpl.js +38 -0
  106. package/dist/esm/ma-v1/mav1StaticImpl.js.map +1 -0
  107. package/dist/esm/ma-v1/predictAddress.d.ts +28 -0
  108. package/dist/esm/ma-v1/predictAddress.js +51 -0
  109. package/dist/esm/ma-v1/predictAddress.js.map +1 -0
  110. package/dist/esm/ma-v2/abis/accountFactoryAbi.d.ts +348 -0
  111. package/dist/esm/ma-v2/abis/accountFactoryAbi.js +645 -0
  112. package/dist/esm/ma-v2/abis/accountFactoryAbi.js.map +1 -0
  113. package/dist/esm/ma-v2/abis/entityIdAndNonceReader.d.ts +9 -0
  114. package/dist/esm/ma-v2/abis/entityIdAndNonceReader.js +24 -0
  115. package/dist/esm/ma-v2/abis/entityIdAndNonceReader.js.map +1 -0
  116. package/dist/esm/ma-v2/abis/modularAccountAbi.d.ts +954 -0
  117. package/dist/esm/ma-v2/abis/modularAccountAbi.js +1242 -0
  118. package/dist/esm/ma-v2/abis/modularAccountAbi.js.map +1 -0
  119. package/dist/esm/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts +991 -0
  120. package/dist/esm/ma-v2/abis/semiModularAccountBytecodeAbi.js +1289 -0
  121. package/dist/esm/ma-v2/abis/semiModularAccountBytecodeAbi.js.map +1 -0
  122. package/dist/esm/ma-v2/abis/semiModularAccountStorageAbi.d.ts +1001 -0
  123. package/dist/esm/ma-v2/abis/semiModularAccountStorageAbi.js +1302 -0
  124. package/dist/esm/ma-v2/abis/semiModularAccountStorageAbi.js.map +1 -0
  125. package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.d.ts +330 -0
  126. package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.js +260 -0
  127. package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.js.map +1 -0
  128. package/dist/esm/ma-v2/accounts/account.d.ts +32 -0
  129. package/dist/esm/ma-v2/accounts/account.js +134 -0
  130. package/dist/esm/ma-v2/accounts/account.js.map +1 -0
  131. package/dist/esm/ma-v2/accounts/base.d.ts +40 -0
  132. package/dist/esm/ma-v2/accounts/base.js +371 -0
  133. package/dist/esm/ma-v2/accounts/base.js.map +1 -0
  134. package/dist/esm/ma-v2/decorators/deferralActions.d.ts +51 -0
  135. package/dist/esm/ma-v2/decorators/deferralActions.js +100 -0
  136. package/dist/esm/ma-v2/decorators/deferralActions.js.map +1 -0
  137. package/dist/esm/ma-v2/decorators/installValidation.d.ts +71 -0
  138. package/dist/esm/ma-v2/decorators/installValidation.js +137 -0
  139. package/dist/esm/ma-v2/decorators/installValidation.js.map +1 -0
  140. package/dist/esm/ma-v2/mav2StaticImpl.d.ts +37 -0
  141. package/dist/esm/ma-v2/mav2StaticImpl.js +88 -0
  142. package/dist/esm/ma-v2/mav2StaticImpl.js.map +1 -0
  143. package/dist/esm/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts +556 -0
  144. package/dist/esm/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.js +716 -0
  145. package/dist/esm/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.js.map +1 -0
  146. package/dist/esm/ma-v2/modules/allowlist-module/module.d.ts +593 -0
  147. package/dist/esm/ma-v2/modules/allowlist-module/module.js +70 -0
  148. package/dist/esm/ma-v2/modules/allowlist-module/module.js.map +1 -0
  149. package/dist/esm/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts +312 -0
  150. package/dist/esm/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js +404 -0
  151. package/dist/esm/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js.map +1 -0
  152. package/dist/esm/ma-v2/modules/native-token-limit-module/module.d.ts +322 -0
  153. package/dist/esm/ma-v2/modules/native-token-limit-module/module.js +14 -0
  154. package/dist/esm/ma-v2/modules/native-token-limit-module/module.js.map +1 -0
  155. package/dist/esm/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts +186 -0
  156. package/dist/esm/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js +242 -0
  157. package/dist/esm/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js.map +1 -0
  158. package/dist/esm/ma-v2/modules/paymaster-guard-module/module.d.ts +196 -0
  159. package/dist/esm/ma-v2/modules/paymaster-guard-module/module.js +25 -0
  160. package/dist/esm/ma-v2/modules/paymaster-guard-module/module.js.map +1 -0
  161. package/dist/esm/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts +45 -0
  162. package/dist/esm/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js +331 -0
  163. package/dist/esm/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js.map +1 -0
  164. package/dist/esm/ma-v2/modules/single-signer-validation/module.d.ts +10 -0
  165. package/dist/esm/ma-v2/modules/single-signer-validation/module.js +16 -0
  166. package/dist/esm/ma-v2/modules/single-signer-validation/module.js.map +1 -0
  167. package/dist/esm/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts +229 -0
  168. package/dist/esm/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.js +296 -0
  169. package/dist/esm/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.js.map +1 -0
  170. package/dist/esm/ma-v2/modules/time-range-module/module.d.ts +254 -0
  171. package/dist/esm/ma-v2/modules/time-range-module/module.js +62 -0
  172. package/dist/esm/ma-v2/modules/time-range-module/module.js.map +1 -0
  173. package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +287 -0
  174. package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js +374 -0
  175. package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js.map +1 -0
  176. package/dist/esm/ma-v2/modules/webauthn-validation/module.d.ts +11 -0
  177. package/dist/esm/ma-v2/modules/webauthn-validation/module.js +16 -0
  178. package/dist/esm/ma-v2/modules/webauthn-validation/module.js.map +1 -0
  179. package/dist/esm/ma-v2/permissionBuilder.d.ts +158 -0
  180. package/dist/esm/ma-v2/permissionBuilder.js +557 -0
  181. package/dist/esm/ma-v2/permissionBuilder.js.map +1 -0
  182. package/dist/esm/ma-v2/predictAddress.d.ts +37 -0
  183. package/dist/esm/ma-v2/predictAddress.js +73 -0
  184. package/dist/esm/ma-v2/predictAddress.js.map +1 -0
  185. package/dist/esm/ma-v2/types.d.ts +57 -0
  186. package/dist/esm/ma-v2/types.js +9 -0
  187. package/dist/esm/ma-v2/types.js.map +1 -0
  188. package/dist/esm/ma-v2/utils/account.d.ts +85 -0
  189. package/dist/esm/ma-v2/utils/account.js +96 -0
  190. package/dist/esm/ma-v2/utils/account.js.map +1 -0
  191. package/dist/esm/ma-v2/utils/deferredActions.d.ts +29 -0
  192. package/dist/esm/ma-v2/utils/deferredActions.js +38 -0
  193. package/dist/esm/ma-v2/utils/deferredActions.js.map +1 -0
  194. package/dist/esm/ma-v2/utils/hooks.d.ts +55 -0
  195. package/dist/esm/ma-v2/utils/hooks.js +78 -0
  196. package/dist/esm/ma-v2/utils/hooks.js.map +1 -0
  197. package/dist/esm/ma-v2/utils/signature.d.ts +63 -0
  198. package/dist/esm/ma-v2/utils/signature.js +84 -0
  199. package/dist/esm/ma-v2/utils/signature.js.map +1 -0
  200. package/dist/esm/test-utils/getAccountAddressViaEntryPoint.d.ts +18 -0
  201. package/dist/esm/test-utils/getAccountAddressViaEntryPoint.js +31 -0
  202. package/dist/esm/test-utils/getAccountAddressViaEntryPoint.js.map +1 -0
  203. package/dist/esm/types.d.ts +30 -0
  204. package/dist/esm/types.js +2 -0
  205. package/dist/esm/types.js.map +1 -0
  206. package/dist/esm/utils.d.ts +6 -0
  207. package/dist/esm/utils.js +52 -0
  208. package/dist/esm/utils.js.map +1 -0
  209. package/dist/esm/version.d.ts +1 -0
  210. package/dist/esm/version.js +4 -0
  211. package/dist/esm/version.js.map +1 -0
  212. package/dist/types/errors/EntityIdOverrideError.d.ts +12 -0
  213. package/dist/types/errors/EntityIdOverrideError.d.ts.map +1 -0
  214. package/dist/types/errors/InvalidDeferredActionNonceError.d.ts +12 -0
  215. package/dist/types/errors/InvalidDeferredActionNonceError.d.ts.map +1 -0
  216. package/dist/types/errors/InvalidEntityIdError.d.ts +14 -0
  217. package/dist/types/errors/InvalidEntityIdError.d.ts.map +1 -0
  218. package/dist/types/errors/InvalidNonceKeyError.d.ts +14 -0
  219. package/dist/types/errors/InvalidNonceKeyError.d.ts.map +1 -0
  220. package/dist/types/errors/InvalidOwnerError.d.ts +14 -0
  221. package/dist/types/errors/InvalidOwnerError.d.ts.map +1 -0
  222. package/dist/types/errors/permissionBuilderErrors.d.ts +151 -0
  223. package/dist/types/errors/permissionBuilderErrors.d.ts.map +1 -0
  224. package/dist/types/index.d.ts +60 -0
  225. package/dist/types/index.d.ts.map +1 -0
  226. package/dist/types/light-account/abis/LightAccountAbi_v1.d.ts +533 -0
  227. package/dist/types/light-account/abis/LightAccountAbi_v1.d.ts.map +1 -0
  228. package/dist/types/light-account/abis/LightAccountAbi_v2.d.ts +492 -0
  229. package/dist/types/light-account/abis/LightAccountAbi_v2.d.ts.map +1 -0
  230. package/dist/types/light-account/abis/LightAccountFactoryAbi_v1.d.ts +56 -0
  231. package/dist/types/light-account/abis/LightAccountFactoryAbi_v1.d.ts.map +1 -0
  232. package/dist/types/light-account/abis/LightAccountFactoryAbi_v2.d.ts +257 -0
  233. package/dist/types/light-account/abis/LightAccountFactoryAbi_v2.d.ts.map +1 -0
  234. package/dist/types/light-account/abis/MultiOwnerLightAccountAbi.d.ts +508 -0
  235. package/dist/types/light-account/abis/MultiOwnerLightAccountAbi.d.ts.map +1 -0
  236. package/dist/types/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts +287 -0
  237. package/dist/types/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts.map +1 -0
  238. package/dist/types/light-account/abis/OZ_ERC1967Proxy.d.ts +14 -0
  239. package/dist/types/light-account/abis/OZ_ERC1967Proxy.d.ts.map +1 -0
  240. package/dist/types/light-account/accounts/account.d.ts +23 -0
  241. package/dist/types/light-account/accounts/account.d.ts.map +1 -0
  242. package/dist/types/light-account/accounts/base.d.ts +29 -0
  243. package/dist/types/light-account/accounts/base.d.ts.map +1 -0
  244. package/dist/types/light-account/accounts/calldataCodec.d.ts +4 -0
  245. package/dist/types/light-account/accounts/calldataCodec.d.ts.map +1 -0
  246. package/dist/types/light-account/accounts/multi-owner-account.d.ts +21 -0
  247. package/dist/types/light-account/accounts/multi-owner-account.d.ts.map +1 -0
  248. package/dist/types/light-account/decorators/multiOwner.d.ts +18 -0
  249. package/dist/types/light-account/decorators/multiOwner.d.ts.map +1 -0
  250. package/dist/types/light-account/decorators/singleOwner.d.ts +17 -0
  251. package/dist/types/light-account/decorators/singleOwner.d.ts.map +1 -0
  252. package/dist/types/light-account/lightAccountStaticImpl.d.ts +25 -0
  253. package/dist/types/light-account/lightAccountStaticImpl.d.ts.map +1 -0
  254. package/dist/types/light-account/predictAddress.d.ts +36 -0
  255. package/dist/types/light-account/predictAddress.d.ts.map +1 -0
  256. package/dist/types/light-account/registry.d.ts +7116 -0
  257. package/dist/types/light-account/registry.d.ts.map +1 -0
  258. package/dist/types/light-account/utils.d.ts +1455 -0
  259. package/dist/types/light-account/utils.d.ts.map +1 -0
  260. package/dist/types/logger.d.ts +3 -0
  261. package/dist/types/logger.d.ts.map +1 -0
  262. package/dist/types/ma-v1/abis/IStandardExecutor.d.ts +51 -0
  263. package/dist/types/ma-v1/abis/IStandardExecutor.d.ts.map +1 -0
  264. package/dist/types/ma-v1/abis/MultiOwnerModularAccountFactory.d.ts +235 -0
  265. package/dist/types/ma-v1/abis/MultiOwnerModularAccountFactory.d.ts.map +1 -0
  266. package/dist/types/ma-v1/abis/MultiOwnerPlugin.d.ts +699 -0
  267. package/dist/types/ma-v1/abis/MultiOwnerPlugin.d.ts.map +1 -0
  268. package/dist/types/ma-v1/abis/MultiOwnerPluginExecutionFunction.d.ts +68 -0
  269. package/dist/types/ma-v1/abis/MultiOwnerPluginExecutionFunction.d.ts.map +1 -0
  270. package/dist/types/ma-v1/abis/UpgradeableModularAccount.d.ts +881 -0
  271. package/dist/types/ma-v1/abis/UpgradeableModularAccount.d.ts.map +1 -0
  272. package/dist/types/ma-v1/account.d.ts +17 -0
  273. package/dist/types/ma-v1/account.d.ts.map +1 -0
  274. package/dist/types/ma-v1/accounts/base.d.ts +30 -0
  275. package/dist/types/ma-v1/accounts/base.d.ts.map +1 -0
  276. package/dist/types/ma-v1/accounts/multi-owner-account.d.ts +23 -0
  277. package/dist/types/ma-v1/accounts/multi-owner-account.d.ts.map +1 -0
  278. package/dist/types/ma-v1/decorators/multiOwner.d.ts +18 -0
  279. package/dist/types/ma-v1/decorators/multiOwner.d.ts.map +1 -0
  280. package/dist/types/ma-v1/mav1StaticImpl.d.ts +16 -0
  281. package/dist/types/ma-v1/mav1StaticImpl.d.ts.map +1 -0
  282. package/dist/types/ma-v1/predictAddress.d.ts +29 -0
  283. package/dist/types/ma-v1/predictAddress.d.ts.map +1 -0
  284. package/dist/types/ma-v2/abis/accountFactoryAbi.d.ts +349 -0
  285. package/dist/types/ma-v2/abis/accountFactoryAbi.d.ts.map +1 -0
  286. package/dist/types/ma-v2/abis/entityIdAndNonceReader.d.ts +10 -0
  287. package/dist/types/ma-v2/abis/entityIdAndNonceReader.d.ts.map +1 -0
  288. package/dist/types/ma-v2/abis/modularAccountAbi.d.ts +955 -0
  289. package/dist/types/ma-v2/abis/modularAccountAbi.d.ts.map +1 -0
  290. package/dist/types/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts +992 -0
  291. package/dist/types/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts.map +1 -0
  292. package/dist/types/ma-v2/abis/semiModularAccountStorageAbi.d.ts +1002 -0
  293. package/dist/types/ma-v2/abis/semiModularAccountStorageAbi.d.ts.map +1 -0
  294. package/dist/types/ma-v2/abis/webAuthnFactoryAbi.d.ts +331 -0
  295. package/dist/types/ma-v2/abis/webAuthnFactoryAbi.d.ts.map +1 -0
  296. package/dist/types/ma-v2/accounts/account.d.ts +33 -0
  297. package/dist/types/ma-v2/accounts/account.d.ts.map +1 -0
  298. package/dist/types/ma-v2/accounts/base.d.ts +41 -0
  299. package/dist/types/ma-v2/accounts/base.d.ts.map +1 -0
  300. package/dist/types/ma-v2/decorators/deferralActions.d.ts +52 -0
  301. package/dist/types/ma-v2/decorators/deferralActions.d.ts.map +1 -0
  302. package/dist/types/ma-v2/decorators/installValidation.d.ts +72 -0
  303. package/dist/types/ma-v2/decorators/installValidation.d.ts.map +1 -0
  304. package/dist/types/ma-v2/mav2StaticImpl.d.ts +38 -0
  305. package/dist/types/ma-v2/mav2StaticImpl.d.ts.map +1 -0
  306. package/dist/types/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts +557 -0
  307. package/dist/types/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts.map +1 -0
  308. package/dist/types/ma-v2/modules/allowlist-module/module.d.ts +594 -0
  309. package/dist/types/ma-v2/modules/allowlist-module/module.d.ts.map +1 -0
  310. package/dist/types/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts +313 -0
  311. package/dist/types/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts.map +1 -0
  312. package/dist/types/ma-v2/modules/native-token-limit-module/module.d.ts +323 -0
  313. package/dist/types/ma-v2/modules/native-token-limit-module/module.d.ts.map +1 -0
  314. package/dist/types/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts +187 -0
  315. package/dist/types/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts.map +1 -0
  316. package/dist/types/ma-v2/modules/paymaster-guard-module/module.d.ts +197 -0
  317. package/dist/types/ma-v2/modules/paymaster-guard-module/module.d.ts.map +1 -0
  318. package/dist/types/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts +46 -0
  319. package/dist/types/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts.map +1 -0
  320. package/dist/types/ma-v2/modules/single-signer-validation/module.d.ts +11 -0
  321. package/dist/types/ma-v2/modules/single-signer-validation/module.d.ts.map +1 -0
  322. package/dist/types/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts +230 -0
  323. package/dist/types/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts.map +1 -0
  324. package/dist/types/ma-v2/modules/time-range-module/module.d.ts +255 -0
  325. package/dist/types/ma-v2/modules/time-range-module/module.d.ts.map +1 -0
  326. package/dist/types/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +288 -0
  327. package/dist/types/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts.map +1 -0
  328. package/dist/types/ma-v2/modules/webauthn-validation/module.d.ts +12 -0
  329. package/dist/types/ma-v2/modules/webauthn-validation/module.d.ts.map +1 -0
  330. package/dist/types/ma-v2/permissionBuilder.d.ts +159 -0
  331. package/dist/types/ma-v2/permissionBuilder.d.ts.map +1 -0
  332. package/dist/types/ma-v2/predictAddress.d.ts +38 -0
  333. package/dist/types/ma-v2/predictAddress.d.ts.map +1 -0
  334. package/dist/types/ma-v2/types.d.ts +58 -0
  335. package/dist/types/ma-v2/types.d.ts.map +1 -0
  336. package/dist/types/ma-v2/utils/account.d.ts +86 -0
  337. package/dist/types/ma-v2/utils/account.d.ts.map +1 -0
  338. package/dist/types/ma-v2/utils/deferredActions.d.ts +30 -0
  339. package/dist/types/ma-v2/utils/deferredActions.d.ts.map +1 -0
  340. package/dist/types/ma-v2/utils/hooks.d.ts +56 -0
  341. package/dist/types/ma-v2/utils/hooks.d.ts.map +1 -0
  342. package/dist/types/ma-v2/utils/signature.d.ts +64 -0
  343. package/dist/types/ma-v2/utils/signature.d.ts.map +1 -0
  344. package/dist/types/test-utils/getAccountAddressViaEntryPoint.d.ts +19 -0
  345. package/dist/types/test-utils/getAccountAddressViaEntryPoint.d.ts.map +1 -0
  346. package/dist/types/types.d.ts +31 -0
  347. package/dist/types/types.d.ts.map +1 -0
  348. package/dist/types/utils.d.ts +7 -0
  349. package/dist/types/utils.d.ts.map +1 -0
  350. package/dist/types/version.d.ts +2 -0
  351. package/dist/types/version.d.ts.map +1 -0
  352. package/package.json +63 -0
  353. package/src/errors/EntityIdOverrideError.ts +15 -0
  354. package/src/errors/InvalidDeferredActionNonceError.ts +15 -0
  355. package/src/errors/InvalidEntityIdError.ts +19 -0
  356. package/src/errors/InvalidNonceKeyError.ts +19 -0
  357. package/src/errors/InvalidOwnerError.ts +17 -0
  358. package/src/errors/permissionBuilderErrors.ts +212 -0
  359. package/src/index.ts +152 -0
  360. package/src/light-account/abis/LightAccountAbi_v1.ts +378 -0
  361. package/src/light-account/abis/LightAccountAbi_v2.ts +354 -0
  362. package/src/light-account/abis/LightAccountFactoryAbi_v1.ts +74 -0
  363. package/src/light-account/abis/LightAccountFactoryAbi_v2.ts +209 -0
  364. package/src/light-account/abis/MultiOwnerLightAccountAbi.ts +371 -0
  365. package/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.ts +228 -0
  366. package/src/light-account/abis/OZ_ERC1967Proxy.ts +19 -0
  367. package/src/light-account/accounts/account.ts +154 -0
  368. package/src/light-account/accounts/base.ts +340 -0
  369. package/src/light-account/accounts/calldataCodec.ts +101 -0
  370. package/src/light-account/accounts/multi-owner-account.ts +138 -0
  371. package/src/light-account/decorators/multiOwner.ts +69 -0
  372. package/src/light-account/decorators/singleOwner.ts +61 -0
  373. package/src/light-account/lightAccountStaticImpl.ts +172 -0
  374. package/src/light-account/predictAddress.ts +174 -0
  375. package/src/light-account/registry.ts +72 -0
  376. package/src/light-account/utils.ts +95 -0
  377. package/src/logger.ts +9 -0
  378. package/src/ma-v1/abis/IStandardExecutor.ts +31 -0
  379. package/src/ma-v1/abis/MultiOwnerModularAccountFactory.ts +190 -0
  380. package/src/ma-v1/abis/MultiOwnerPlugin.ts +528 -0
  381. package/src/ma-v1/abis/MultiOwnerPluginExecutionFunction.ts +37 -0
  382. package/src/ma-v1/abis/UpgradeableModularAccount.ts +645 -0
  383. package/src/ma-v1/account.ts +19 -0
  384. package/src/ma-v1/accounts/base.ts +245 -0
  385. package/src/ma-v1/accounts/multi-owner-account.ts +162 -0
  386. package/src/ma-v1/decorators/multiOwner.ts +69 -0
  387. package/src/ma-v1/mav1StaticImpl.ts +53 -0
  388. package/src/ma-v1/predictAddress.ts +85 -0
  389. package/src/ma-v2/abis/accountFactoryAbi.ts +644 -0
  390. package/src/ma-v2/abis/entityIdAndNonceReader.ts +23 -0
  391. package/src/ma-v2/abis/modularAccountAbi.ts +1241 -0
  392. package/src/ma-v2/abis/semiModularAccountBytecodeAbi.ts +1288 -0
  393. package/src/ma-v2/abis/semiModularAccountStorageAbi.ts +1301 -0
  394. package/src/ma-v2/abis/webAuthnFactoryAbi.ts +259 -0
  395. package/src/ma-v2/accounts/account.ts +211 -0
  396. package/src/ma-v2/accounts/base.ts +569 -0
  397. package/src/ma-v2/decorators/deferralActions.ts +193 -0
  398. package/src/ma-v2/decorators/installValidation.ts +257 -0
  399. package/src/ma-v2/mav2StaticImpl.ts +134 -0
  400. package/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.ts +715 -0
  401. package/src/ma-v2/modules/allowlist-module/module.ts +116 -0
  402. package/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.ts +403 -0
  403. package/src/ma-v2/modules/native-token-limit-module/module.ts +21 -0
  404. package/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.ts +241 -0
  405. package/src/ma-v2/modules/paymaster-guard-module/module.ts +35 -0
  406. package/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.ts +330 -0
  407. package/src/ma-v2/modules/single-signer-validation/module.ts +24 -0
  408. package/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.ts +295 -0
  409. package/src/ma-v2/modules/time-range-module/module.ts +96 -0
  410. package/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.ts +373 -0
  411. package/src/ma-v2/modules/webauthn-validation/module.ts +28 -0
  412. package/src/ma-v2/permissionBuilder.ts +761 -0
  413. package/src/ma-v2/predictAddress.ts +149 -0
  414. package/src/ma-v2/types.ts +73 -0
  415. package/src/ma-v2/utils/account.ts +137 -0
  416. package/src/ma-v2/utils/deferredActions.ts +66 -0
  417. package/src/ma-v2/utils/hooks.ts +79 -0
  418. package/src/ma-v2/utils/signature.ts +129 -0
  419. package/src/test-utils/getAccountAddressViaEntryPoint.ts +43 -0
  420. package/src/types.ts +58 -0
  421. package/src/utils.ts +85 -0
  422. package/src/version.ts +3 -0
@@ -0,0 +1,28 @@
1
+ import { type Address } from "viem";
2
+ export type PredictMultiOwnerModularAccountV1AddressParams = {
3
+ salt: bigint;
4
+ ownerAddresses: Address[];
5
+ factoryAddress?: Address;
6
+ };
7
+ /**
8
+ * Predicts the address of a MultiOwnerModularAccountV1 smart account before deployment.
9
+ *
10
+ * This function uses CREATE2 to deterministically compute the account address based on the factory address,
11
+ * salt, and owner addresses. The predicted address will match the actual deployed address if the same
12
+ * parameters are used during deployment.
13
+ *
14
+ * @param {PredictMultiOwnerModularAccountV1AddressParams} params The parameters for predicting the account address
15
+ * @param {bigint} params.salt A unique value used to generate different account addresses for the same set of owners
16
+ * @param {Address[]} params.ownerAddresses Array of owner addresses that will control the account. Must be deduplicated, sorted in ascending order, and include the signer address. Cannot be empty and must contain at most 100 addresses.
17
+ * @param {Address} [params.factoryAddress] The factory contract address that will deploy the account. Defaults to the standard MultiOwnerModularAccountV1 factory address.
18
+ * @returns {Address} The predicted address where the account will be deployed
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const predictedAddress = predictMultiOwnerModularAccountV1Address({
23
+ * salt: 0n,
24
+ * ownerAddresses: ["0x1234...", "0x5678..."]
25
+ * });
26
+ * ```
27
+ */
28
+ export declare const predictMultiOwnerModularAccountV1Address: ({ salt, ownerAddresses, factoryAddress, }: PredictMultiOwnerModularAccountV1AddressParams) => Address;
@@ -0,0 +1,51 @@
1
+ import { getContractAddress, encodeAbiParameters, keccak256, concatHex, } from "viem";
2
+ import { DefaultMaV1Address } from "./account.js";
3
+ import { BaseError } from "@alchemy/common";
4
+ /**
5
+ * Predicts the address of a MultiOwnerModularAccountV1 smart account before deployment.
6
+ *
7
+ * This function uses CREATE2 to deterministically compute the account address based on the factory address,
8
+ * salt, and owner addresses. The predicted address will match the actual deployed address if the same
9
+ * parameters are used during deployment.
10
+ *
11
+ * @param {PredictMultiOwnerModularAccountV1AddressParams} params The parameters for predicting the account address
12
+ * @param {bigint} params.salt A unique value used to generate different account addresses for the same set of owners
13
+ * @param {Address[]} params.ownerAddresses Array of owner addresses that will control the account. Must be deduplicated, sorted in ascending order, and include the signer address. Cannot be empty and must contain at most 100 addresses.
14
+ * @param {Address} [params.factoryAddress] The factory contract address that will deploy the account. Defaults to the standard MultiOwnerModularAccountV1 factory address.
15
+ * @returns {Address} The predicted address where the account will be deployed
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const predictedAddress = predictMultiOwnerModularAccountV1Address({
20
+ * salt: 0n,
21
+ * ownerAddresses: ["0x1234...", "0x5678..."]
22
+ * });
23
+ * ```
24
+ */
25
+ export const predictMultiOwnerModularAccountV1Address = ({ salt, ownerAddresses, factoryAddress = DefaultMaV1Address.MULTI_OWNER_MAV1_FACTORY, }) => {
26
+ if (ownerAddresses.length === 0) {
27
+ throw new BaseError("Owners array cannot be empty");
28
+ }
29
+ if (ownerAddresses.length > 100) {
30
+ throw new Error("Maximum 100 owners on creation");
31
+ }
32
+ const combinedSalt = getCombinedSalt(salt, ownerAddresses);
33
+ const initCodeHash = getERC1967ProxyInitCodeHash(DefaultMaV1Address.IMPLEMENTATION_ADDRESS);
34
+ return getContractAddress({
35
+ from: factoryAddress,
36
+ opcode: "CREATE2",
37
+ salt: combinedSalt,
38
+ bytecodeHash: initCodeHash,
39
+ });
40
+ };
41
+ function getCombinedSalt(salt, owners) {
42
+ const encodedOwners = encodeAbiParameters([{ type: "address[]" }], [owners]);
43
+ const saltAndOwners = encodeAbiParameters([{ type: "uint256" }, { type: "bytes" }], [salt, encodedOwners]);
44
+ return keccak256(saltAndOwners);
45
+ }
46
+ function getERC1967ProxyInitCodeHash(implementationAddress) {
47
+ const ERC1967_PROXY_BYTECODE = "0x60406080815261042c908138038061001681610218565b93843982019181818403126102135780516001600160a01b038116808203610213576020838101516001600160401b0394919391858211610213570186601f820112156102135780519061007161006c83610253565b610218565b918083528583019886828401011161021357888661008f930161026e565b813b156101b9577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916841790556000927fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28051158015906101b2575b61010b575b855160e790816103458239f35b855194606086019081118682101761019e578697849283926101889952602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b8a8901525190845af4913d15610194573d9061017a61006c83610253565b91825281943d92013e610291565b508038808080806100fe565b5060609250610291565b634e487b7160e01b84526041600452602484fd5b50826100f9565b855162461bcd60e51b815260048101859052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761023d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161023d57601f01601f191660200190565b60005b8381106102815750506000910152565b8181015183820152602001610271565b919290156102f357508151156102a5575090565b3b156102ae5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156103065750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610336815180928160248601526020868601910161026e565b601f01601f19168101030190fdfe60806040523615605f5773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f35b3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f3fea26469706673582212208f3104255ee3c201238ea03e118ee6ec0a2cff51cbfbdc3af1727982a5a959a564736f6c63430008160033";
48
+ const constructorArgs = encodeAbiParameters([{ type: "address" }, { type: "bytes" }], [implementationAddress, "0x"]);
49
+ return keccak256(concatHex([ERC1967_PROXY_BYTECODE, constructorArgs]));
50
+ }
51
+ //# sourceMappingURL=predictAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predictAddress.js","sourceRoot":"","sources":["../../../src/ma-v1/predictAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EACnB,SAAS,EACT,SAAS,GAEV,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,EACvD,IAAI,EACJ,cAAc,EACd,cAAc,GAAG,kBAAkB,CAAC,wBAAwB,GACb,EAAW,EAAE;IAC5D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAE3D,MAAM,YAAY,GAAG,2BAA2B,CAC9C,kBAAkB,CAAC,sBAAsB,CAC1C,CAAC;IAEF,OAAO,kBAAkB,CAAC;QACxB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,YAAY;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,IAAY,EAAE,MAAiB;IACtD,MAAM,aAAa,GAAG,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,mBAAmB,CACvC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACxC,CAAC,IAAI,EAAE,aAAa,CAAC,CACtB,CAAC;IACF,OAAO,SAAS,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,2BAA2B,CAAC,qBAA8B;IACjE,MAAM,sBAAsB,GAC1B,4lEAAqmE,CAAC;IAExmE,MAAM,eAAe,GAAG,mBAAmB,CACzC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACxC,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAC9B,CAAC;IAEF,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC","sourcesContent":["import {\n type Address,\n getContractAddress,\n encodeAbiParameters,\n keccak256,\n concatHex,\n type Hex,\n} from \"viem\";\nimport { DefaultMaV1Address } from \"./account.js\";\nimport { BaseError } from \"@alchemy/common\";\n\nexport type PredictMultiOwnerModularAccountV1AddressParams = {\n salt: bigint;\n /* Owner addresses must be already deduped, sorted in ascending order, and have the signer address included. */\n ownerAddresses: Address[];\n factoryAddress?: Address;\n};\n\n/**\n * Predicts the address of a MultiOwnerModularAccountV1 smart account before deployment.\n *\n * This function uses CREATE2 to deterministically compute the account address based on the factory address,\n * salt, and owner addresses. The predicted address will match the actual deployed address if the same\n * parameters are used during deployment.\n *\n * @param {PredictMultiOwnerModularAccountV1AddressParams} params The parameters for predicting the account address\n * @param {bigint} params.salt A unique value used to generate different account addresses for the same set of owners\n * @param {Address[]} params.ownerAddresses Array of owner addresses that will control the account. Must be deduplicated, sorted in ascending order, and include the signer address. Cannot be empty and must contain at most 100 addresses.\n * @param {Address} [params.factoryAddress] The factory contract address that will deploy the account. Defaults to the standard MultiOwnerModularAccountV1 factory address.\n * @returns {Address} The predicted address where the account will be deployed\n *\n * @example\n * ```ts\n * const predictedAddress = predictMultiOwnerModularAccountV1Address({\n * salt: 0n,\n * ownerAddresses: [\"0x1234...\", \"0x5678...\"]\n * });\n * ```\n */\nexport const predictMultiOwnerModularAccountV1Address = ({\n salt,\n ownerAddresses,\n factoryAddress = DefaultMaV1Address.MULTI_OWNER_MAV1_FACTORY,\n}: PredictMultiOwnerModularAccountV1AddressParams): Address => {\n if (ownerAddresses.length === 0) {\n throw new BaseError(\"Owners array cannot be empty\");\n }\n if (ownerAddresses.length > 100) {\n throw new Error(\"Maximum 100 owners on creation\");\n }\n\n const combinedSalt = getCombinedSalt(salt, ownerAddresses);\n\n const initCodeHash = getERC1967ProxyInitCodeHash(\n DefaultMaV1Address.IMPLEMENTATION_ADDRESS,\n );\n\n return getContractAddress({\n from: factoryAddress,\n opcode: \"CREATE2\",\n salt: combinedSalt,\n bytecodeHash: initCodeHash,\n });\n};\n\nfunction getCombinedSalt(salt: bigint, owners: Address[]): Hex {\n const encodedOwners = encodeAbiParameters([{ type: \"address[]\" }], [owners]);\n const saltAndOwners = encodeAbiParameters(\n [{ type: \"uint256\" }, { type: \"bytes\" }],\n [salt, encodedOwners],\n );\n return keccak256(saltAndOwners);\n}\n\nfunction getERC1967ProxyInitCodeHash(implementationAddress: Address): Hex {\n const ERC1967_PROXY_BYTECODE =\n \"0x60406080815261042c908138038061001681610218565b93843982019181818403126102135780516001600160a01b038116808203610213576020838101516001600160401b0394919391858211610213570186601f820112156102135780519061007161006c83610253565b610218565b918083528583019886828401011161021357888661008f930161026e565b813b156101b9577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916841790556000927fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28051158015906101b2575b61010b575b855160e790816103458239f35b855194606086019081118682101761019e578697849283926101889952602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b8a8901525190845af4913d15610194573d9061017a61006c83610253565b91825281943d92013e610291565b508038808080806100fe565b5060609250610291565b634e487b7160e01b84526041600452602484fd5b50826100f9565b855162461bcd60e51b815260048101859052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761023d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161023d57601f01601f191660200190565b60005b8381106102815750506000910152565b8181015183820152602001610271565b919290156102f357508151156102a5575090565b3b156102ae5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156103065750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610336815180928160248601526020868601910161026e565b601f01601f19168101030190fdfe60806040523615605f5773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f35b3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f3fea26469706673582212208f3104255ee3c201238ea03e118ee6ec0a2cff51cbfbdc3af1727982a5a959a564736f6c63430008160033\" as const;\n\n const constructorArgs = encodeAbiParameters(\n [{ type: \"address\" }, { type: \"bytes\" }],\n [implementationAddress, \"0x\"],\n );\n\n return keccak256(concatHex([ERC1967_PROXY_BYTECODE, constructorArgs]));\n}\n"]}
@@ -0,0 +1,348 @@
1
+ export declare const accountFactoryAbi: readonly [{
2
+ readonly type: "constructor";
3
+ readonly inputs: readonly [{
4
+ readonly name: "_entryPoint";
5
+ readonly type: "address";
6
+ readonly internalType: "contract IEntryPoint";
7
+ }, {
8
+ readonly name: "_accountImpl";
9
+ readonly type: "address";
10
+ readonly internalType: "contract ModularAccount";
11
+ }, {
12
+ readonly name: "_semiModularImpl";
13
+ readonly type: "address";
14
+ readonly internalType: "contract SemiModularAccountBytecode";
15
+ }, {
16
+ readonly name: "_singleSignerValidationModule";
17
+ readonly type: "address";
18
+ readonly internalType: "address";
19
+ }, {
20
+ readonly name: "_webAuthnValidationModule";
21
+ readonly type: "address";
22
+ readonly internalType: "address";
23
+ }, {
24
+ readonly name: "owner";
25
+ readonly type: "address";
26
+ readonly internalType: "address";
27
+ }];
28
+ readonly stateMutability: "nonpayable";
29
+ }, {
30
+ readonly type: "function";
31
+ readonly name: "ACCOUNT_IMPL";
32
+ readonly inputs: readonly [];
33
+ readonly outputs: readonly [{
34
+ readonly name: "";
35
+ readonly type: "address";
36
+ readonly internalType: "contract ModularAccount";
37
+ }];
38
+ readonly stateMutability: "view";
39
+ }, {
40
+ readonly type: "function";
41
+ readonly name: "ENTRY_POINT";
42
+ readonly inputs: readonly [];
43
+ readonly outputs: readonly [{
44
+ readonly name: "";
45
+ readonly type: "address";
46
+ readonly internalType: "contract IEntryPoint";
47
+ }];
48
+ readonly stateMutability: "view";
49
+ }, {
50
+ readonly type: "function";
51
+ readonly name: "SEMI_MODULAR_ACCOUNT_IMPL";
52
+ readonly inputs: readonly [];
53
+ readonly outputs: readonly [{
54
+ readonly name: "";
55
+ readonly type: "address";
56
+ readonly internalType: "contract SemiModularAccountBytecode";
57
+ }];
58
+ readonly stateMutability: "view";
59
+ }, {
60
+ readonly type: "function";
61
+ readonly name: "SINGLE_SIGNER_VALIDATION_MODULE";
62
+ readonly inputs: readonly [];
63
+ readonly outputs: readonly [{
64
+ readonly name: "";
65
+ readonly type: "address";
66
+ readonly internalType: "address";
67
+ }];
68
+ readonly stateMutability: "view";
69
+ }, {
70
+ readonly type: "function";
71
+ readonly name: "WEBAUTHN_VALIDATION_MODULE";
72
+ readonly inputs: readonly [];
73
+ readonly outputs: readonly [{
74
+ readonly name: "";
75
+ readonly type: "address";
76
+ readonly internalType: "address";
77
+ }];
78
+ readonly stateMutability: "view";
79
+ }, {
80
+ readonly type: "function";
81
+ readonly name: "acceptOwnership";
82
+ readonly inputs: readonly [];
83
+ readonly outputs: readonly [];
84
+ readonly stateMutability: "nonpayable";
85
+ }, {
86
+ readonly type: "function";
87
+ readonly name: "addStake";
88
+ readonly inputs: readonly [{
89
+ readonly name: "unstakeDelay";
90
+ readonly type: "uint32";
91
+ readonly internalType: "uint32";
92
+ }];
93
+ readonly outputs: readonly [];
94
+ readonly stateMutability: "payable";
95
+ }, {
96
+ readonly type: "function";
97
+ readonly name: "createSemiModularAccount";
98
+ readonly inputs: readonly [{
99
+ readonly name: "owner";
100
+ readonly type: "address";
101
+ readonly internalType: "address";
102
+ }, {
103
+ readonly name: "salt";
104
+ readonly type: "uint256";
105
+ readonly internalType: "uint256";
106
+ }];
107
+ readonly outputs: readonly [{
108
+ readonly name: "";
109
+ readonly type: "address";
110
+ readonly internalType: "contract SemiModularAccountBytecode";
111
+ }];
112
+ readonly stateMutability: "nonpayable";
113
+ }, {
114
+ readonly type: "function";
115
+ readonly name: "getAddressSemiModular";
116
+ readonly inputs: readonly [{
117
+ readonly name: "owner";
118
+ readonly type: "address";
119
+ readonly internalType: "address";
120
+ }, {
121
+ readonly name: "salt";
122
+ readonly type: "uint256";
123
+ readonly internalType: "uint256";
124
+ }];
125
+ readonly outputs: readonly [{
126
+ readonly name: "";
127
+ readonly type: "address";
128
+ readonly internalType: "address";
129
+ }];
130
+ readonly stateMutability: "view";
131
+ }, {
132
+ readonly type: "function";
133
+ readonly name: "owner";
134
+ readonly inputs: readonly [];
135
+ readonly outputs: readonly [{
136
+ readonly name: "";
137
+ readonly type: "address";
138
+ readonly internalType: "address";
139
+ }];
140
+ readonly stateMutability: "view";
141
+ }, {
142
+ readonly type: "function";
143
+ readonly name: "pendingOwner";
144
+ readonly inputs: readonly [];
145
+ readonly outputs: readonly [{
146
+ readonly name: "";
147
+ readonly type: "address";
148
+ readonly internalType: "address";
149
+ }];
150
+ readonly stateMutability: "view";
151
+ }, {
152
+ readonly type: "function";
153
+ readonly name: "renounceOwnership";
154
+ readonly inputs: readonly [];
155
+ readonly outputs: readonly [];
156
+ readonly stateMutability: "view";
157
+ }, {
158
+ readonly type: "function";
159
+ readonly name: "transferOwnership";
160
+ readonly inputs: readonly [{
161
+ readonly name: "newOwner";
162
+ readonly type: "address";
163
+ readonly internalType: "address";
164
+ }];
165
+ readonly outputs: readonly [];
166
+ readonly stateMutability: "nonpayable";
167
+ }, {
168
+ readonly type: "function";
169
+ readonly name: "unlockStake";
170
+ readonly inputs: readonly [];
171
+ readonly outputs: readonly [];
172
+ readonly stateMutability: "nonpayable";
173
+ }, {
174
+ readonly type: "function";
175
+ readonly name: "withdraw";
176
+ readonly inputs: readonly [{
177
+ readonly name: "to";
178
+ readonly type: "address";
179
+ readonly internalType: "address payable";
180
+ }, {
181
+ readonly name: "token";
182
+ readonly type: "address";
183
+ readonly internalType: "address";
184
+ }, {
185
+ readonly name: "amount";
186
+ readonly type: "uint256";
187
+ readonly internalType: "uint256";
188
+ }];
189
+ readonly outputs: readonly [];
190
+ readonly stateMutability: "nonpayable";
191
+ }, {
192
+ readonly type: "function";
193
+ readonly name: "withdrawStake";
194
+ readonly inputs: readonly [{
195
+ readonly name: "withdrawAddress";
196
+ readonly type: "address";
197
+ readonly internalType: "address payable";
198
+ }];
199
+ readonly outputs: readonly [];
200
+ readonly stateMutability: "nonpayable";
201
+ }, {
202
+ readonly type: "event";
203
+ readonly name: "ModularAccountDeployed";
204
+ readonly inputs: readonly [{
205
+ readonly name: "account";
206
+ readonly type: "address";
207
+ readonly indexed: true;
208
+ readonly internalType: "address";
209
+ }, {
210
+ readonly name: "owner";
211
+ readonly type: "address";
212
+ readonly indexed: true;
213
+ readonly internalType: "address";
214
+ }, {
215
+ readonly name: "salt";
216
+ readonly type: "uint256";
217
+ readonly indexed: false;
218
+ readonly internalType: "uint256";
219
+ }];
220
+ readonly anonymous: false;
221
+ }, {
222
+ readonly type: "event";
223
+ readonly name: "OwnershipTransferStarted";
224
+ readonly inputs: readonly [{
225
+ readonly name: "previousOwner";
226
+ readonly type: "address";
227
+ readonly indexed: true;
228
+ readonly internalType: "address";
229
+ }, {
230
+ readonly name: "newOwner";
231
+ readonly type: "address";
232
+ readonly indexed: true;
233
+ readonly internalType: "address";
234
+ }];
235
+ readonly anonymous: false;
236
+ }, {
237
+ readonly type: "event";
238
+ readonly name: "OwnershipTransferred";
239
+ readonly inputs: readonly [{
240
+ readonly name: "previousOwner";
241
+ readonly type: "address";
242
+ readonly indexed: true;
243
+ readonly internalType: "address";
244
+ }, {
245
+ readonly name: "newOwner";
246
+ readonly type: "address";
247
+ readonly indexed: true;
248
+ readonly internalType: "address";
249
+ }];
250
+ readonly anonymous: false;
251
+ }, {
252
+ readonly type: "event";
253
+ readonly name: "SemiModularAccountDeployed";
254
+ readonly inputs: readonly [{
255
+ readonly name: "account";
256
+ readonly type: "address";
257
+ readonly indexed: true;
258
+ readonly internalType: "address";
259
+ }, {
260
+ readonly name: "owner";
261
+ readonly type: "address";
262
+ readonly indexed: true;
263
+ readonly internalType: "address";
264
+ }, {
265
+ readonly name: "salt";
266
+ readonly type: "uint256";
267
+ readonly indexed: false;
268
+ readonly internalType: "uint256";
269
+ }];
270
+ readonly anonymous: false;
271
+ }, {
272
+ readonly type: "event";
273
+ readonly name: "WebAuthnModularAccountDeployed";
274
+ readonly inputs: readonly [{
275
+ readonly name: "account";
276
+ readonly type: "address";
277
+ readonly indexed: true;
278
+ readonly internalType: "address";
279
+ }, {
280
+ readonly name: "ownerX";
281
+ readonly type: "uint256";
282
+ readonly indexed: true;
283
+ readonly internalType: "uint256";
284
+ }, {
285
+ readonly name: "ownerY";
286
+ readonly type: "uint256";
287
+ readonly indexed: true;
288
+ readonly internalType: "uint256";
289
+ }, {
290
+ readonly name: "salt";
291
+ readonly type: "uint256";
292
+ readonly indexed: false;
293
+ readonly internalType: "uint256";
294
+ }];
295
+ readonly anonymous: false;
296
+ }, {
297
+ readonly type: "error";
298
+ readonly name: "AddressEmptyCode";
299
+ readonly inputs: readonly [{
300
+ readonly name: "target";
301
+ readonly type: "address";
302
+ readonly internalType: "address";
303
+ }];
304
+ }, {
305
+ readonly type: "error";
306
+ readonly name: "AddressInsufficientBalance";
307
+ readonly inputs: readonly [{
308
+ readonly name: "account";
309
+ readonly type: "address";
310
+ readonly internalType: "address";
311
+ }];
312
+ }, {
313
+ readonly type: "error";
314
+ readonly name: "FailedInnerCall";
315
+ readonly inputs: readonly [];
316
+ }, {
317
+ readonly type: "error";
318
+ readonly name: "InvalidAction";
319
+ readonly inputs: readonly [];
320
+ }, {
321
+ readonly type: "error";
322
+ readonly name: "OwnableInvalidOwner";
323
+ readonly inputs: readonly [{
324
+ readonly name: "owner";
325
+ readonly type: "address";
326
+ readonly internalType: "address";
327
+ }];
328
+ }, {
329
+ readonly type: "error";
330
+ readonly name: "OwnableUnauthorizedAccount";
331
+ readonly inputs: readonly [{
332
+ readonly name: "account";
333
+ readonly type: "address";
334
+ readonly internalType: "address";
335
+ }];
336
+ }, {
337
+ readonly type: "error";
338
+ readonly name: "SafeERC20FailedOperation";
339
+ readonly inputs: readonly [{
340
+ readonly name: "token";
341
+ readonly type: "address";
342
+ readonly internalType: "address";
343
+ }];
344
+ }, {
345
+ readonly type: "error";
346
+ readonly name: "TransferFailed";
347
+ readonly inputs: readonly [];
348
+ }];