@account-kit/smart-contracts 4.0.0-alpha.0 → 4.0.0-alpha.10

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 (306) hide show
  1. package/dist/cjs/plugindefs/multi-owner/config.js +16 -17
  2. package/dist/cjs/plugindefs/multi-owner/config.js.map +1 -1
  3. package/dist/cjs/plugindefs/multisig/config.js +15 -15
  4. package/dist/cjs/plugindefs/multisig/config.js.map +1 -1
  5. package/dist/cjs/plugindefs/session-key/config.js +17 -17
  6. package/dist/cjs/plugindefs/session-key/config.js.map +1 -1
  7. package/dist/cjs/src/index.d.ts +4 -4
  8. package/dist/cjs/src/index.js +17 -17
  9. package/dist/cjs/src/index.js.map +1 -1
  10. package/dist/cjs/src/light-account/accounts/account.d.ts +5 -6
  11. package/dist/cjs/src/light-account/accounts/account.js +4 -3
  12. package/dist/cjs/src/light-account/accounts/account.js.map +1 -1
  13. package/dist/cjs/src/light-account/accounts/base.d.ts +7 -6
  14. package/dist/cjs/src/light-account/accounts/base.js +8 -8
  15. package/dist/cjs/src/light-account/accounts/base.js.map +1 -1
  16. package/dist/cjs/src/light-account/accounts/multiOwner.d.ts +5 -5
  17. package/dist/cjs/src/light-account/accounts/multiOwner.js +5 -6
  18. package/dist/cjs/src/light-account/accounts/multiOwner.js.map +1 -1
  19. package/dist/cjs/src/light-account/actions/transferOwnership.d.ts +1 -1
  20. package/dist/cjs/src/light-account/actions/transferOwnership.js +2 -1
  21. package/dist/cjs/src/light-account/actions/transferOwnership.js.map +1 -1
  22. package/dist/cjs/src/light-account/actions/updateOwners.js.map +1 -1
  23. package/dist/cjs/src/light-account/clients/alchemyClient.d.ts +1 -1
  24. package/dist/cjs/src/light-account/clients/alchemyClient.js.map +1 -1
  25. package/dist/cjs/src/light-account/clients/client.js +2 -1
  26. package/dist/cjs/src/light-account/clients/client.js.map +1 -1
  27. package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.d.ts +2 -2
  28. package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.js.map +1 -1
  29. package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.js +2 -1
  30. package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.js.map +1 -1
  31. package/dist/cjs/src/light-account/decorators/lightAccount.js.map +1 -1
  32. package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.js.map +1 -1
  33. package/dist/cjs/src/light-account/types.d.ts +23 -31
  34. package/dist/cjs/src/light-account/types.js.map +1 -1
  35. package/dist/cjs/src/light-account/utils.d.ts +7 -9
  36. package/dist/cjs/src/light-account/utils.js +63 -82
  37. package/dist/cjs/src/light-account/utils.js.map +1 -1
  38. package/dist/cjs/src/msca/account/multiOwnerAccount.js +2 -1
  39. package/dist/cjs/src/msca/account/multiOwnerAccount.js.map +1 -1
  40. package/dist/cjs/src/msca/account/multisigAccount.js +4 -3
  41. package/dist/cjs/src/msca/account/multisigAccount.js.map +1 -1
  42. package/dist/cjs/src/msca/account-loupe/decorator.js.map +1 -1
  43. package/dist/cjs/src/msca/client/alchemyClient.d.ts +1 -1
  44. package/dist/cjs/src/msca/client/alchemyClient.js.map +1 -1
  45. package/dist/cjs/src/msca/client/client.js.map +1 -1
  46. package/dist/cjs/src/msca/client/multiSigAlchemyClient.d.ts +1 -1
  47. package/dist/cjs/src/msca/client/multiSigAlchemyClient.js +1 -1
  48. package/dist/cjs/src/msca/client/multiSigAlchemyClient.js.map +1 -1
  49. package/dist/cjs/src/msca/errors.js.map +1 -1
  50. package/dist/cjs/src/msca/plugin-manager/decorator.d.ts +1 -1
  51. package/dist/cjs/src/msca/plugin-manager/decorator.js +6 -4
  52. package/dist/cjs/src/msca/plugin-manager/decorator.js.map +1 -1
  53. package/dist/cjs/src/msca/plugin-manager/installPlugin.js.map +1 -1
  54. package/dist/cjs/src/msca/plugins/multi-owner/extension.js.map +1 -1
  55. package/dist/cjs/src/msca/plugins/multi-owner/index.d.ts +1 -1
  56. package/dist/cjs/src/msca/plugins/multi-owner/index.js +2 -1
  57. package/dist/cjs/src/msca/plugins/multi-owner/index.js.map +1 -1
  58. package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.js +2 -2
  59. package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.js.map +1 -1
  60. package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.js +1 -1
  61. package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.js.map +1 -1
  62. package/dist/cjs/src/msca/plugins/multisig/extension.js.map +1 -1
  63. package/dist/cjs/src/msca/plugins/multisig/index.d.ts +1 -8
  64. package/dist/cjs/src/msca/plugins/multisig/index.js +1 -16
  65. package/dist/cjs/src/msca/plugins/multisig/index.js.map +1 -1
  66. package/dist/cjs/src/msca/plugins/multisig/middleware.d.ts +1 -1
  67. package/dist/cjs/src/msca/plugins/multisig/middleware.js +1 -1
  68. package/dist/cjs/src/msca/plugins/multisig/middleware.js.map +1 -1
  69. package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.d.ts +3 -2
  70. package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.js +2 -2
  71. package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.js.map +1 -1
  72. package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.js.map +1 -1
  73. package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.d.ts +2 -2
  74. package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.js.map +1 -1
  75. package/dist/cjs/src/msca/plugins/multisig/utils/index.d.ts +4 -0
  76. package/dist/cjs/src/msca/plugins/multisig/utils/index.js.map +1 -1
  77. package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +3 -2
  78. package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.js.map +1 -1
  79. package/dist/cjs/src/msca/plugins/session-key/extension.js.map +1 -1
  80. package/dist/cjs/src/msca/plugins/session-key/index.d.ts +1 -1
  81. package/dist/cjs/src/msca/plugins/session-key/index.js +3 -1
  82. package/dist/cjs/src/msca/plugins/session-key/index.js.map +1 -1
  83. package/dist/cjs/src/msca/plugins/session-key/permissions.js.map +1 -1
  84. package/dist/cjs/src/msca/plugins/session-key/signer.js.map +1 -1
  85. package/dist/cjs/src/msca/plugins/session-key/utils.d.ts +4 -2
  86. package/dist/cjs/src/msca/plugins/session-key/utils.js +3 -2
  87. package/dist/cjs/src/msca/plugins/session-key/utils.js.map +1 -1
  88. package/dist/cjs/src/msca/utils.d.ts +6 -4
  89. package/dist/cjs/src/msca/utils.js +11 -10
  90. package/dist/cjs/src/msca/utils.js.map +1 -1
  91. package/dist/esm/plugindefs/multi-owner/config.js +1 -2
  92. package/dist/esm/plugindefs/multi-owner/config.js.map +1 -1
  93. package/dist/esm/plugindefs/multisig/config.js +1 -1
  94. package/dist/esm/plugindefs/multisig/config.js.map +1 -1
  95. package/dist/esm/plugindefs/session-key/config.js +1 -1
  96. package/dist/esm/plugindefs/session-key/config.js.map +1 -1
  97. package/dist/esm/src/index.d.ts +4 -4
  98. package/dist/esm/src/index.js +3 -3
  99. package/dist/esm/src/index.js.map +1 -1
  100. package/dist/esm/src/light-account/accounts/account.d.ts +5 -6
  101. package/dist/esm/src/light-account/accounts/account.js +5 -4
  102. package/dist/esm/src/light-account/accounts/account.js.map +1 -1
  103. package/dist/esm/src/light-account/accounts/base.d.ts +7 -6
  104. package/dist/esm/src/light-account/accounts/base.js +8 -8
  105. package/dist/esm/src/light-account/accounts/base.js.map +1 -1
  106. package/dist/esm/src/light-account/accounts/multiOwner.d.ts +5 -5
  107. package/dist/esm/src/light-account/accounts/multiOwner.js +6 -7
  108. package/dist/esm/src/light-account/accounts/multiOwner.js.map +1 -1
  109. package/dist/esm/src/light-account/actions/transferOwnership.d.ts +1 -1
  110. package/dist/esm/src/light-account/actions/transferOwnership.js +2 -1
  111. package/dist/esm/src/light-account/actions/transferOwnership.js.map +1 -1
  112. package/dist/esm/src/light-account/actions/updateOwners.js.map +1 -1
  113. package/dist/esm/src/light-account/clients/alchemyClient.d.ts +1 -1
  114. package/dist/esm/src/light-account/clients/alchemyClient.js.map +1 -1
  115. package/dist/esm/src/light-account/clients/client.js +2 -1
  116. package/dist/esm/src/light-account/clients/client.js.map +1 -1
  117. package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.d.ts +2 -2
  118. package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js.map +1 -1
  119. package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js +2 -1
  120. package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js.map +1 -1
  121. package/dist/esm/src/light-account/decorators/lightAccount.js.map +1 -1
  122. package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.js.map +1 -1
  123. package/dist/esm/src/light-account/types.d.ts +23 -31
  124. package/dist/esm/src/light-account/types.js.map +1 -1
  125. package/dist/esm/src/light-account/utils.d.ts +7 -9
  126. package/dist/esm/src/light-account/utils.js +60 -79
  127. package/dist/esm/src/light-account/utils.js.map +1 -1
  128. package/dist/esm/src/msca/account/multiOwnerAccount.js +2 -1
  129. package/dist/esm/src/msca/account/multiOwnerAccount.js.map +1 -1
  130. package/dist/esm/src/msca/account/multisigAccount.js +4 -3
  131. package/dist/esm/src/msca/account/multisigAccount.js.map +1 -1
  132. package/dist/esm/src/msca/account-loupe/decorator.js.map +1 -1
  133. package/dist/esm/src/msca/client/alchemyClient.d.ts +1 -1
  134. package/dist/esm/src/msca/client/alchemyClient.js.map +1 -1
  135. package/dist/esm/src/msca/client/client.js.map +1 -1
  136. package/dist/esm/src/msca/client/multiSigAlchemyClient.d.ts +1 -1
  137. package/dist/esm/src/msca/client/multiSigAlchemyClient.js +1 -1
  138. package/dist/esm/src/msca/client/multiSigAlchemyClient.js.map +1 -1
  139. package/dist/esm/src/msca/errors.js.map +1 -1
  140. package/dist/esm/src/msca/plugin-manager/decorator.d.ts +1 -1
  141. package/dist/esm/src/msca/plugin-manager/decorator.js +6 -4
  142. package/dist/esm/src/msca/plugin-manager/decorator.js.map +1 -1
  143. package/dist/esm/src/msca/plugin-manager/installPlugin.js.map +1 -1
  144. package/dist/esm/src/msca/plugins/multi-owner/extension.js.map +1 -1
  145. package/dist/esm/src/msca/plugins/multi-owner/index.d.ts +1 -1
  146. package/dist/esm/src/msca/plugins/multi-owner/index.js +1 -1
  147. package/dist/esm/src/msca/plugins/multi-owner/index.js.map +1 -1
  148. package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.js +1 -1
  149. package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.js.map +1 -1
  150. package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.js +1 -1
  151. package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.js.map +1 -1
  152. package/dist/esm/src/msca/plugins/multisig/extension.js.map +1 -1
  153. package/dist/esm/src/msca/plugins/multisig/index.d.ts +1 -8
  154. package/dist/esm/src/msca/plugins/multisig/index.js +0 -7
  155. package/dist/esm/src/msca/plugins/multisig/index.js.map +1 -1
  156. package/dist/esm/src/msca/plugins/multisig/middleware.d.ts +1 -1
  157. package/dist/esm/src/msca/plugins/multisig/middleware.js +2 -1
  158. package/dist/esm/src/msca/plugins/multisig/middleware.js.map +1 -1
  159. package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.d.ts +3 -2
  160. package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.js +2 -2
  161. package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.js.map +1 -1
  162. package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.js.map +1 -1
  163. package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.d.ts +2 -2
  164. package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.js.map +1 -1
  165. package/dist/esm/src/msca/plugins/multisig/utils/index.d.ts +4 -0
  166. package/dist/esm/src/msca/plugins/multisig/utils/index.js.map +1 -1
  167. package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +3 -2
  168. package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.js.map +1 -1
  169. package/dist/esm/src/msca/plugins/session-key/extension.js.map +1 -1
  170. package/dist/esm/src/msca/plugins/session-key/index.d.ts +1 -1
  171. package/dist/esm/src/msca/plugins/session-key/index.js +1 -1
  172. package/dist/esm/src/msca/plugins/session-key/index.js.map +1 -1
  173. package/dist/esm/src/msca/plugins/session-key/permissions.js.map +1 -1
  174. package/dist/esm/src/msca/plugins/session-key/signer.js.map +1 -1
  175. package/dist/esm/src/msca/plugins/session-key/utils.d.ts +4 -2
  176. package/dist/esm/src/msca/plugins/session-key/utils.js +3 -2
  177. package/dist/esm/src/msca/plugins/session-key/utils.js.map +1 -1
  178. package/dist/esm/src/msca/utils.d.ts +6 -4
  179. package/dist/esm/src/msca/utils.js +2 -1
  180. package/dist/esm/src/msca/utils.js.map +1 -1
  181. package/dist/types/plugindefs/multi-owner/config.d.ts.map +1 -1
  182. package/dist/types/src/index.d.ts +4 -4
  183. package/dist/types/src/index.d.ts.map +1 -1
  184. package/dist/types/src/light-account/accounts/account.d.ts +5 -6
  185. package/dist/types/src/light-account/accounts/account.d.ts.map +1 -1
  186. package/dist/types/src/light-account/accounts/base.d.ts +7 -6
  187. package/dist/types/src/light-account/accounts/base.d.ts.map +1 -1
  188. package/dist/types/src/light-account/accounts/multiOwner.d.ts +5 -5
  189. package/dist/types/src/light-account/accounts/multiOwner.d.ts.map +1 -1
  190. package/dist/types/src/light-account/actions/transferOwnership.d.ts +26 -1
  191. package/dist/types/src/light-account/actions/transferOwnership.d.ts.map +1 -1
  192. package/dist/types/src/light-account/actions/updateOwners.d.ts +24 -0
  193. package/dist/types/src/light-account/actions/updateOwners.d.ts.map +1 -1
  194. package/dist/types/src/light-account/clients/alchemyClient.d.ts +1 -1
  195. package/dist/types/src/light-account/clients/alchemyClient.d.ts.map +1 -1
  196. package/dist/types/src/light-account/clients/multiOwnerAlchemyClient.d.ts +2 -2
  197. package/dist/types/src/light-account/clients/multiOwnerAlchemyClient.d.ts.map +1 -1
  198. package/dist/types/src/light-account/decorators/lightAccount.d.ts +19 -0
  199. package/dist/types/src/light-account/decorators/lightAccount.d.ts.map +1 -1
  200. package/dist/types/src/light-account/decorators/multiOwnerLightAccount.d.ts +19 -0
  201. package/dist/types/src/light-account/decorators/multiOwnerLightAccount.d.ts.map +1 -1
  202. package/dist/types/src/light-account/types.d.ts +23 -118
  203. package/dist/types/src/light-account/types.d.ts.map +1 -1
  204. package/dist/types/src/light-account/utils.d.ts +22 -44
  205. package/dist/types/src/light-account/utils.d.ts.map +1 -1
  206. package/dist/types/src/msca/account/multisigAccount.d.ts.map +1 -1
  207. package/dist/types/src/msca/account-loupe/decorator.d.ts +15 -0
  208. package/dist/types/src/msca/account-loupe/decorator.d.ts.map +1 -1
  209. package/dist/types/src/msca/client/alchemyClient.d.ts +1 -1
  210. package/dist/types/src/msca/client/alchemyClient.d.ts.map +1 -1
  211. package/dist/types/src/msca/client/client.d.ts.map +1 -1
  212. package/dist/types/src/msca/client/multiSigAlchemyClient.d.ts +1 -1
  213. package/dist/types/src/msca/client/multiSigAlchemyClient.d.ts.map +1 -1
  214. package/dist/types/src/msca/errors.d.ts +12 -0
  215. package/dist/types/src/msca/errors.d.ts.map +1 -1
  216. package/dist/types/src/msca/plugin-manager/decorator.d.ts +16 -1
  217. package/dist/types/src/msca/plugin-manager/decorator.d.ts.map +1 -1
  218. package/dist/types/src/msca/plugin-manager/installPlugin.d.ts +21 -0
  219. package/dist/types/src/msca/plugin-manager/installPlugin.d.ts.map +1 -1
  220. package/dist/types/src/msca/plugins/multi-owner/extension.d.ts +15 -0
  221. package/dist/types/src/msca/plugins/multi-owner/extension.d.ts.map +1 -1
  222. package/dist/types/src/msca/plugins/multi-owner/index.d.ts +1 -1
  223. package/dist/types/src/msca/plugins/multi-owner/index.d.ts.map +1 -1
  224. package/dist/types/src/msca/plugins/multisig/actions/proposeUserOperation.d.ts.map +1 -1
  225. package/dist/types/src/msca/plugins/multisig/actions/signMultisigUserOperation.d.ts.map +1 -1
  226. package/dist/types/src/msca/plugins/multisig/extension.d.ts +13 -0
  227. package/dist/types/src/msca/plugins/multisig/extension.d.ts.map +1 -1
  228. package/dist/types/src/msca/plugins/multisig/index.d.ts +1 -8
  229. package/dist/types/src/msca/plugins/multisig/index.d.ts.map +1 -1
  230. package/dist/types/src/msca/plugins/multisig/middleware.d.ts +7 -7
  231. package/dist/types/src/msca/plugins/multisig/middleware.d.ts.map +1 -1
  232. package/dist/types/src/msca/plugins/multisig/utils/combineSignatures.d.ts +28 -2
  233. package/dist/types/src/msca/plugins/multisig/utils/combineSignatures.d.ts.map +1 -1
  234. package/dist/types/src/msca/plugins/multisig/utils/formatSignatures.d.ts +3 -3
  235. package/dist/types/src/msca/plugins/multisig/utils/getSignerType.d.ts +21 -2
  236. package/dist/types/src/msca/plugins/multisig/utils/getSignerType.d.ts.map +1 -1
  237. package/dist/types/src/msca/plugins/multisig/utils/index.d.ts +4 -0
  238. package/dist/types/src/msca/plugins/multisig/utils/index.d.ts.map +1 -1
  239. package/dist/types/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +13 -12
  240. package/dist/types/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts.map +1 -1
  241. package/dist/types/src/msca/plugins/session-key/extension.d.ts +13 -0
  242. package/dist/types/src/msca/plugins/session-key/extension.d.ts.map +1 -1
  243. package/dist/types/src/msca/plugins/session-key/index.d.ts +1 -1
  244. package/dist/types/src/msca/plugins/session-key/index.d.ts.map +1 -1
  245. package/dist/types/src/msca/plugins/session-key/permissions.d.ts +150 -1
  246. package/dist/types/src/msca/plugins/session-key/permissions.d.ts.map +1 -1
  247. package/dist/types/src/msca/plugins/session-key/signer.d.ts +72 -2
  248. package/dist/types/src/msca/plugins/session-key/signer.d.ts.map +1 -1
  249. package/dist/types/src/msca/plugins/session-key/utils.d.ts +22 -2
  250. package/dist/types/src/msca/plugins/session-key/utils.d.ts.map +1 -1
  251. package/dist/types/src/msca/utils.d.ts +48 -10
  252. package/dist/types/src/msca/utils.d.ts.map +1 -1
  253. package/package.json +7 -6
  254. package/plugindefs/multi-owner/config.ts +1 -2
  255. package/plugindefs/multisig/config.ts +1 -1
  256. package/plugindefs/session-key/config.ts +1 -1
  257. package/src/index.ts +3 -4
  258. package/src/light-account/accounts/account.ts +46 -48
  259. package/src/light-account/accounts/base.ts +39 -68
  260. package/src/light-account/accounts/multiOwner.ts +55 -48
  261. package/src/light-account/actions/transferOwnership.ts +28 -5
  262. package/src/light-account/actions/updateOwners.ts +24 -0
  263. package/src/light-account/clients/alchemyClient.ts +21 -1
  264. package/src/light-account/clients/client.ts +27 -6
  265. package/src/light-account/clients/multiOwnerAlchemyClient.ts +22 -2
  266. package/src/light-account/clients/multiOwnerLightAccount.ts +27 -6
  267. package/src/light-account/decorators/lightAccount.ts +19 -0
  268. package/src/light-account/decorators/multiOwnerLightAccount.ts +19 -0
  269. package/src/light-account/types.ts +31 -188
  270. package/src/light-account/utils.ts +99 -231
  271. package/src/msca/account/multiOwnerAccount.ts +36 -11
  272. package/src/msca/account/multisigAccount.ts +40 -14
  273. package/src/msca/account-loupe/decorator.ts +15 -0
  274. package/src/msca/client/alchemyClient.ts +21 -1
  275. package/src/msca/client/client.ts +46 -0
  276. package/src/msca/client/multiSigAlchemyClient.ts +26 -4
  277. package/src/msca/errors.ts +12 -0
  278. package/src/msca/plugin-manager/decorator.ts +22 -5
  279. package/src/msca/plugin-manager/installPlugin.ts +21 -0
  280. package/src/msca/plugins/multi-owner/extension.ts +15 -0
  281. package/src/msca/plugins/multi-owner/index.ts +3 -0
  282. package/src/msca/plugins/multisig/actions/proposeUserOperation.ts +1 -1
  283. package/src/msca/plugins/multisig/actions/signMultisigUserOperation.ts +1 -1
  284. package/src/msca/plugins/multisig/extension.ts +13 -0
  285. package/src/msca/plugins/multisig/index.ts +1 -12
  286. package/src/msca/plugins/multisig/middleware.ts +8 -8
  287. package/src/msca/plugins/multisig/utils/combineSignatures.ts +36 -9
  288. package/src/msca/plugins/multisig/utils/formatSignatures.ts +3 -3
  289. package/src/msca/plugins/multisig/utils/getSignerType.ts +23 -4
  290. package/src/msca/plugins/multisig/utils/index.ts +4 -0
  291. package/src/msca/plugins/multisig/utils/splitAggregatedSignature.ts +15 -12
  292. package/src/msca/plugins/session-key/extension.ts +13 -0
  293. package/src/msca/plugins/session-key/index.ts +7 -1
  294. package/src/msca/plugins/session-key/permissions.ts +150 -1
  295. package/src/msca/plugins/session-key/signer.ts +72 -3
  296. package/src/msca/plugins/session-key/utils.ts +33 -12
  297. package/src/msca/utils.ts +78 -21
  298. package/dist/cjs/src/light-account/schema.d.ts +0 -21
  299. package/dist/cjs/src/light-account/schema.js +0 -30
  300. package/dist/cjs/src/light-account/schema.js.map +0 -1
  301. package/dist/esm/src/light-account/schema.d.ts +0 -21
  302. package/dist/esm/src/light-account/schema.js +0 -27
  303. package/dist/esm/src/light-account/schema.js.map +0 -1
  304. package/dist/types/src/light-account/schema.d.ts +0 -22
  305. package/dist/types/src/light-account/schema.d.ts.map +0 -1
  306. package/src/light-account/schema.ts +0 -39
