@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
@@ -17,12 +17,12 @@ import {
17
17
  import { MultiOwnerLightAccountAbi } from "../abis/MultiOwnerLightAccountAbi.js";
18
18
  import { MultiOwnerLightAccountFactoryAbi } from "../abis/MultiOwnerLightAccountFactoryAbi.js";
19
19
  import type {
20
- GetEntryPointForLightAccountVersion,
21
- GetLightAccountVersion,
20
+ LightAccountEntryPointVersion,
21
+ LightAccountVersion,
22
22
  } from "../types.js";
23
23
  import {
24
- AccountVersionRegistry,
25
24
  defaultLightAccountVersion,
25
+ getDefaultMultiOwnerLightAccountFactoryAddress,
26
26
  } from "../utils.js";
27
27
  import {
28
28
  createLightAccountBase,
@@ -32,19 +32,11 @@ import {
32
32
 
33
33
  export type MultiOwnerLightAccount<
34
34
  TSigner extends SmartAccountSigner = SmartAccountSigner,
35
- TLightAccountVersion extends GetLightAccountVersion<"MultiOwnerLightAccount"> = GetLightAccountVersion<"MultiOwnerLightAccount">,
36
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
37
- "MultiOwnerLightAccount",
38
- TLightAccountVersion
39
- > = GetEntryPointForLightAccountVersion<
40
- "MultiOwnerLightAccount",
41
- TLightAccountVersion
42
- >
35
+ TLightAccountVersion extends LightAccountVersion<"MultiOwnerLightAccount"> = LightAccountVersion<"MultiOwnerLightAccount">
43
36
  > = LightAccountBase<
44
37
  TSigner,
45
38
  "MultiOwnerLightAccount",
46
- TLightAccountVersion,
47
- TEntryPointVersion
39
+ TLightAccountVersion
48
40
  > & {
49
41
  encodeUpdateOwners: (
50
42
  ownersToAdd: Address[],
@@ -56,69 +48,82 @@ export type MultiOwnerLightAccount<
56
48
  export type CreateMultiOwnerLightAccountParams<
57
49
  TTransport extends Transport = Transport,
58
50
  TSigner extends SmartAccountSigner = SmartAccountSigner,
59
- TLightAccountVersion extends GetLightAccountVersion<"MultiOwnerLightAccount"> = GetLightAccountVersion<"MultiOwnerLightAccount">,
60
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
61
- "MultiOwnerLightAccount",
62
- TLightAccountVersion
63
- > = GetEntryPointForLightAccountVersion<
64
- "MultiOwnerLightAccount",
65
- TLightAccountVersion
66
- >
51
+ TLightAccountVersion extends LightAccountVersion<"MultiOwnerLightAccount"> = LightAccountVersion<"MultiOwnerLightAccount">
67
52
  > = Omit<
68
53
  CreateLightAccountBaseParams<
69
- TTransport,
70
- TSigner,
71
54
  "MultiOwnerLightAccount",
72
55
  TLightAccountVersion,
73
- TEntryPointVersion
56
+ TTransport,
57
+ TSigner
74
58
  >,
75
- "getAccountInitCode" | "entryPoint" | "version" | "abi" | "accountAddress"
59
+ | "getAccountInitCode"
60
+ | "entryPoint"
61
+ | "version"
62
+ | "abi"
63
+ | "accountAddress"
64
+ | "type"
76
65
  > & {
77
66
  salt?: bigint;
78
67
  initCode?: Hex;
79
68
  accountAddress?: Address;
80
69
  factoryAddress?: Address;
81
70
  version?: TLightAccountVersion;
82
- entryPoint?: EntryPointDef<TEntryPointVersion, Chain>;
71
+ entryPoint?: EntryPointDef<
72
+ LightAccountEntryPointVersion<
73
+ "MultiOwnerLightAccount",
74
+ TLightAccountVersion
75
+ >,
76
+ Chain
77
+ >;
83
78
  owners?: Address[];
84
79
  };
85
80
 
86
81
  export async function createMultiOwnerLightAccount<
87
82
  TTransport extends Transport = Transport,
88
83
  TSigner extends SmartAccountSigner = SmartAccountSigner,
89
- TLightAccountVersion extends GetLightAccountVersion<"MultiOwnerLightAccount"> = GetLightAccountVersion<"MultiOwnerLightAccount">,
90
- TEntryPointVersion extends GetEntryPointForLightAccountVersion<
91
- "MultiOwnerLightAccount",
92
- TLightAccountVersion
93
- > = GetEntryPointForLightAccountVersion<
94
- "MultiOwnerLightAccount",
95
- TLightAccountVersion
96
- >
84
+ TLightAccountVersion extends LightAccountVersion<"MultiOwnerLightAccount"> = LightAccountVersion<"MultiOwnerLightAccount">
97
85
  >(
98
86
  config: CreateMultiOwnerLightAccountParams<
99
87
  TTransport,
100
88
  TSigner,
101
- TLightAccountVersion,
102
- TEntryPointVersion
89
+ TLightAccountVersion
103
90
  >
104
- ): Promise<
105
- MultiOwnerLightAccount<TSigner, TLightAccountVersion, TEntryPointVersion>
106
- >;
91
+ ): Promise<MultiOwnerLightAccount<TSigner, TLightAccountVersion>>;
107
92
 
93
+ /**
94
+ * Creates a multi-owner light account using the provided parameters, including transport, chain, signer, initialization code, version, account address, factory address, salt, and owners. Ensures the owners list is deduplicated, ordered, and valid.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * import { createMultiOwnerLightAccount } from "@account-kit/smart-contracts";
99
+ * import { LocalAccountSigner } from "@aa-sdk/core";
100
+ * import { sepolia } from "viem/chains";
101
+ * import { http, generatePrivateKey } from "viem"
102
+ *
103
+ * const account = await createMultiOwnerLightAccount({
104
+ * chain: sepolia,
105
+ * transport: http("RPC_URL"),
106
+ * signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
107
+ * });
108
+ * ```
109
+ *
110
+ * @param {CreateMultiOwnerLightAccountParams} config The parameters for creating a multi-owner light account
111
+ * @returns {Promise<MultiOwnerLightAccount>} A promise that resolves to a `MultiOwnerLightAccount` object containing the created account information and methods
112
+ */
108
113
  export async function createMultiOwnerLightAccount({
109
114
  transport,
110
115
  chain,
111
116
  signer,
112
117
  initCode,
113
- version = defaultLightAccountVersion("MultiOwnerLightAccount"),
118
+ version = defaultLightAccountVersion(),
114
119
  entryPoint = getEntryPoint(chain, {
115
- version:
116
- AccountVersionRegistry["MultiOwnerLightAccount"][version]
117
- .entryPointVersion,
120
+ version: "0.7.0",
118
121
  }),
119
122
  accountAddress,
120
- factoryAddress = AccountVersionRegistry["MultiOwnerLightAccount"][version]
121
- .address[chain.id].factory,
123
+ factoryAddress = getDefaultMultiOwnerLightAccountFactoryAddress(
124
+ chain,
125
+ version
126
+ ),
122
127
  salt: salt_ = 0n,
123
128
  owners = [],
124
129
  }: CreateMultiOwnerLightAccountParams): Promise<MultiOwnerLightAccount> {
@@ -160,15 +165,17 @@ export async function createMultiOwnerLightAccount({
160
165
  });
161
166
 
162
167
  const account = await createLightAccountBase<
168
+ "MultiOwnerLightAccount",
169
+ LightAccountVersion<"MultiOwnerLightAccount">,
163
170
  Transport,
164
- SmartAccountSigner,
165
- "MultiOwnerLightAccount"
171
+ SmartAccountSigner
166
172
  >({
167
173
  transport,
168
174
  chain,
169
175
  signer,
170
176
  abi: MultiOwnerLightAccountAbi,
171
- version: AccountVersionRegistry["MultiOwnerLightAccount"][version],
177
+ version,
178
+ type: "MultiOwnerLightAccount",
172
179
  entryPoint,
173
180
  accountAddress: address,
174
181
  getAccountInitCode,
@@ -22,7 +22,32 @@ export type TransferLightAccountOwnershipParams<
22
22
  } & GetAccountParameter<TAccount, LightAccount<TSigner>> &
23
23
  UserOperationOverridesParameter<TEntryPointVersion>;
24
24
 
25
- export const transferOwnership: <
25
+ /**
26
+ * Transfers the ownership of a light account to a new owner.
27
+ * This function ensures that the client is a compatible smart acccount client and that a Light Account is provided.
28
+ * If the waitForTxn parameter is true, it will wait for the transaction to be completed before returning.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * import { transferOwnership, createLightAccountClient } from "@account-kit/smart-contracts";
33
+ *
34
+ * const lightAccountClient = createLightAccountClient({
35
+ * signer,
36
+ * transport,
37
+ * chain,
38
+ * });
39
+ *
40
+ * const txHash = await transferOwnership(lightAccountClient, {
41
+ * newOwner: newOwnerSigner,
42
+ * waitForTxn: true, // set to false to return a uoHash instead
43
+ * });
44
+ * ```
45
+ *
46
+ * @param {Client<TTransport, TChain, TAccount>} client The smart account client instance used to execute the transfer
47
+ * @param {TransferLightAccountOwnershipParams<TSigner, TAccount>} args The parameters for transferring ownership
48
+ * @returns {Promise<Hex>} The transaction or UO hash as a Hex string
49
+ */
50
+ export const transferOwnership = async <
26
51
  TTransport extends Transport = Transport,
27
52
  TChain extends Chain | undefined = Chain | undefined,
28
53
  TSigner extends SmartAccountSigner = SmartAccountSigner,
@@ -32,10 +57,8 @@ export const transferOwnership: <
32
57
  >(
33
58
  client: Client<TTransport, TChain, TAccount>,
34
59
  args: TransferLightAccountOwnershipParams<TSigner, TAccount>
35
- ) => Promise<Hex> = async (
36
- client,
37
- { newOwner, waitForTxn, overrides, account = client.account }
38
- ) => {
60
+ ): Promise<Hex> => {
61
+ const { newOwner, waitForTxn, overrides, account = client.account } = args;
39
62
  if (!account) {
40
63
  throw new AccountNotFoundError();
41
64
  }
@@ -23,6 +23,30 @@ export type UpdateMultiOwnerLightAccountOwnersParams<
23
23
  } & GetAccountParameter<TAccount, MultiOwnerLightAccount<TSigner>> &
24
24
  UserOperationOverridesParameter<TEntryPointVersion>;
25
25
 
26
+ /**
27
+ * Updates the owners of a multi-owner light account. This includes adding new owners and removing existing ones.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import { updateOwners, createLightAccountClient } from "@account-kit/smart-contracts";
32
+ *
33
+ * const lightAccountClient = createLightAccountClient({
34
+ * signer,
35
+ * transport,
36
+ * chain,
37
+ * });
38
+ *
39
+ * const txHash = await updateOwners(lightAccountClient, {
40
+ * ownerstoAdd: [newOwnerAddress], // or empty if you just want to remove owners
41
+ * ownersToRemove: [oldOwnerAddress], // or empty if you just want to add owners
42
+ * waitForTxn: true, // set to false to return a uoHash instead
43
+ * });
44
+ * ```
45
+ *
46
+ * @param {Client<TTransport, TChain, TAccount>} client The client instance used to interact with the account
47
+ * @param {UpdateMultiOwnerLightAccountOwnersParams<TSigner, TAccount>} args The parameters for updating the account owners
48
+ * @returns {Promise<Hex>} A promise that resolves to the transaction hash or the full transaction result if `waitForTxn` is `true`
49
+ */
26
50
  export const updateOwners: <
27
51
  TTransport extends Transport = Transport,
28
52
  TChain extends Chain | undefined = Chain | undefined,
@@ -1,3 +1,4 @@
1
+ import type { HttpTransport, SmartAccountSigner } from "@aa-sdk/core";
1
2
  import {
2
3
  AlchemyProviderConfigSchema,
3
4
  createAlchemyPublicRpcClient,
@@ -12,7 +13,6 @@ import {
12
13
  type LightAccount,
13
14
  type LightAccountClientActions,
14
15
  } from "@account-kit/smart-contracts";
15
- import type { HttpTransport, SmartAccountSigner } from "@aa-sdk/core";
16
16
  import { custom, type Chain, type CustomTransport, type Transport } from "viem";
17
17
 
18
18
  export type AlchemyLightAccountClientConfig<
@@ -39,6 +39,26 @@ export async function createLightAccountAlchemyClient<
39
39
  >
40
40
  >;
41
41
 
42
+ /**
43
+ * Creates an Alchemy smart account client connected to a Light Account instance.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { createLightAccountAlchemyClient } from "@account-kit/smart-contracts";
48
+ * import { sepolia } from "@account-kit/infra";
49
+ * import { LocalAccountSigner } from "@aa-sdk/core";
50
+ * import { generatePrivateKey } from "viem"
51
+ *
52
+ * const lightAccountClient = await createLightAccountAlchemyClient({
53
+ * apiKey: "your-api-key",
54
+ * chain: sepolia,
55
+ * signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
56
+ * });
57
+ * ```
58
+ *
59
+ * @param {AlchemyLightAccountClientConfig} config The configuration for setting up the Alchemy Light Account Client
60
+ * @returns {Promise<AlchemySmartAccountClient>} A promise that resolves to an `AlchemySmartAccountClient` object containing the created client
61
+ */
42
62
  export async function createLightAccountAlchemyClient(
43
63
  config: AlchemyLightAccountClientConfig
44
64
  ): Promise<AlchemySmartAccountClient> {
@@ -48,12 +48,33 @@ export function createLightAccountClient<
48
48
  >
49
49
  >;
50
50
 
51
- export async function createLightAccountClient({
52
- account,
53
- transport,
54
- chain,
55
- ...clientConfig
56
- }: CreateLightAccountClientParams): Promise<SmartAccountClient> {
51
+ /**
52
+ * Creates a light account client using the provided parameters, including account information, transport mechanism, blockchain chain, and additional client configurations. This function first creates a light account and then uses it to create a smart account client, extending it with light account client actions.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * import { createLightAccountClient } from "@account-kit/smart-contracts";
57
+ * import { LocalAccountSigner } from "@aa-sdk/core";
58
+ * import { sepolia } from "viem/chains";
59
+ * import { http, generatePrivateKey } from "viem"
60
+ *
61
+ * const account = await createLightAccountClient({
62
+ * chain: sepolia,
63
+ * transport: http("RPC_URL"),
64
+ * account: {
65
+ * signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
66
+ * }
67
+ * });
68
+ * ```
69
+ *
70
+ * @param {CreateLightAccountClientParams} params The parameters for creating a light account client
71
+ * @returns {Promise<SmartAccountClient>} A promise that resolves to a `SmartAccountClient` object containing the created account information and methods
72
+ */
73
+ export async function createLightAccountClient(
74
+ params: CreateLightAccountClientParams
75
+ ): Promise<SmartAccountClient> {
76
+ const { account, transport, chain, ...clientConfig } = params;
77
+
57
78
  const lightAccount = await createLightAccount({
58
79
  ...account,
59
80
  transport,
@@ -1,3 +1,4 @@
1
+ import type { HttpTransport, SmartAccountSigner } from "@aa-sdk/core";
1
2
  import {
2
3
  AlchemyProviderConfigSchema,
3
4
  createAlchemyPublicRpcClient,
@@ -12,14 +13,13 @@ import {
12
13
  type MultiOwnerLightAccount,
13
14
  type MultiOwnerLightAccountClientActions,
14
15
  } from "@account-kit/smart-contracts";
15
- import type { HttpTransport, SmartAccountSigner } from "@aa-sdk/core";
16
16
  import { custom, type Chain, type CustomTransport, type Transport } from "viem";
17
17
 
18
18
  export type AlchemyMultiOwnerLightAccountClientConfig<
19
19
  TSigner extends SmartAccountSigner = SmartAccountSigner
20
20
  > = Omit<
21
21
  CreateMultiOwnerLightAccountParams<HttpTransport, TSigner>,
22
- "transport" | "chain"
22
+ "transport" | "chain" | "type"
23
23
  > &
24
24
  Omit<
25
25
  AlchemySmartAccountClientConfig<
@@ -43,6 +43,26 @@ export async function createMultiOwnerLightAccountAlchemyClient<
43
43
  >
44
44
  >;
45
45
 
46
+ /**
47
+ * Creates a multi-owner light account Alchemy client using the provided configuration.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * import { createMultiOwnerLightAccountAlchemyClient } from "@account-kit/smart-contracts";
52
+ * import { sepolia } from "@account-kit/infra";
53
+ * import { LocalAccountSigner } from "@aa-sdk/core";
54
+ * import { generatePrivateKey } from "viem"
55
+ *
56
+ * const lightAccountClient = await createMultiOwnerLightAccountAlchemyClient({
57
+ * apiKey: "your-api-key",
58
+ * chain: sepolia,
59
+ * signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
60
+ * });
61
+ * ```
62
+ *
63
+ * @param {AlchemyMultiOwnerLightAccountClientConfig} config The configuration for creating the Alchemy client
64
+ * @returns {Promise<AlchemySmartAccountClient>} A promise that resolves to an `AlchemySmartAccountClient` object containing the created account information and methods
65
+ */
46
66
  export async function createMultiOwnerLightAccountAlchemyClient(
47
67
  config: AlchemyMultiOwnerLightAccountClientConfig
48
68
  ): Promise<AlchemySmartAccountClient> {
@@ -54,12 +54,33 @@ export function createMultiOwnerLightAccountClient<
54
54
  >
55
55
  >;
56
56
 
57
- export async function createMultiOwnerLightAccountClient({
58
- account,
59
- transport,
60
- chain,
61
- ...clientConfig
62
- }: CreateMultiOwnerLightAccountClientParams): Promise<SmartAccountClient> {
57
+ /**
58
+ * Creates a multi-owner light account client using the provided parameters. It first creates a multi-owner light account and then creates a smart account client with the provided configurations.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * import { createMultiOwnerLightAccountClient } from "@account-kit/smart-contracts";
63
+ * import { LocalAccountSigner } from "@aa-sdk/core";
64
+ * import { sepolia } from "viem/chains";
65
+ * import { http, generatePrivateKey } from "viem"
66
+ *
67
+ * const account = await createMultiOwnerLightAccountClient({
68
+ * chain: sepolia,
69
+ * transport: http("RPC_URL"),
70
+ * account: {
71
+ * signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
72
+ * }
73
+ * });
74
+ * ```
75
+ *
76
+ * @param {CreateMultiOwnerLightAccountClientParams} params the configuration for creating the multi-owner light account client
77
+ * @returns {Promise<SmartAccountClient>} a promise that resolves to a `SmartAccountClient` containing the created account client and relevant methods
78
+ */
79
+ export async function createMultiOwnerLightAccountClient(
80
+ params: CreateMultiOwnerLightAccountClientParams
81
+ ): Promise<SmartAccountClient> {
82
+ const { account, transport, chain, ...clientConfig } = params;
83
+
63
84
  const lightAccount = await createMultiOwnerLightAccount({
64
85
  ...account,
65
86
  transport,
@@ -17,6 +17,25 @@ export type LightAccountClientActions<
17
17
  ) => Promise<Hex>;
18
18
  };
19
19
 
20
+ /**
21
+ * Provides a set of actions for managing a light account client, including transferring ownership.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import { lightAccountClientActions, createLightAccount } from "@account-kit/smart-contracts";
26
+ * import { createAlchemySmartAccountClient } from "@account-kit/infra";
27
+ * import { sepolia } from "@account-kit/infra";
28
+ *
29
+ * const smartAccountClient = createAlchemySmartAccountClient({
30
+ * account: await createLightAccount(...),
31
+ * apiKey: "your-api-key",
32
+ * chain: sepolia,
33
+ * }).extend(lightAccountClientActions);
34
+ * ```
35
+ *
36
+ * @param {Client<TTransport, TChain, TAccount>} client The client instance for which to provide the light account actions
37
+ * @returns {LightAccountClientActions<TSigner, TAccount>} An object containing the available light account client actions
38
+ */
20
39
  export const lightAccountClientActions: <
21
40
  TTransport extends Transport = Transport,
22
41
  TChain extends Chain | undefined = Chain | undefined,
@@ -17,6 +17,25 @@ export type MultiOwnerLightAccountClientActions<
17
17
  ) => Promise<Hex>;
18
18
  };
19
19
 
20
+ /**
21
+ * Generates client actions for a multi-owner light account, including the ability to update owners.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import { multiOwnerLightAccountClientActions, createMultiOwnerLightAccount } from "@account-kit/smart-contracts";
26
+ * import { createAlchemySmartAccountClient } from "@account-kit/infra";
27
+ * import { sepolia } from "@account-kit/infra";
28
+ *
29
+ * const smartAccountClient = createAlchemySmartAccountClient({
30
+ * account: await createMultiOwnerLightAccount(...),
31
+ * apiKey: "your-api-key",
32
+ * chain: sepolia,
33
+ * }).extend(multiOwnerLightAccountClientActions);
34
+ * ```
35
+ *
36
+ * @param {Client<TTransport, TChain, TAccount>} client the client for interacting with the multi-owner light account
37
+ * @returns {MultiOwnerLightAccountClientActions<TSigner, TAccount>} an object containing the client actions specifically for a multi-owner light account
38
+ */
20
39
  export const multiOwnerLightAccountClientActions: <
21
40
  TTransport extends Transport = Transport,
22
41
  TChain extends Chain | undefined = Chain | undefined,