@@ -2,29 +2,67 @@ import { type GetAccountParameter, type SmartAccountClient, type SmartAccountSig
2
2
  import type { Address, Chain, Transport } from "viem";
3
3
  import { type MultiOwnerModularAccount } from "./account/multiOwnerAccount.js";
4
4
  /**
5
- * Utility method returning the default multi sig msca factory address given a {@link Chain} object
5
+ * Utility method returning the default multi sig msca factory address given a chain
6
6
  *
7
- * @param chain - a {@link Chain} object
8
- * @returns a {@link Address} for the given chain
7
+ * @param {Chain} chain the chain object for which to get the address
8
+ * @returns {Address} the address for the given chain
9
9
  * @throws if the chain doesn't have an address currently deployed
10
10
  */
11
11
  export declare const getDefaultMultisigModularAccountFactoryAddress: (chain: Chain) => Address;
12
12
  /**
13
- * Utility method returning the default multi owner msca factory address given a {@link Chain} object
13
+ * Utility method returning the default multi owner msca factory address given a chain
14
14
  *
15
- * @param chain - a {@link Chain} object
16
- * @returns a {@link Address} for the given chain
15
+ * @param {Chain} chain the chain object for which to get the address
16
+ * @returns {Address} the address for the given chain
17
17
  * @throws if the chain doesn't have an address currently deployed
18
18
  */
19
19
  export declare const getDefaultMultiOwnerModularAccountFactoryAddress: (chain: Chain) => Address;
20
- export declare function getMSCAUpgradeToData<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner, TAccount extends SmartContractAccountWithSigner<string, TSigner> | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, args: {
20
+ export type GetMSCAUpgradeToData<TSigner extends SmartAccountSigner = SmartAccountSigner, TAccount extends SmartContractAccountWithSigner<string, TSigner> | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined> = {
21
21
  multiOwnerPluginAddress?: Address;
22
- } & GetAccountParameter<TAccount>): Promise<UpgradeToData & {
22
+ } & GetAccountParameter<TAccount>;
23
+ /**
24
+ * Retrieves the data necessary to upgrade to a Multi-Signature Contract Account (MSCA) and provides a method to create a Multi-Owner Modular Account.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { createLightAccountClient, getMSCAUpgradeToData } from "@account-kit/smart-contracts";
29
+ *
30
+ * const client = createLightAccountClient(...);
31
+ * const upgradeData = await getMSCAUpgradeToData(client, {});
32
+ * ```
33
+ *
34
+ * @param {SmartAccountClient<TTransport, TChain, TAccount>} client The smart account client
35
+ * @param {GetMSCAUpgradeToData<TSigner, TAccount>} args The arguments required for the upgrade
36
+ * @returns {Promise<UpgradeToData & { createMAAccount: () => Promise<MultiOwnerModularAccount<TSigner>>}>} A promise that resolves to upgrade data augmented with a function to create a Multi-Owner Modular Account
37
+ */
38
+ export declare function getMSCAUpgradeToData<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner, TAccount extends SmartContractAccountWithSigner<string, TSigner> | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, args: GetMSCAUpgradeToData<TSigner, TAccount>): Promise<UpgradeToData & {
23
39
  createMAAccount: () => Promise<MultiOwnerModularAccount<TSigner>>;
24
40
  }>;
25
- export declare function getMAInitializationData<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>({ client, multiOwnerPluginAddress, signerAddress, }: {
41
+ export type GetMAInitializationDataParams<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
26
42
  multiOwnerPluginAddress?: Address;
27
43
  client: SmartAccountClient<TTransport, TChain, TAccount>;
28
44
  signerAddress: Address | Address[];
29
- }): Promise<UpgradeToData>;
45
+ };
46
+ /**
47
+ * Retrieves the initialization data for a multi-owner modular account. Throws an error if the client's chain is not found or if the multi-owner plugin address is not retrievable.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * import { getMAInitializationData } from "@account-kit/smart-contracts";
52
+ * import { createSmartAccountClient } from "@aa-sdk/core";
53
+ *
54
+ * const client = createSmartAccountClient(...);
55
+ * const initializationData = await getMAInitializationData({
56
+ * client,
57
+ * signerAddress: "0x...", // or array of signers
58
+ * });
59
+ * ```
60
+ *
61
+ * @param {GetMAInitializationDataParams<TTransport, TChain, TAccount>} params the parameters for getting initialization data
62
+ * @param {SmartAccountClient<TTransport, TChain, TAccount>} params.client the smart account client
63
+ * @param {Address | Address[]} params.signerAddress the address of the signer or an array of signer addresses
64
+ * @param {Address} [params.multiOwnerPluginAddress] optional address of the multi-owner plugin
65
+ * @returns {Promise<UpgradeToData>} a promise that resolves to the initialization data required for upgrading to a multi-owner modular account
66
+ */
67
+ export declare function getMAInitializationData<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>({ client, multiOwnerPluginAddress, signerAddress, }: GetMAInitializationDataParams<TTransport, TChain, TAccount>): Promise<UpgradeToData>;
30
68
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/msca/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EACnC,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAYtD,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AAGxC;;;;;;GAMG;AACH,eAAO,MAAM,8CAA8C,UAClD,KAAK,KACX,OAeF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gDAAgD,UACpD,KAAK,KACX,OAKF,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,QAAQ,SACJ,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,SAAS,GAAG,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAE3E,MAAM,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EACxD,IAAI,EAAE;IACJ,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAChC,OAAO,CACR,aAAa,GAAG;IACd,eAAe,EAAE,MAAM,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;CACnE,CACF,CA6BA;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,EACb,EACA,MAAM,EACN,uBAAuB,EACvB,aAAa,GACd,EAAE;IACD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,aAAa,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;CACpC,GAAG,OAAO,CAAC,aAAa,CAAC,CAwDzB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/msca/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EACnC,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAatB,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAYtD,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AAGxC;;;;;;GAMG;AACH,eAAO,MAAM,8CAA8C,UAClD,KAAK,KACX,OAeF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gDAAgD,UACpD,KAAK,KACX,OAKF,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,QAAQ,SACJ,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,SAAS,GAAG,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,IACzE;IACF,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAElC;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,QAAQ,SACJ,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,SAAS,GAAG,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAE3E,MAAM,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EACxD,IAAI,EAAE,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAC5C,OAAO,CACR,aAAa,GAAG;IACd,eAAe,EAAE,MAAM,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;CACnE,CACF,CA6BA;AAED,MAAM,MAAM,6BAA6B,CACvC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,IACX;IACF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,aAAa,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,EACb,EACA,MAAM,EACN,uBAAuB,EACvB,aAAa,GACd,EAAE,6BAA6B,CAC9B,UAAU,EACV,MAAM,EACN,QAAQ,CACT,GAAG,OAAO,CAAC,aAAa,CAAC,CAwDzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@account-kit/smart-contracts",
3
- "version": "4.0.0-alpha.0",
3
+ "version": "4.0.0-alpha.10",
4
4
  "description": "aa-sdk compatible interfaces for Alchemy Smart Accounts",
5
5
  "author": "Alchemy",
6
6
  "license": "MIT",
@@ -40,20 +40,21 @@
40
40
  "build:cjs": "tsc --project tsconfig.build.json --module commonjs --outDir ./dist/cjs --removeComments --verbatimModuleSyntax false && echo > ./dist/cjs/package.json '{\"type\":\"commonjs\"}'",
41
41
  "build:esm": "tsc --project tsconfig.build.json --module es2020 --outDir ./dist/esm --removeComments && echo > ./dist/esm/package.json '{\"type\":\"module\"}'",
42
42
  "build:types": "tsc --project tsconfig.build.json --module esnext --declarationDir ./dist/types --emitDeclarationOnly --declaration --declarationMap",
43
+ "docs:gen": "npx ak-docgen generate --in ./src/index.ts --out ../../site/pages/reference/account-kit/smart-contracts",
43
44
  "clean": "rm -rf ./dist",
44
45
  "test": "vitest",
45
46
  "test:run": "vitest run",
46
47
  "test:run-e2e": "vitest run --config vitest.config.e2e.ts"
47
48
  },
48
49
  "devDependencies": {
49
- "@account-kit/plugingen": "*",
50
+ "@account-kit/plugingen": "^4.0.0-alpha.10",
50
51
  "@wagmi/cli": "^1.5.2",
51
52
  "change-case": "^5.1.2",
52
53
  "dedent": "^1.5.1",
53
54
  "dotenv": "^16.3.1",
54
55
  "typescript": "^5.0.4",
55
56
  "typescript-template": "*",
56
- "vitest": "^0.31.0"
57
+ "vitest": "^2.0.4"
57
58
  },
58
59
  "publishConfig": {
59
60
  "access": "public",
@@ -67,10 +68,10 @@
67
68
  "url": "https://github.com/alchemyplatform/aa-sdk/issues"
68
69
  },
69
70
  "homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
70
- "gitHead": "bd1788c2bd7f28ba762a06c649f30b544f8bade9",
71
+ "gitHead": "e3446b95cdee38c248f336857b24f78a32694076",
71
72
  "dependencies": {
72
- "@aa-sdk/core": "^4.0.0-alpha.0",
73
- "@account-kit/infra": "^4.0.0-alpha.0",
73
+ "@aa-sdk/core": "^4.0.0-alpha.10",
74
+ "@account-kit/infra": "^4.0.0-alpha.10",
74
75
  "viem": "2.8.6"
75
76
  },
76
77
  "peerDependencies": {
@@ -14,7 +14,7 @@ import {
14
14
  sepolia,
15
15
  zora,
16
16
  zoraSepolia,
17
- } from "@aa-sdk/core";
17
+ } from "@account-kit/infra";
18
18
  import type { PluginConfig } from "@account-kit/plugingen";
19
19
  import { parseAbiParameters } from "viem";
20
20
  import { MultiOwnerPluginAbi } from "./abi.js";
@@ -33,7 +33,6 @@ export const MultiOwnerPluginGenConfig: PluginConfig = {
33
33
  [arbitrum.id]: "0xcE0000007B008F50d762D155002600004cD6c647",
34
34
  [arbitrumSepolia.id]: "0xcE0000007B008F50d762D155002600004cD6c647",
35
35
  [base.id]: "0xcE0000007B008F50d762D155002600004cD6c647",
36
- [baseSepolia.id]: "0xcE0000007B008F50d762D155002600004cD6c647",
37
36
  [fraxtal.id]: "0xcE0000007B008F50d762D155002600004cD6c647",
38
37
  [fraxtalSepolia.id]: "0xcE0000007B008F50d762D155002600004cD6c647",
39
38
  [zora.id]: "0xcE0000007B008F50d762D155002600004cD6c647",
@@ -13,7 +13,7 @@ import {
13
13
  sepolia,
14
14
  zora,
15
15
  zoraSepolia,
16
- } from "@aa-sdk/core";
16
+ } from "@account-kit/infra";
17
17
  import type { PluginConfig } from "@account-kit/plugingen";
18
18
  import { parseAbiParameters } from "viem";
19
19
  import { MultisigPluginAbi } from "./abi.js";
@@ -14,7 +14,7 @@ import {
14
14
  sepolia,
15
15
  zora,
16
16
  zoraSepolia,
17
- } from "@aa-sdk/core";
17
+ } from "@account-kit/infra";
18
18
  import type { PluginConfig } from "@account-kit/plugingen";
19
19
  import { parseAbiParameters } from "viem";
20
20
  import { MultiOwnerPluginGenConfig } from "../multi-owner/config.js";
package/src/index.ts CHANGED
@@ -24,7 +24,7 @@ export {
24
24
  LightAccountUnsupported1271Impls,
25
25
  defaultLightAccountVersion,
26
26
  getDefaultLightAccountFactoryAddress,
27
- getLightAccountVersionDef,
27
+ getLightAccountVersionForAccount,
28
28
  } from "./light-account/utils.js";
29
29
 
30
30
  //multi-owner-light-account exports
@@ -72,8 +72,8 @@ export {
72
72
  export type * from "./msca/plugin-manager/decorator.js";
73
73
  export { pluginManagerActions } from "./msca/plugin-manager/decorator.js";
74
74
  export { installPlugin } from "./msca/plugin-manager/installPlugin.js";
75
+ export { multiOwnerPluginActions } from "./msca/plugins/multi-owner/extension.js";
75
76
  export type * from "./msca/plugins/multi-owner/index.js";
76
- export { multiOwnerPluginActions } from "./msca/plugins/multi-owner/index.js";
77
77
  export {
78
78
  MultiOwnerPlugin,
79
79
  MultiOwnerPluginAbi,
@@ -86,7 +86,6 @@ export {
86
86
  MultisigPluginExecutionFunctionAbi,
87
87
  multisigPluginActions,
88
88
  multisigSignatureMiddleware,
89
- type SignerType,
90
89
  } from "./msca/plugins/multisig/index.js";
91
90
  export {
92
91
  combineSignatures,
@@ -94,8 +93,8 @@ export {
94
93
  getSignerType,
95
94
  splitAggregatedSignature,
96
95
  } from "./msca/plugins/multisig/utils/index.js";
96
+ export { sessionKeyPluginActions } from "./msca/plugins/session-key/extension.js";
97
97
  export type * from "./msca/plugins/session-key/index.js";
98
- export { sessionKeyPluginActions } from "./msca/plugins/session-key/index.js";
99
98
  export type * from "./msca/plugins/session-key/permissions.js";
100
99
  export {
101
100
  SessionKeyAccessListType,
@@ -18,13 +18,14 @@ import { LightAccountAbi_v2 } from "../abis/LightAccountAbi_v2.js";
18
18
  import { LightAccountFactoryAbi_v1 } from "../abis/LightAccountFactoryAbi_v1.js";
19
19
  import { LightAccountFactoryAbi_v2 } from "../abis/LightAccountFactoryAbi_v2.js";
20
20
  import type {
21
- GetEntryPointForLightAccountVersion,
22
- GetLightAccountVersion,
21
+ LightAccountEntryPointVersion,
22
+ LightAccountVersion,
23
23
  } from "../types.js";
24
24
  import {
25
25
  AccountVersionRegistry,
26
26
  LightAccountUnsupported1271Factories,
27
27
  defaultLightAccountVersion,
28
+ getDefaultLightAccountFactoryAddress,
28
29
  } from "../utils.js";
29
30
  import {
30
31
  createLightAccountBase,
@@ -34,17 +35,8 @@ import {
34
35
 
35
36
  export type LightAccount<
36
37
  TSigner extends SmartAccountSigner = SmartAccountSigner,
37
- TLightAccountVersion extends GetLightAccountVersion<"LightAccount"> = GetLightAccountVersion<"LightAccount">,
38
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
39
- "LightAccount",
40
- TLightAccountVersion
41
- > = GetEntryPointForLightAccountVersion<"LightAccount", TLightAccountVersion>
42
- > = LightAccountBase<
43
- TSigner,
44
- "LightAccount",
45
- TLightAccountVersion,
46
- TEntryPointVersion
47
- > & {
38
+ TLightAccountVersion extends LightAccountVersion<"LightAccount"> = LightAccountVersion<"LightAccount">
39
+ > = LightAccountBase<TSigner, "LightAccount", TLightAccountVersion> & {
48
40
  encodeTransferOwnership: (newOwner: Address) => Hex;
49
41
  getOwnerAddress: () => Promise<Address>;
50
42
  };
@@ -53,69 +45,73 @@ export type LightAccount<
53
45
  export type CreateLightAccountParams<
54
46
  TTransport extends Transport = Transport,
55
47
  TSigner extends SmartAccountSigner = SmartAccountSigner,
56
- TLightAccountVersion extends GetLightAccountVersion<"LightAccount"> = GetLightAccountVersion<"LightAccount">,
57
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
58
- "LightAccount",
59
- TLightAccountVersion
60
- > = GetEntryPointForLightAccountVersion<"LightAccount", TLightAccountVersion>
48
+ TLightAccountVersion extends LightAccountVersion<"LightAccount"> = LightAccountVersion<"LightAccount">
61
49
  > = Omit<
62
50
  CreateLightAccountBaseParams<
63
- TTransport,
64
- TSigner,
65
51
  "LightAccount",
66
52
  TLightAccountVersion,
67
- TEntryPointVersion
53
+ TTransport,
54
+ TSigner
68
55
  >,
69
- "getAccountInitCode" | "entryPoint" | "version" | "abi" | "accountAddress"
56
+ | "getAccountInitCode"
57
+ | "entryPoint"
58
+ | "version"
59
+ | "abi"
60
+ | "accountAddress"
61
+ | "type"
70
62
  > & {
71
63
  salt?: bigint;
72
64
  initCode?: Hex;
73
65
  accountAddress?: Address;
74
66
  factoryAddress?: Address;
75
67
  version?: TLightAccountVersion;
76
- entryPoint?: EntryPointDef<TEntryPointVersion, Chain>;
68
+ entryPoint?: EntryPointDef<
69
+ LightAccountEntryPointVersion<"LightAccount", TLightAccountVersion>,
70
+ Chain
71
+ >;
77
72
  };
78
73
  // [!endregion CreateLightAccountParams]
79
74
 
80
75
  export async function createLightAccount<
81
76
  TTransport extends Transport = Transport,
82
77
  TSigner extends SmartAccountSigner = SmartAccountSigner,
83
- TLightAccountVersion extends GetLightAccountVersion<"LightAccount"> = "v1.1.0"
78
+ TLightAccountVersion extends LightAccountVersion<"LightAccount"> = "v2.0.0"
84
79
  >(
85
80
  config: CreateLightAccountParams<TTransport, TSigner, TLightAccountVersion>
86
81
  ): Promise<LightAccount<TSigner, TLightAccountVersion>>;
87
82
 
88
- export async function createLightAccount<
89
- TTransport extends Transport = Transport,
90
- TSigner extends SmartAccountSigner = SmartAccountSigner,
91
- TLightAccountVersion extends GetLightAccountVersion<"LightAccount"> = GetLightAccountVersion<"LightAccount">,
92
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
93
- "LightAccount",
94
- TLightAccountVersion
95
- > = GetEntryPointForLightAccountVersion<"LightAccount", TLightAccountVersion>
96
- >(
97
- config: CreateLightAccountParams<
98
- TTransport,
99
- TSigner,
100
- TLightAccountVersion,
101
- TEntryPointVersion
102
- >
103
- ): Promise<LightAccount<TSigner, TLightAccountVersion, TEntryPointVersion>>;
104
-
83
+ /**
84
+ * Creates a light account based on the provided parameters such as transport, chain, signer, init code, and more. Ensures that an account is configured and returned with various capabilities, such as transferring ownership and retrieving the owner's address.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * import { createLightAccount } from "@account-kit/smart-contracts";
89
+ * import { LocalAccountSigner } from "@aa-sdk/core";
90
+ * import { sepolia } from "viem/chains";
91
+ * import { http, generatePrivateKey } from "viem"
92
+ *
93
+ * const account = await createLightAccount({
94
+ * chain: sepolia,
95
+ * transport: http("RPC_URL"),
96
+ * signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
97
+ * });
98
+ * ```
99
+ *
100
+ * @param {CreateLightAccountParams} config The parameters for creating a light account
101
+ * @returns {Promise<LightAccount>} A promise that resolves to a `LightAccount` object containing the created account information and methods
102
+ */
105
103
  export async function createLightAccount({
106
104
  transport,
107
105
  chain,
108
106
  signer,
109
107
  initCode,
110
- version = defaultLightAccountVersion("LightAccount"),
108
+ version = defaultLightAccountVersion(),
111
109
  entryPoint = getEntryPoint(chain, {
112
110
  version: AccountVersionRegistry["LightAccount"][version]
113
111
  .entryPointVersion as any,
114
112
  }),
115
113
  accountAddress,
116
- factoryAddress = AccountVersionRegistry["LightAccount"][version].address[
117
- chain.id
118
- ].factory,
114
+ factoryAddress = getDefaultLightAccountFactoryAddress(chain, version),
119
115
  salt: salt_ = 0n,
120
116
  }: CreateLightAccountParams): Promise<LightAccount> {
121
117
  const client = createBundlerClient({
@@ -157,15 +153,17 @@ export async function createLightAccount({
157
153
  });
158
154
 
159
155
  const account = await createLightAccountBase<
156
+ "LightAccount",
157
+ LightAccountVersion<"LightAccount">,
160
158
  Transport,
161
- SmartAccountSigner,
162
- "LightAccount"
159
+ SmartAccountSigner
163
160
  >({
164
161
  transport,
165
162
  chain,
166
163
  signer,
167
164
  abi: accountAbi,
168
- version: AccountVersionRegistry["LightAccount"][version],
165
+ type: "LightAccount",
166
+ version,
169
167
  entryPoint,
170
168
  accountAddress: address,
171
169
  getAccountInitCode,
@@ -23,11 +23,9 @@ import {
23
23
  type Transport,
24
24
  } from "viem";
25
25
  import type {
26
- AccountVersionDef,
27
- GetEntryPointForLightAccountVersion,
28
- GetLightAccountVersion,
26
+ LightAccountEntryPointVersion,
29
27
  LightAccountType,
30
- LightAccountVersionDef,
28
+ LightAccountVersion,
31
29
  } from "../types.js";
32
30
  import { AccountVersionRegistry } from "../utils.js";
33
31
 
@@ -40,91 +38,60 @@ enum SignatureType {
40
38
  export type LightAccountBase<
41
39
  TSigner extends SmartAccountSigner = SmartAccountSigner,
42
40
  TLightAccountType extends LightAccountType = LightAccountType,
43
- TLightAccountVersion extends GetLightAccountVersion<TLightAccountType> = GetLightAccountVersion<TLightAccountType>,
44
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
45
- TLightAccountType,
46
- TLightAccountVersion
47
- > = GetEntryPointForLightAccountVersion<
48
- TLightAccountType,
49
- TLightAccountVersion
50
- >
41
+ TLightAccountVersion extends LightAccountVersion<TLightAccountType> = LightAccountVersion<TLightAccountType>
51
42
  > = SmartContractAccountWithSigner<
52
43
  TLightAccountType,
53
44
  TSigner,
54
- TEntryPointVersion
45
+ LightAccountEntryPointVersion<TLightAccountType, TLightAccountVersion>
55
46
  > & {
56
47
  getLightAccountVersion: () => TLightAccountVersion;
57
48
  };
58
49
 
59
50
  //#region CreateLightAccountBaseParams
60
51
  export type CreateLightAccountBaseParams<
52
+ TLightAccountType extends LightAccountType,
53
+ TLightAccountVersion extends LightAccountVersion<TLightAccountType> = LightAccountVersion<TLightAccountType>,
61
54
  TTransport extends Transport = Transport,
62
- TSigner extends SmartAccountSigner = SmartAccountSigner,
63
- TLightAccountType extends LightAccountType = LightAccountType,
64
- TLightAccountVersion extends GetLightAccountVersion<TLightAccountType> = GetLightAccountVersion<TLightAccountType>,
65
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
66
- TLightAccountType,
67
- TLightAccountVersion
68
- > = GetEntryPointForLightAccountVersion<
69
- TLightAccountType,
70
- TLightAccountVersion
71
- >
55
+ TSigner extends SmartAccountSigner = SmartAccountSigner
72
56
  > = Pick<
73
- ToSmartContractAccountParams<
74
- TLightAccountType,
75
- TTransport,
76
- Chain,
77
- TEntryPointVersion
78
- >,
57
+ ToSmartContractAccountParams<TLightAccountType, TTransport, Chain>,
79
58
  "transport" | "chain" | "getAccountInitCode"
80
59
  > & {
81
60
  abi: Abi;
82
61
  signer: TSigner;
83
62
  accountAddress: Address;
84
- version: LightAccountVersionDef<TLightAccountType, TLightAccountVersion>;
85
- entryPoint: EntryPointDef<TEntryPointVersion, Chain>;
63
+ type: TLightAccountType;
64
+ version: TLightAccountVersion;
65
+ entryPoint: EntryPointDef<
66
+ LightAccountEntryPointVersion<TLightAccountType, TLightAccountVersion>,
67
+ Chain
68
+ >;
86
69
  };
87
70
  //#endregion CreateLightAccountBaseParams
88
71
 
89
72
  export async function createLightAccountBase<
73
+ TLightAccountType extends LightAccountType,
74
+ TLightAccountVersion extends LightAccountVersion<TLightAccountType>,
90
75
  TTransport extends Transport = Transport,
91
- TSigner extends SmartAccountSigner = SmartAccountSigner,
92
- TLightAccountType extends LightAccountType = LightAccountType,
93
- TLightAccountVersion extends GetLightAccountVersion<TLightAccountType> = GetLightAccountVersion<TLightAccountType>,
94
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
95
- TLightAccountType,
96
- TLightAccountVersion
97
- > = GetEntryPointForLightAccountVersion<
98
- TLightAccountType,
99
- TLightAccountVersion
100
- >
101
- >(
102
- config: CreateLightAccountBaseParams<
103
- TTransport,
104
- TSigner,
105
- TLightAccountType,
106
- TLightAccountVersion,
107
- TEntryPointVersion
108
- >
109
- ): Promise<
110
- LightAccountBase<
111
- TSigner,
112
- TLightAccountType,
113
- TLightAccountVersion,
114
- TEntryPointVersion
115
- >
116
- >;
117
-
118
- export async function createLightAccountBase({
76
+ TSigner extends SmartAccountSigner = SmartAccountSigner
77
+ >({
119
78
  transport,
120
79
  chain,
121
80
  signer,
122
81
  abi,
123
- version: { version, type },
82
+ version,
83
+ type,
124
84
  entryPoint,
125
85
  accountAddress,
126
86
  getAccountInitCode,
127
- }: CreateLightAccountBaseParams): Promise<LightAccountBase> {
87
+ }: CreateLightAccountBaseParams<
88
+ TLightAccountType,
89
+ TLightAccountVersion,
90
+ TTransport,
91
+ TSigner
92
+ >): Promise<
93
+ LightAccountBase<TSigner, TLightAccountType, TLightAccountVersion>
94
+ > {
128
95
  const client = createBundlerClient({
129
96
  transport,
130
97
  chain,
@@ -149,7 +116,9 @@ export async function createLightAccountBase({
149
116
 
150
117
  const implementationAddresses = Object.values(
151
118
  AccountVersionRegistry[type]
152
- ).map((x: AccountVersionDef) => x.address[chain.id].impl);
119
+ ).map(
120
+ (x) => x.addresses.overrides?.[chain.id]?.impl ?? x.addresses.default.impl
121
+ );
153
122
 
154
123
  // only upgrade undeployed accounts (storage 0) or deployed light accounts, error otherwise
155
124
  if (
@@ -157,7 +126,9 @@ export async function createLightAccountBase({
157
126
  !implementationAddresses.some((x) => x === trim(storage))
158
127
  ) {
159
128
  throw new Error(
160
- `could not determine if smart account implementation is ${type} ${version}`
129
+ `could not determine if smart account implementation is ${type} ${String(
130
+ version
131
+ )}`
161
132
  );
162
133
  }
163
134
 
@@ -234,7 +205,7 @@ export async function createLightAccountBase({
234
205
  case "v1.0.1":
235
206
  return signer.signMessage(message);
236
207
  case "v1.0.2":
237
- throw new Error(`${type} ${version} doesn't support 1271`);
208
+ throw new Error(`${type} ${String(version)} doesn't support 1271`);
238
209
  case "v1.1.0":
239
210
  return signWith1271WrapperV1(hashMessage(message));
240
211
  case "v2.0.0":
@@ -242,7 +213,7 @@ export async function createLightAccountBase({
242
213
  // TODO: handle case where signer is an SCA.
243
214
  return concat([SignatureType.EOA, signature]);
244
215
  default:
245
- throw new Error(`Unknown version ${type} of ${version}`);
216
+ throw new Error(`Unknown version ${type} of ${String(version)}`);
246
217
  }
247
218
  },
248
219
  async signTypedData(params) {
@@ -253,7 +224,7 @@ export async function createLightAccountBase({
253
224
  );
254
225
  case "v1.0.2":
255
226
  throw new Error(
256
- `Version ${version} of LightAccount doesn't support 1271`
227
+ `Version ${String(version)} of LightAccount doesn't support 1271`
257
228
  );
258
229
  case "v1.1.0":
259
230
  return signWith1271WrapperV1(hashTypedData(params));
@@ -262,7 +233,7 @@ export async function createLightAccountBase({
262
233
  // TODO: handle case where signer is an SCA.
263
234
  return concat([SignatureType.EOA, signature]);
264
235
  default:
265
- throw new Error(`Unknown version ${version} of LightAccount`);
236
+ throw new Error(`Unknown version ${String(version)} of LightAccount`);
266
237
  }
267
238
  },
268
239
  getDummySignature: (): Hex => {
@@ -276,7 +247,7 @@ export async function createLightAccountBase({
276
247
  case "v2.0.0":
277
248
  return concat([SignatureType.EOA, signature]);
278
249
  default:
279
- throw new Error(`Unknown version ${type} of ${version}`);
250
+ throw new Error(`Unknown version ${type} of ${String(version)}`);
280
251
  }
281
252
  },
282
253
  encodeUpgradeToAndCall,