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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/dist/esm/plugindefs/multi-owner/config.js +2 -2
  2. package/dist/esm/plugindefs/multi-owner/config.js.map +1 -1
  3. package/dist/esm/plugindefs/multisig/config.js +2 -2
  4. package/dist/esm/plugindefs/multisig/config.js.map +1 -1
  5. package/dist/esm/plugindefs/session-key/config.js +2 -3
  6. package/dist/esm/plugindefs/session-key/config.js.map +1 -1
  7. package/dist/esm/src/index.d.ts +1 -1
  8. package/dist/esm/src/index.js +4 -1
  9. package/dist/esm/src/index.js.map +1 -1
  10. package/dist/esm/src/light-account/accounts/account.js +20 -0
  11. package/dist/esm/src/light-account/accounts/account.js.map +1 -1
  12. package/dist/esm/src/light-account/accounts/base.js +8 -0
  13. package/dist/esm/src/light-account/accounts/base.js.map +1 -1
  14. package/dist/esm/src/light-account/accounts/multiOwner.js +22 -0
  15. package/dist/esm/src/light-account/accounts/multiOwner.js.map +1 -1
  16. package/dist/esm/src/light-account/actions/transferOwnership.d.ts +25 -0
  17. package/dist/esm/src/light-account/actions/transferOwnership.js +25 -0
  18. package/dist/esm/src/light-account/actions/transferOwnership.js.map +1 -1
  19. package/dist/esm/src/light-account/actions/updateOwners.d.ts +24 -0
  20. package/dist/esm/src/light-account/actions/updateOwners.js +24 -0
  21. package/dist/esm/src/light-account/actions/updateOwners.js.map +1 -1
  22. package/dist/esm/src/light-account/clients/alchemyClient.js +20 -0
  23. package/dist/esm/src/light-account/clients/alchemyClient.js.map +1 -1
  24. package/dist/esm/src/light-account/clients/client.d.ts +1 -2
  25. package/dist/esm/src/light-account/clients/client.js +23 -3
  26. package/dist/esm/src/light-account/clients/client.js.map +1 -1
  27. package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js +20 -0
  28. package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js.map +1 -1
  29. package/dist/esm/src/light-account/clients/multiOwnerLightAccount.d.ts +1 -2
  30. package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js +23 -3
  31. package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js.map +1 -1
  32. package/dist/esm/src/light-account/decorators/lightAccount.d.ts +19 -0
  33. package/dist/esm/src/light-account/decorators/lightAccount.js +19 -0
  34. package/dist/esm/src/light-account/decorators/lightAccount.js.map +1 -1
  35. package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.d.ts +19 -0
  36. package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.js +19 -0
  37. package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.js.map +1 -1
  38. package/dist/esm/src/light-account/types.d.ts +4 -0
  39. package/dist/esm/src/light-account/utils.d.ts +46 -0
  40. package/dist/esm/src/light-account/utils.js +46 -0
  41. package/dist/esm/src/light-account/utils.js.map +1 -1
  42. package/dist/esm/src/msca/account/multiOwnerAccount.js +23 -0
  43. package/dist/esm/src/msca/account/multiOwnerAccount.js.map +1 -1
  44. package/dist/esm/src/msca/account/multisigAccount.js +24 -0
  45. package/dist/esm/src/msca/account/multisigAccount.js.map +1 -1
  46. package/dist/esm/src/msca/account-loupe/decorator.d.ts +15 -0
  47. package/dist/esm/src/msca/account-loupe/decorator.js +15 -0
  48. package/dist/esm/src/msca/account-loupe/decorator.js.map +1 -1
  49. package/dist/esm/src/msca/client/alchemyClient.js +20 -0
  50. package/dist/esm/src/msca/client/alchemyClient.js.map +1 -1
  51. package/dist/esm/src/msca/client/client.d.ts +2 -6
  52. package/dist/esm/src/msca/client/client.js +50 -6
  53. package/dist/esm/src/msca/client/client.js.map +1 -1
  54. package/dist/esm/src/msca/client/multiSigAlchemyClient.js +22 -0
  55. package/dist/esm/src/msca/client/multiSigAlchemyClient.js.map +1 -1
  56. package/dist/esm/src/msca/errors.d.ts +12 -0
  57. package/dist/esm/src/msca/errors.js +12 -0
  58. package/dist/esm/src/msca/errors.js.map +1 -1
  59. package/dist/esm/src/msca/plugin-manager/decorator.d.ts +15 -0
  60. package/dist/esm/src/msca/plugin-manager/decorator.js +15 -0
  61. package/dist/esm/src/msca/plugin-manager/decorator.js.map +1 -1
  62. package/dist/esm/src/msca/plugin-manager/installPlugin.d.ts +21 -0
  63. package/dist/esm/src/msca/plugin-manager/installPlugin.js +22 -0
  64. package/dist/esm/src/msca/plugin-manager/installPlugin.js.map +1 -1
  65. package/dist/esm/src/msca/plugins/multi-owner/extension.d.ts +15 -0
  66. package/dist/esm/src/msca/plugins/multi-owner/extension.js +19 -0
  67. package/dist/esm/src/msca/plugins/multi-owner/extension.js.map +1 -1
  68. package/dist/esm/src/msca/plugins/multi-owner/plugin.js.map +1 -1
  69. package/dist/esm/src/msca/plugins/multisig/actions/isOwnerOf.js +2 -0
  70. package/dist/esm/src/msca/plugins/multisig/actions/isOwnerOf.js.map +1 -1
  71. package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.js +2 -0
  72. package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.js.map +1 -1
  73. package/dist/esm/src/msca/plugins/multisig/actions/readOwners.js +2 -0
  74. package/dist/esm/src/msca/plugins/multisig/actions/readOwners.js.map +1 -1
  75. package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.js +3 -0
  76. package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.js.map +1 -1
  77. package/dist/esm/src/msca/plugins/multisig/extension.d.ts +13 -0
  78. package/dist/esm/src/msca/plugins/multisig/extension.js +13 -0
  79. package/dist/esm/src/msca/plugins/multisig/extension.js.map +1 -1
  80. package/dist/esm/src/msca/plugins/multisig/middleware.d.ts +12 -0
  81. package/dist/esm/src/msca/plugins/multisig/middleware.js +15 -0
  82. package/dist/esm/src/msca/plugins/multisig/middleware.js.map +1 -1
  83. package/dist/esm/src/msca/plugins/multisig/plugin.js.map +1 -1
  84. package/dist/esm/src/msca/plugins/multisig/signer.js +2 -0
  85. package/dist/esm/src/msca/plugins/multisig/signer.js.map +1 -1
  86. package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.d.ts +25 -0
  87. package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.js +25 -0
  88. package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.js.map +1 -1
  89. package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.d.ts +10 -0
  90. package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.js +11 -0
  91. package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.js.map +1 -1
  92. package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.d.ts +19 -0
  93. package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.js +19 -0
  94. package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.js.map +1 -1
  95. package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +10 -0
  96. package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.js +20 -0
  97. package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.js.map +1 -1
  98. package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.d.ts +7 -0
  99. package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.js +7 -0
  100. package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.js.map +1 -1
  101. package/dist/esm/src/msca/plugins/session-key/extension.d.ts +13 -0
  102. package/dist/esm/src/msca/plugins/session-key/extension.js +23 -0
  103. package/dist/esm/src/msca/plugins/session-key/extension.js.map +1 -1
  104. package/dist/esm/src/msca/plugins/session-key/permissions.d.ts +150 -1
  105. package/dist/esm/src/msca/plugins/session-key/permissions.js +150 -1
  106. package/dist/esm/src/msca/plugins/session-key/permissions.js.map +1 -1
  107. package/dist/esm/src/msca/plugins/session-key/plugin.js.map +1 -1
  108. package/dist/esm/src/msca/plugins/session-key/signer.d.ts +80 -0
  109. package/dist/esm/src/msca/plugins/session-key/signer.js +80 -0
  110. package/dist/esm/src/msca/plugins/session-key/signer.js.map +1 -1
  111. package/dist/esm/src/msca/plugins/session-key/utils.d.ts +18 -0
  112. package/dist/esm/src/msca/plugins/session-key/utils.js +18 -0
  113. package/dist/esm/src/msca/plugins/session-key/utils.js.map +1 -1
  114. package/dist/esm/src/msca/utils.d.ts +50 -0
  115. package/dist/esm/src/msca/utils.js +50 -0
  116. package/dist/esm/src/msca/utils.js.map +1 -1
  117. package/dist/types/plugindefs/multi-owner/config.d.ts.map +1 -1
  118. package/dist/types/plugindefs/multisig/config.d.ts.map +1 -1
  119. package/dist/types/plugindefs/session-key/config.d.ts.map +1 -1
  120. package/dist/types/src/index.d.ts +1 -1
  121. package/dist/types/src/index.d.ts.map +1 -1
  122. package/dist/types/src/light-account/clients/client.d.ts +1 -2
  123. package/dist/types/src/light-account/clients/client.d.ts.map +1 -1
  124. package/dist/types/src/light-account/clients/multiOwnerLightAccount.d.ts +1 -2
  125. package/dist/types/src/light-account/clients/multiOwnerLightAccount.d.ts.map +1 -1
  126. package/dist/types/src/msca/client/client.d.ts +2 -6
  127. package/dist/types/src/msca/client/client.d.ts.map +1 -1
  128. package/dist/types/src/msca/plugins/multi-owner/plugin.d.ts.map +1 -1
  129. package/dist/types/src/msca/plugins/multisig/plugin.d.ts.map +1 -1
  130. package/dist/types/src/msca/plugins/session-key/plugin.d.ts.map +1 -1
  131. package/package.json +13 -14
  132. package/plugindefs/multi-owner/config.ts +4 -5
  133. package/plugindefs/multisig/config.ts +4 -5
  134. package/plugindefs/session-key/config.ts +4 -6
  135. package/src/index.ts +1 -0
  136. package/src/light-account/clients/client.ts +8 -13
  137. package/src/light-account/clients/multiOwnerLightAccount.ts +11 -13
  138. package/src/msca/client/client.ts +24 -36
  139. package/src/msca/plugins/multi-owner/plugin.ts +5 -1
  140. package/src/msca/plugins/multisig/plugin.ts +5 -1
  141. package/src/msca/plugins/session-key/plugin.ts +5 -1
  142. package/dist/cjs/package.json +0 -1
  143. package/dist/cjs/plugindefs/index.d.ts +0 -3
  144. package/dist/cjs/plugindefs/index.js +0 -10
  145. package/dist/cjs/plugindefs/index.js.map +0 -1
  146. package/dist/cjs/plugindefs/multi-owner/abi.d.ts +0 -698
  147. package/dist/cjs/plugindefs/multi-owner/abi.js +0 -612
  148. package/dist/cjs/plugindefs/multi-owner/abi.js.map +0 -1
  149. package/dist/cjs/plugindefs/multi-owner/config.d.ts +0 -2
  150. package/dist/cjs/plugindefs/multi-owner/config.js +0 -31
  151. package/dist/cjs/plugindefs/multi-owner/config.js.map +0 -1
  152. package/dist/cjs/plugindefs/multisig/abi.d.ts +0 -791
  153. package/dist/cjs/plugindefs/multisig/abi.js +0 -1031
  154. package/dist/cjs/plugindefs/multisig/abi.js.map +0 -1
  155. package/dist/cjs/plugindefs/multisig/config.d.ts +0 -2
  156. package/dist/cjs/plugindefs/multisig/config.js +0 -30
  157. package/dist/cjs/plugindefs/multisig/config.js.map +0 -1
  158. package/dist/cjs/plugindefs/session-key/abi.d.ts +0 -1061
  159. package/dist/cjs/plugindefs/session-key/abi.js +0 -916
  160. package/dist/cjs/plugindefs/session-key/abi.js.map +0 -1
  161. package/dist/cjs/plugindefs/session-key/config.d.ts +0 -2
  162. package/dist/cjs/plugindefs/session-key/config.js +0 -43
  163. package/dist/cjs/plugindefs/session-key/config.js.map +0 -1
  164. package/dist/cjs/plugindefs/types.d.ts +0 -15
  165. package/dist/cjs/plugindefs/types.js +0 -3
  166. package/dist/cjs/plugindefs/types.js.map +0 -1
  167. package/dist/cjs/src/index.d.ts +0 -53
  168. package/dist/cjs/src/index.js +0 -105
  169. package/dist/cjs/src/index.js.map +0 -1
  170. package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.d.ts +0 -532
  171. package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.js +0 -382
  172. package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.js.map +0 -1
  173. package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.d.ts +0 -491
  174. package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.js +0 -358
  175. package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.js.map +0 -1
  176. package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.d.ts +0 -55
  177. package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.js +0 -78
  178. package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.js.map +0 -1
  179. package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.d.ts +0 -256
  180. package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.js +0 -213
  181. package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.js.map +0 -1
  182. package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.d.ts +0 -507
  183. package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.js +0 -375
  184. package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.js.map +0 -1
  185. package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts +0 -286
  186. package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.js +0 -232
  187. package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.js.map +0 -1
  188. package/dist/cjs/src/light-account/accounts/account.d.ts +0 -17
  189. package/dist/cjs/src/light-account/accounts/account.js +0 -79
  190. package/dist/cjs/src/light-account/accounts/account.js.map +0 -1
  191. package/dist/cjs/src/light-account/accounts/base.d.ts +0 -15
  192. package/dist/cjs/src/light-account/accounts/base.js +0 -143
  193. package/dist/cjs/src/light-account/accounts/base.js.map +0 -1
  194. package/dist/cjs/src/light-account/accounts/multiOwner.d.ts +0 -18
  195. package/dist/cjs/src/light-account/accounts/multiOwner.js +0 -80
  196. package/dist/cjs/src/light-account/accounts/multiOwner.js.map +0 -1
  197. package/dist/cjs/src/light-account/actions/transferOwnership.d.ts +0 -8
  198. package/dist/cjs/src/light-account/actions/transferOwnership.js +0 -28
  199. package/dist/cjs/src/light-account/actions/transferOwnership.js.map +0 -1
  200. package/dist/cjs/src/light-account/actions/updateOwners.d.ts +0 -9
  201. package/dist/cjs/src/light-account/actions/updateOwners.js +0 -27
  202. package/dist/cjs/src/light-account/actions/updateOwners.js.map +0 -1
  203. package/dist/cjs/src/light-account/clients/alchemyClient.d.ts +0 -6
  204. package/dist/cjs/src/light-account/clients/alchemyClient.js +0 -25
  205. package/dist/cjs/src/light-account/clients/alchemyClient.js.map +0 -1
  206. package/dist/cjs/src/light-account/clients/client.d.ts +0 -10
  207. package/dist/cjs/src/light-account/clients/client.js +0 -22
  208. package/dist/cjs/src/light-account/clients/client.js.map +0 -1
  209. package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.d.ts +0 -6
  210. package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.js +0 -25
  211. package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.js.map +0 -1
  212. package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.d.ts +0 -10
  213. package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.js +0 -22
  214. package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.js.map +0 -1
  215. package/dist/cjs/src/light-account/decorators/lightAccount.d.ts +0 -8
  216. package/dist/cjs/src/light-account/decorators/lightAccount.js +0 -9
  217. package/dist/cjs/src/light-account/decorators/lightAccount.js.map +0 -1
  218. package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.d.ts +0 -8
  219. package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.js +0 -9
  220. package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.js.map +0 -1
  221. package/dist/cjs/src/light-account/e2e-tests/constants.d.ts +0 -6
  222. package/dist/cjs/src/light-account/e2e-tests/constants.js +0 -10
  223. package/dist/cjs/src/light-account/e2e-tests/constants.js.map +0 -1
  224. package/dist/cjs/src/light-account/types.d.ts +0 -31
  225. package/dist/cjs/src/light-account/types.js +0 -3
  226. package/dist/cjs/src/light-account/types.js.map +0 -1
  227. package/dist/cjs/src/light-account/utils.d.ts +0 -10
  228. package/dist/cjs/src/light-account/utils.js +0 -108
  229. package/dist/cjs/src/light-account/utils.js.map +0 -1
  230. package/dist/cjs/src/msca/abis/IAccountLoupe.d.ts +0 -79
  231. package/dist/cjs/src/msca/abis/IAccountLoupe.js +0 -82
  232. package/dist/cjs/src/msca/abis/IAccountLoupe.js.map +0 -1
  233. package/dist/cjs/src/msca/abis/IPlugin.d.ts +0 -474
  234. package/dist/cjs/src/msca/abis/IPlugin.js +0 -400
  235. package/dist/cjs/src/msca/abis/IPlugin.js.map +0 -1
  236. package/dist/cjs/src/msca/abis/IPluginManager.d.ts +0 -101
  237. package/dist/cjs/src/msca/abis/IPluginManager.js +0 -109
  238. package/dist/cjs/src/msca/abis/IPluginManager.js.map +0 -1
  239. package/dist/cjs/src/msca/abis/IStandardExecutor.d.ts +0 -50
  240. package/dist/cjs/src/msca/abis/IStandardExecutor.js +0 -35
  241. package/dist/cjs/src/msca/abis/IStandardExecutor.js.map +0 -1
  242. package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.d.ts +0 -234
  243. package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.js +0 -194
  244. package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.js.map +0 -1
  245. package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.d.ts +0 -246
  246. package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.js +0 -320
  247. package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.js.map +0 -1
  248. package/dist/cjs/src/msca/abis/UpgradeableModularAccount.d.ts +0 -880
  249. package/dist/cjs/src/msca/abis/UpgradeableModularAccount.js +0 -649
  250. package/dist/cjs/src/msca/abis/UpgradeableModularAccount.js.map +0 -1
  251. package/dist/cjs/src/msca/account/multiOwnerAccount.d.ts +0 -12
  252. package/dist/cjs/src/msca/account/multiOwnerAccount.js +0 -60
  253. package/dist/cjs/src/msca/account/multiOwnerAccount.js.map +0 -1
  254. package/dist/cjs/src/msca/account/multisigAccount.d.ts +0 -17
  255. package/dist/cjs/src/msca/account/multisigAccount.js +0 -71
  256. package/dist/cjs/src/msca/account/multisigAccount.js.map +0 -1
  257. package/dist/cjs/src/msca/account/standardExecutor.d.ts +0 -2
  258. package/dist/cjs/src/msca/account/standardExecutor.js +0 -28
  259. package/dist/cjs/src/msca/account/standardExecutor.js.map +0 -1
  260. package/dist/cjs/src/msca/account-loupe/decorator.d.ts +0 -16
  261. package/dist/cjs/src/msca/account-loupe/decorator.js +0 -66
  262. package/dist/cjs/src/msca/account-loupe/decorator.js.map +0 -1
  263. package/dist/cjs/src/msca/account-loupe/types.d.ts +0 -16
  264. package/dist/cjs/src/msca/account-loupe/types.js +0 -3
  265. package/dist/cjs/src/msca/account-loupe/types.js.map +0 -1
  266. package/dist/cjs/src/msca/client/alchemyClient.d.ts +0 -6
  267. package/dist/cjs/src/msca/client/alchemyClient.js +0 -28
  268. package/dist/cjs/src/msca/client/alchemyClient.js.map +0 -1
  269. package/dist/cjs/src/msca/client/client.d.ts +0 -17
  270. package/dist/cjs/src/msca/client/client.js +0 -49
  271. package/dist/cjs/src/msca/client/client.js.map +0 -1
  272. package/dist/cjs/src/msca/client/multiSigAlchemyClient.d.ts +0 -6
  273. package/dist/cjs/src/msca/client/multiSigAlchemyClient.js +0 -31
  274. package/dist/cjs/src/msca/client/multiSigAlchemyClient.js.map +0 -1
  275. package/dist/cjs/src/msca/e2e-tests/constants.d.ts +0 -3
  276. package/dist/cjs/src/msca/e2e-tests/constants.js +0 -7
  277. package/dist/cjs/src/msca/e2e-tests/constants.js.map +0 -1
  278. package/dist/cjs/src/msca/errors.d.ts +0 -17
  279. package/dist/cjs/src/msca/errors.js +0 -53
  280. package/dist/cjs/src/msca/errors.js.map +0 -1
  281. package/dist/cjs/src/msca/plugin-manager/decorator.d.ts +0 -11
  282. package/dist/cjs/src/msca/plugin-manager/decorator.js +0 -13
  283. package/dist/cjs/src/msca/plugin-manager/decorator.js.map +0 -1
  284. package/dist/cjs/src/msca/plugin-manager/installPlugin.d.ts +0 -11
  285. package/dist/cjs/src/msca/plugin-manager/installPlugin.js +0 -48
  286. package/dist/cjs/src/msca/plugin-manager/installPlugin.js.map +0 -1
  287. package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.d.ts +0 -9
  288. package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.js +0 -35
  289. package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.js.map +0 -1
  290. package/dist/cjs/src/msca/plugins/multi-owner/extension.d.ts +0 -13
  291. package/dist/cjs/src/msca/plugins/multi-owner/extension.js +0 -26
  292. package/dist/cjs/src/msca/plugins/multi-owner/extension.js.map +0 -1
  293. package/dist/cjs/src/msca/plugins/multi-owner/index.d.ts +0 -3
  294. package/dist/cjs/src/msca/plugins/multi-owner/index.js +0 -10
  295. package/dist/cjs/src/msca/plugins/multi-owner/index.js.map +0 -1
  296. package/dist/cjs/src/msca/plugins/multi-owner/plugin.d.ts +0 -793
  297. package/dist/cjs/src/msca/plugins/multi-owner/plugin.js +0 -695
  298. package/dist/cjs/src/msca/plugins/multi-owner/plugin.js.map +0 -1
  299. package/dist/cjs/src/msca/plugins/multi-owner/signer.d.ts +0 -215
  300. package/dist/cjs/src/msca/plugins/multi-owner/signer.js +0 -47
  301. package/dist/cjs/src/msca/plugins/multi-owner/signer.js.map +0 -1
  302. package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.d.ts +0 -4
  303. package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.js +0 -20
  304. package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.js.map +0 -1
  305. package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.d.ts +0 -6
  306. package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.js +0 -15
  307. package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.js.map +0 -1
  308. package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.d.ts +0 -4
  309. package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.js +0 -47
  310. package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.js.map +0 -1
  311. package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.d.ts +0 -4
  312. package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.js +0 -15
  313. package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.js.map +0 -1
  314. package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.d.ts +0 -4
  315. package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.js +0 -54
  316. package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.js.map +0 -1
  317. package/dist/cjs/src/msca/plugins/multisig/extension.d.ts +0 -17
  318. package/dist/cjs/src/msca/plugins/multisig/extension.js +0 -19
  319. package/dist/cjs/src/msca/plugins/multisig/extension.js.map +0 -1
  320. package/dist/cjs/src/msca/plugins/multisig/index.d.ts +0 -5
  321. package/dist/cjs/src/msca/plugins/multisig/index.js +0 -12
  322. package/dist/cjs/src/msca/plugins/multisig/index.js.map +0 -1
  323. package/dist/cjs/src/msca/plugins/multisig/middleware.d.ts +0 -3
  324. package/dist/cjs/src/msca/plugins/multisig/middleware.js +0 -97
  325. package/dist/cjs/src/msca/plugins/multisig/middleware.js.map +0 -1
  326. package/dist/cjs/src/msca/plugins/multisig/plugin.d.ts +0 -892
  327. package/dist/cjs/src/msca/plugins/multisig/plugin.js +0 -740
  328. package/dist/cjs/src/msca/plugins/multisig/plugin.js.map +0 -1
  329. package/dist/cjs/src/msca/plugins/multisig/signer.d.ts +0 -223
  330. package/dist/cjs/src/msca/plugins/multisig/signer.js +0 -57
  331. package/dist/cjs/src/msca/plugins/multisig/signer.js.map +0 -1
  332. package/dist/cjs/src/msca/plugins/multisig/types.d.ts +0 -34
  333. package/dist/cjs/src/msca/plugins/multisig/types.js +0 -3
  334. package/dist/cjs/src/msca/plugins/multisig/types.js.map +0 -1
  335. package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.d.ts +0 -10
  336. package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.js +0 -15
  337. package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.js.map +0 -1
  338. package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.d.ts +0 -2
  339. package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.js +0 -42
  340. package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.js.map +0 -1
  341. package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.d.ts +0 -10
  342. package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.js +0 -13
  343. package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.js.map +0 -1
  344. package/dist/cjs/src/msca/plugins/multisig/utils/index.d.ts +0 -8
  345. package/dist/cjs/src/msca/plugins/multisig/utils/index.js +0 -12
  346. package/dist/cjs/src/msca/plugins/multisig/utils/index.js.map +0 -1
  347. package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +0 -16
  348. package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.js +0 -74
  349. package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.js.map +0 -1
  350. package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.d.ts +0 -117
  351. package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.js +0 -115
  352. package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.js.map +0 -1
  353. package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.d.ts +0 -1
  354. package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.js +0 -5
  355. package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.js.map +0 -1
  356. package/dist/cjs/src/msca/plugins/session-key/extension.d.ts +0 -30
  357. package/dist/cjs/src/msca/plugins/session-key/extension.js +0 -156
  358. package/dist/cjs/src/msca/plugins/session-key/extension.js.map +0 -1
  359. package/dist/cjs/src/msca/plugins/session-key/index.d.ts +0 -3
  360. package/dist/cjs/src/msca/plugins/session-key/index.js +0 -10
  361. package/dist/cjs/src/msca/plugins/session-key/index.js.map +0 -1
  362. package/dist/cjs/src/msca/plugins/session-key/permissions.d.ts +0 -53
  363. package/dist/cjs/src/msca/plugins/session-key/permissions.js +0 -153
  364. package/dist/cjs/src/msca/plugins/session-key/permissions.js.map +0 -1
  365. package/dist/cjs/src/msca/plugins/session-key/plugin.d.ts +0 -1200
  366. package/dist/cjs/src/msca/plugins/session-key/plugin.js +0 -1044
  367. package/dist/cjs/src/msca/plugins/session-key/plugin.js.map +0 -1
  368. package/dist/cjs/src/msca/plugins/session-key/signer.d.ts +0 -233
  369. package/dist/cjs/src/msca/plugins/session-key/signer.js +0 -101
  370. package/dist/cjs/src/msca/plugins/session-key/signer.js.map +0 -1
  371. package/dist/cjs/src/msca/plugins/session-key/utils.d.ts +0 -11
  372. package/dist/cjs/src/msca/plugins/session-key/utils.js +0 -22
  373. package/dist/cjs/src/msca/plugins/session-key/utils.js.map +0 -1
  374. package/dist/cjs/src/msca/plugins/types.d.ts +0 -12
  375. package/dist/cjs/src/msca/plugins/types.js +0 -3
  376. package/dist/cjs/src/msca/plugins/types.js.map +0 -1
  377. package/dist/cjs/src/msca/utils.d.ts +0 -17
  378. package/dist/cjs/src/msca/utils.js +0 -99
  379. package/dist/cjs/src/msca/utils.js.map +0 -1
  380. package/dist/esm/package.json +0 -1
  381. package/dist/esm/src/light-account/e2e-tests/constants.d.ts +0 -6
  382. package/dist/esm/src/light-account/e2e-tests/constants.js +0 -7
  383. package/dist/esm/src/light-account/e2e-tests/constants.js.map +0 -1
  384. package/dist/types/src/light-account/e2e-tests/constants.d.ts +0 -7
  385. package/dist/types/src/light-account/e2e-tests/constants.d.ts.map +0 -1
  386. package/src/light-account/e2e-tests/constants.ts +0 -8
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/session-key/extension.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n GetEntryPointFromAccount,\n UserOperationOverridesParameter,\n} from \"@aa-sdk/core\";\nimport {\n AccountNotFoundError,\n isSmartAccountClient,\n type GetAccountParameter,\n type IsUndefined,\n type SendUserOperationResult,\n type SmartContractAccount,\n type UserOperationOverrides,\n} from \"@aa-sdk/core\";\nimport type { Address, Chain, Client, Hex, Transport } from \"viem\";\nimport type { GetPluginAddressParameter } from \"../types.js\";\nimport {\n SessionKeyPlugin,\n sessionKeyPluginActions as sessionKeyPluginActions_,\n type SessionKeyPluginActions as SessionKeyPluginActions_,\n} from \"./plugin.js\";\nimport { buildSessionKeysToRemoveStruct } from \"./utils.js\";\n\nexport type SessionKeyPluginActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>\n> = Omit<\n SessionKeyPluginActions_<TAccount>,\n | \"removeSessionKey\"\n | \"addSessionKey\"\n | \"rotateSessionKey\"\n | \"updateKeyPermissions\"\n> & {\n isAccountSessionKey: (\n args: { key: Address } & GetPluginAddressParameter &\n GetAccountParameter<TAccount>\n ) => Promise<boolean>;\n\n getAccountSessionKeys: (\n args: GetPluginAddressParameter & GetAccountParameter<TAccount>\n ) => Promise<ReadonlyArray<Address>>;\n\n removeSessionKey: (\n args: { key: Address } & GetPluginAddressParameter &\n GetAccountParameter<TAccount> &\n UserOperationOverridesParameter<TEntryPointVersion>\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n\n addSessionKey: (\n args: {\n key: Address;\n permissions: Hex[];\n tag: Hex;\n } & GetPluginAddressParameter &\n GetAccountParameter<TAccount> &\n UserOperationOverridesParameter<TEntryPointVersion>\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n\n rotateSessionKey: (\n args: {\n oldKey: Address;\n newKey: Address;\n } & GetPluginAddressParameter &\n GetAccountParameter<TAccount> &\n UserOperationOverridesParameter<TEntryPointVersion>\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n\n updateSessionKeyPermissions: (\n args: {\n key: Address;\n permissions: Hex[];\n } & GetPluginAddressParameter &\n GetAccountParameter<TAccount> &\n UserOperationOverridesParameter<TEntryPointVersion>\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n} & (IsUndefined<TAccount> extends false\n ? {\n getAccountSessionKeys: (\n args?: GetPluginAddressParameter & GetAccountParameter<TAccount>\n ) => Promise<ReadonlyArray<Address>>;\n }\n : {});\n\n/**\n * Creates actions for managing session keys in a smart contract associated with a client, including adding, removing, rotating, and updating session key permissions.\n *\n * @example\n * ```ts\n * import { createModularAccountAlchemyClient, sessionKeyPluginActions } from \"@account-kit/smart-contracts\";\n *\n * const client = createModularAccountAlchemyClient(...).extend(sessionKeyPluginActions);\n * ```\n *\n * @param {Client<TTransport, TChain, TAccount>} client The client instance to use for managing session keys\n * @returns {SessionKeyPluginActions<TAccount>} An object containing methods for session key management and interaction with the smart contract\n */\nexport const sessionKeyPluginActions: <\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined\n>(\n client: Client<TTransport, TChain, TAccount>\n) => SessionKeyPluginActions<TAccount> = <\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>\n>(\n client: Client<TTransport, TChain, TAccount>\n) => {\n const {\n removeSessionKey,\n addSessionKey,\n rotateSessionKey,\n updateKeyPermissions,\n executeWithSessionKey,\n ...og\n } = sessionKeyPluginActions_<TTransport, TChain, TAccount>(client);\n\n // The session key plugin returns an opaque error when the permissions check\n // fails. We want the SDK to return a helpful error instead. After validation\n // fails, rerun the user op simulation but using state overrides to replace\n // the code of the session key plugin with a version that produces descriptive\n // errors.\n const fixedExecuteWithSessionKey: typeof executeWithSessionKey = async (\n ...originalArgs\n ) => {\n let initialError: unknown;\n try {\n return await executeWithSessionKey(...originalArgs);\n } catch (error) {\n initialError = error;\n }\n const details = getRpcErrorMessageFromViemError(initialError);\n if (!details?.includes(\"AA23 reverted (or OOG)\")) {\n throw initialError;\n }\n if (!isSmartAccountClient(client) || !client.chain) {\n throw initialError;\n }\n const {\n args,\n overrides,\n context,\n account = client.account,\n } = originalArgs[0];\n if (!account) {\n throw initialError;\n }\n const data = og.encodeExecuteWithSessionKey({ args });\n const sessionKeyPluginAddress =\n SessionKeyPlugin.meta.addresses[client.chain.id];\n // The bytecode is 10kb of hex. Only import it if needed.\n const { DEBUG_SESSION_KEY_BYTECODE } = await import(\n \"./debug-session-key-bytecode.js\"\n );\n const updatedOverrides: UserOperationOverrides<TEntryPointVersion> = {\n ...(overrides as UserOperationOverrides<TEntryPointVersion>),\n stateOverride: [\n ...(overrides?.stateOverride ?? []),\n {\n address: sessionKeyPluginAddress,\n code: DEBUG_SESSION_KEY_BYTECODE,\n },\n ],\n };\n try {\n await client.buildUserOperation({\n uo: data,\n overrides: updatedOverrides,\n context,\n account,\n });\n // We expect this to fail because we just saw the same user op fail a\n // moment ago. It could succeed if the state of the chain has changed but\n // there's not much we can do with a successful result so return the\n // original error.\n throw initialError;\n } catch (improvedError) {\n const details = getRpcErrorMessageFromViemError(improvedError) ?? \"\";\n const reason = details.match(/AA23 reverted: (.+)/)?.[1];\n if (!reason) {\n throw initialError;\n }\n throw new SessionKeyPermissionError(reason);\n }\n };\n\n return {\n ...og,\n\n executeWithSessionKey: fixedExecuteWithSessionKey,\n\n isAccountSessionKey: async ({\n key,\n pluginAddress,\n account = client.account,\n }) => {\n if (!account) throw new AccountNotFoundError();\n\n const contract = SessionKeyPlugin.getContract(client, pluginAddress);\n\n return await contract.read.isSessionKeyOf([account.address, key]);\n },\n\n getAccountSessionKeys: async (\n args: GetPluginAddressParameter & GetAccountParameter<TAccount>\n ) => {\n const account = args?.account ?? client.account;\n if (!account) throw new AccountNotFoundError();\n\n const contract = SessionKeyPlugin.getContract(\n client,\n args?.pluginAddress\n );\n\n return await contract.read.sessionKeysOf([account.address]);\n },\n\n removeSessionKey: async ({\n key,\n overrides,\n account = client.account,\n pluginAddress,\n }) => {\n if (!account) throw new AccountNotFoundError();\n\n const sessionKeysToRemove = await buildSessionKeysToRemoveStruct(client, {\n keys: [key],\n account,\n pluginAddress,\n });\n\n return removeSessionKey({\n args: [key, sessionKeysToRemove[0].predecessor],\n overrides: overrides as UserOperationOverrides<TEntryPointVersion>,\n account,\n });\n },\n\n addSessionKey: async ({\n key,\n tag,\n permissions,\n overrides,\n pluginAddress,\n account = client.account,\n }) => {\n if (!account) throw new AccountNotFoundError();\n\n return addSessionKey({\n args: [key, tag, permissions],\n overrides: overrides as UserOperationOverrides<TEntryPointVersion>,\n account,\n pluginAddress,\n });\n },\n\n rotateSessionKey: async ({\n newKey,\n oldKey,\n overrides,\n pluginAddress,\n account = client.account,\n }) => {\n if (!account) throw new AccountNotFoundError();\n\n const contract = SessionKeyPlugin.getContract(client, pluginAddress);\n\n const predecessor = await contract.read.findPredecessor([\n account.address,\n oldKey,\n ]);\n\n return rotateSessionKey({\n args: [oldKey, predecessor, newKey],\n overrides: overrides as UserOperationOverrides<TEntryPointVersion>,\n account,\n pluginAddress,\n });\n },\n\n updateSessionKeyPermissions: async ({\n key,\n permissions,\n overrides,\n pluginAddress,\n account = client.account,\n }) => {\n if (!account) throw new AccountNotFoundError();\n\n return updateKeyPermissions({\n args: [key, permissions],\n overrides: overrides as UserOperationOverrides<\n GetEntryPointFromAccount<TAccount>\n >,\n account,\n pluginAddress,\n });\n },\n };\n};\n\nfunction getRpcErrorMessageFromViemError(error: unknown): string | undefined {\n const details = (error as any)?.details;\n return typeof details === \"string\" ? details : undefined;\n}\n\nclass SessionKeyPermissionError extends Error {}\n"]}
@@ -1,3 +0,0 @@
1
- export type * from "./extension.js";
2
- export { sessionKeyPluginActions } from "./extension.js";
3
- export { SessionKeyPlugin, SessionKeyPluginAbi, SessionKeyPluginExecutionFunctionAbi, type InstallSessionKeyPluginParams, } from "./plugin.js";
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionKeyPluginExecutionFunctionAbi = exports.SessionKeyPluginAbi = exports.SessionKeyPlugin = exports.sessionKeyPluginActions = void 0;
4
- var extension_js_1 = require("./extension.js");
5
- Object.defineProperty(exports, "sessionKeyPluginActions", { enumerable: true, get: function () { return extension_js_1.sessionKeyPluginActions; } });
6
- var plugin_js_1 = require("./plugin.js");
7
- Object.defineProperty(exports, "SessionKeyPlugin", { enumerable: true, get: function () { return plugin_js_1.SessionKeyPlugin; } });
8
- Object.defineProperty(exports, "SessionKeyPluginAbi", { enumerable: true, get: function () { return plugin_js_1.SessionKeyPluginAbi; } });
9
- Object.defineProperty(exports, "SessionKeyPluginExecutionFunctionAbi", { enumerable: true, get: function () { return plugin_js_1.SessionKeyPluginExecutionFunctionAbi; } });
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/session-key/index.ts"],"names":[],"mappings":";;;AACA,+CAAyD;AAAhD,uHAAA,uBAAuB,OAAA;AAEhC,yCAKqB;AAJnB,6GAAA,gBAAgB,OAAA;AAChB,gHAAA,mBAAmB,OAAA;AACnB,iIAAA,oCAAoC,OAAA","sourcesContent":["export type * from \"./extension.js\";\nexport { sessionKeyPluginActions } from \"./extension.js\";\n\nexport {\n SessionKeyPlugin,\n SessionKeyPluginAbi,\n SessionKeyPluginExecutionFunctionAbi,\n type InstallSessionKeyPluginParams,\n} from \"./plugin.js\";\n"]}
@@ -1,53 +0,0 @@
1
- import { type Address, type Hex } from "viem";
2
- export declare enum SessionKeyAccessListType {
3
- ALLOWLIST = 0,
4
- DENYLIST = 1,
5
- ALLOW_ALL_ACCESS = 2
6
- }
7
- export type ContractAccessEntry = {
8
- contractAddress: Address;
9
- isOnList: boolean;
10
- checkSelectors: boolean;
11
- };
12
- export type ContractMethodEntry = {
13
- contractAddress: Address;
14
- methodSelector: Hex;
15
- isOnList: boolean;
16
- };
17
- export type TimeRange = {
18
- validFrom: number;
19
- validUntil: number;
20
- };
21
- export type NativeTokenLimit = {
22
- spendLimit: bigint;
23
- refreshInterval?: number;
24
- };
25
- export type Erc20TokenLimit = {
26
- tokenAddress: Address;
27
- spendLimit: bigint;
28
- refreshInterval?: number;
29
- };
30
- export type GasSpendLimit = {
31
- spendLimit: bigint;
32
- refreshInterval?: number;
33
- };
34
- export declare class SessionKeyPermissionsBuilder {
35
- private _contractAccessControlType;
36
- private _contractAddressAccessEntrys;
37
- private _contractMethodAccessEntrys;
38
- private _timeRange?;
39
- private _nativeTokenSpendLimit?;
40
- private _erc20TokenSpendLimits;
41
- private _gasSpendLimit?;
42
- private _requiredPaymaster?;
43
- setContractAccessControlType(aclType: SessionKeyAccessListType): this;
44
- addContractAddressAccessEntry(entry: ContractAccessEntry): this;
45
- addContractFunctionAccessEntry(entry: ContractMethodEntry): this;
46
- setTimeRange(timeRange: TimeRange): this;
47
- setNativeTokenSpendLimit(limit: NativeTokenLimit): this;
48
- addErc20TokenSpendLimit(limit: Erc20TokenLimit): this;
49
- setGasSpendLimit(limit: GasSpendLimit): this;
50
- setRequiredPaymaster(paymaster: Address): this;
51
- encode(): Hex[];
52
- private encodeIfDefined;
53
- }
@@ -1,153 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionKeyPermissionsBuilder = exports.SessionKeyAccessListType = void 0;
4
- const viem_1 = require("viem");
5
- const SessionKeyPermissionsUpdatesAbi_js_1 = require("./SessionKeyPermissionsUpdatesAbi.js");
6
- var SessionKeyAccessListType;
7
- (function (SessionKeyAccessListType) {
8
- SessionKeyAccessListType[SessionKeyAccessListType["ALLOWLIST"] = 0] = "ALLOWLIST";
9
- SessionKeyAccessListType[SessionKeyAccessListType["DENYLIST"] = 1] = "DENYLIST";
10
- SessionKeyAccessListType[SessionKeyAccessListType["ALLOW_ALL_ACCESS"] = 2] = "ALLOW_ALL_ACCESS";
11
- })(SessionKeyAccessListType || (exports.SessionKeyAccessListType = SessionKeyAccessListType = {}));
12
- class SessionKeyPermissionsBuilder {
13
- constructor() {
14
- Object.defineProperty(this, "_contractAccessControlType", {
15
- enumerable: true,
16
- configurable: true,
17
- writable: true,
18
- value: SessionKeyAccessListType.ALLOWLIST
19
- });
20
- Object.defineProperty(this, "_contractAddressAccessEntrys", {
21
- enumerable: true,
22
- configurable: true,
23
- writable: true,
24
- value: []
25
- });
26
- Object.defineProperty(this, "_contractMethodAccessEntrys", {
27
- enumerable: true,
28
- configurable: true,
29
- writable: true,
30
- value: []
31
- });
32
- Object.defineProperty(this, "_timeRange", {
33
- enumerable: true,
34
- configurable: true,
35
- writable: true,
36
- value: void 0
37
- });
38
- Object.defineProperty(this, "_nativeTokenSpendLimit", {
39
- enumerable: true,
40
- configurable: true,
41
- writable: true,
42
- value: void 0
43
- });
44
- Object.defineProperty(this, "_erc20TokenSpendLimits", {
45
- enumerable: true,
46
- configurable: true,
47
- writable: true,
48
- value: []
49
- });
50
- Object.defineProperty(this, "_gasSpendLimit", {
51
- enumerable: true,
52
- configurable: true,
53
- writable: true,
54
- value: void 0
55
- });
56
- Object.defineProperty(this, "_requiredPaymaster", {
57
- enumerable: true,
58
- configurable: true,
59
- writable: true,
60
- value: void 0
61
- });
62
- }
63
- setContractAccessControlType(aclType) {
64
- this._contractAccessControlType = aclType;
65
- return this;
66
- }
67
- addContractAddressAccessEntry(entry) {
68
- this._contractAddressAccessEntrys.push(entry);
69
- return this;
70
- }
71
- addContractFunctionAccessEntry(entry) {
72
- this._contractMethodAccessEntrys.push(entry);
73
- return this;
74
- }
75
- setTimeRange(timeRange) {
76
- this._timeRange = timeRange;
77
- return this;
78
- }
79
- setNativeTokenSpendLimit(limit) {
80
- this._nativeTokenSpendLimit = limit;
81
- return this;
82
- }
83
- addErc20TokenSpendLimit(limit) {
84
- this._erc20TokenSpendLimits.push(limit);
85
- return this;
86
- }
87
- setGasSpendLimit(limit) {
88
- this._gasSpendLimit = limit;
89
- return this;
90
- }
91
- setRequiredPaymaster(paymaster) {
92
- this._requiredPaymaster = paymaster;
93
- return this;
94
- }
95
- encode() {
96
- return [
97
- (0, viem_1.encodeFunctionData)({
98
- abi: SessionKeyPermissionsUpdatesAbi_js_1.SessionKeyPermissionsUpdatesAbi,
99
- functionName: "setAccessListType",
100
- args: [this._contractAccessControlType],
101
- }),
102
- ...this._contractAddressAccessEntrys.map((entry) => (0, viem_1.encodeFunctionData)({
103
- abi: SessionKeyPermissionsUpdatesAbi_js_1.SessionKeyPermissionsUpdatesAbi,
104
- functionName: "updateAccessListAddressEntry",
105
- args: [entry.contractAddress, entry.isOnList, entry.checkSelectors],
106
- })),
107
- ...this._contractMethodAccessEntrys.map((entry) => (0, viem_1.encodeFunctionData)({
108
- abi: SessionKeyPermissionsUpdatesAbi_js_1.SessionKeyPermissionsUpdatesAbi,
109
- functionName: "updateAccessListFunctionEntry",
110
- args: [entry.contractAddress, entry.methodSelector, entry.isOnList],
111
- })),
112
- this.encodeIfDefined((timeRange) => (0, viem_1.encodeFunctionData)({
113
- abi: SessionKeyPermissionsUpdatesAbi_js_1.SessionKeyPermissionsUpdatesAbi,
114
- functionName: "updateTimeRange",
115
- args: [timeRange.validFrom, timeRange.validUntil],
116
- }), this._timeRange),
117
- this.encodeIfDefined((nativeSpendLimit) => (0, viem_1.encodeFunctionData)({
118
- abi: SessionKeyPermissionsUpdatesAbi_js_1.SessionKeyPermissionsUpdatesAbi,
119
- functionName: "setNativeTokenSpendLimit",
120
- args: [
121
- nativeSpendLimit.spendLimit,
122
- nativeSpendLimit.refreshInterval ?? 0,
123
- ],
124
- }), this._nativeTokenSpendLimit),
125
- ...this._erc20TokenSpendLimits.map((erc20SpendLimit) => (0, viem_1.encodeFunctionData)({
126
- abi: SessionKeyPermissionsUpdatesAbi_js_1.SessionKeyPermissionsUpdatesAbi,
127
- functionName: "setERC20SpendLimit",
128
- args: [
129
- erc20SpendLimit.tokenAddress,
130
- erc20SpendLimit.spendLimit,
131
- erc20SpendLimit.refreshInterval ?? 0,
132
- ],
133
- })),
134
- this.encodeIfDefined((spendLimit) => (0, viem_1.encodeFunctionData)({
135
- abi: SessionKeyPermissionsUpdatesAbi_js_1.SessionKeyPermissionsUpdatesAbi,
136
- functionName: "setGasSpendLimit",
137
- args: [spendLimit.spendLimit, spendLimit.refreshInterval ?? 0],
138
- }), this._gasSpendLimit),
139
- this.encodeIfDefined((paymaster) => (0, viem_1.encodeFunctionData)({
140
- abi: SessionKeyPermissionsUpdatesAbi_js_1.SessionKeyPermissionsUpdatesAbi,
141
- functionName: "setRequiredPaymaster",
142
- args: [paymaster],
143
- }), this._requiredPaymaster),
144
- ].filter((x) => x !== "0x");
145
- }
146
- encodeIfDefined(encode, param) {
147
- if (!param)
148
- return "0x";
149
- return encode(param);
150
- }
151
- }
152
- exports.SessionKeyPermissionsBuilder = SessionKeyPermissionsBuilder;
153
- //# sourceMappingURL=permissions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/session-key/permissions.ts"],"names":[],"mappings":"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","sourcesContent":["import { encodeFunctionData, type Address, type Hex } from \"viem\";\nimport { SessionKeyPermissionsUpdatesAbi } from \"./SessionKeyPermissionsUpdatesAbi.js\";\n\nexport enum SessionKeyAccessListType {\n ALLOWLIST = 0,\n DENYLIST = 1,\n ALLOW_ALL_ACCESS = 2,\n}\n\nexport type ContractAccessEntry = {\n // The contract address to add or remove.\n contractAddress: Address;\n // Whether the contract address should be on the list.\n isOnList: boolean;\n // Whether to check selectors for the contract address.\n checkSelectors: boolean;\n};\n\nexport type ContractMethodEntry = {\n // The contract address to add or remove.\n contractAddress: Address;\n // The function selector to add or remove.\n methodSelector: Hex;\n // Whether the function selector should be on the list.\n isOnList: boolean;\n};\n\nexport type TimeRange = {\n validFrom: number;\n validUntil: number;\n};\n\nexport type NativeTokenLimit = {\n spendLimit: bigint;\n // The time interval over which the spend limit is enforced. If unset, there is no time\n /// interval by which the limit is refreshed.\n refreshInterval?: number;\n};\n\nexport type Erc20TokenLimit = {\n tokenAddress: Address;\n spendLimit: bigint;\n // The time interval over which the spend limit is enforced. If unset, there is no time\n /// interval by which the limit is refreshed.\n refreshInterval?: number;\n};\n\n// uint256 spendLimit, uint48 refreshInterval\nexport type GasSpendLimit = {\n // The amount, in wei, of native tokens that a session key can spend on gas.\n // Note that this is not the same as the gas limit for a user operation, which is measured in units of gas.\n // This tracks gas units * gas price.\n spendLimit: bigint;\n // The time interval over which the spend limit is enforced. If unset, there is no time\n /// interval by which the limit is refreshed.\n refreshInterval?: number;\n};\n\n/**\n * A builder for creating the hex-encoded data for updating session key permissions.\n */\nexport class SessionKeyPermissionsBuilder {\n private _contractAccessControlType: SessionKeyAccessListType =\n SessionKeyAccessListType.ALLOWLIST;\n private _contractAddressAccessEntrys: ContractAccessEntry[] = [];\n private _contractMethodAccessEntrys: ContractMethodEntry[] = [];\n private _timeRange?: TimeRange;\n private _nativeTokenSpendLimit?: NativeTokenLimit;\n private _erc20TokenSpendLimits: Erc20TokenLimit[] = [];\n private _gasSpendLimit?: GasSpendLimit;\n private _requiredPaymaster?: Address;\n\n /**\n * Sets the access control type for the contract and returns the current instance for method chaining.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.setContractAccessControlType(SessionKeyAccessListType.ALLOWLIST);\n * ```\n *\n * @param {SessionKeyAccessListType} aclType The access control type for the session key\n * @returns {SessionKeyPermissionsBuilder} The current instance for method chaining\n */\n public setContractAccessControlType(aclType: SessionKeyAccessListType) {\n this._contractAccessControlType = aclType;\n return this;\n }\n\n /**\n * Adds a contract access entry to the internal list of contract address access entries.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.addContractAddressAccessEntry({\n * contractAddress: \"0x1234\",\n * isOnList: true,\n * checkSelectors: true,\n * });\n * ```\n *\n * @param {ContractAccessEntry} entry the contract access entry to be added\n * @returns {SessionKeyPermissionsBuilder} the instance of the current class for chaining\n */\n public addContractAddressAccessEntry(entry: ContractAccessEntry) {\n this._contractAddressAccessEntrys.push(entry);\n return this;\n }\n\n /**\n * Adds a contract method entry to the `_contractMethodAccessEntrys` array.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.addContractAddressAccessEntry({\n * contractAddress: \"0x1234\",\n * methodSelector: \"0x45678\",\n * isOnList: true,\n * });\n * ```\n *\n * @param {ContractMethodEntry} entry The contract method entry to be added\n * @returns {SessionKeyPermissionsBuilder} The instance of the class for method chaining\n */\n public addContractFunctionAccessEntry(entry: ContractMethodEntry) {\n this._contractMethodAccessEntrys.push(entry);\n return this;\n }\n\n /**\n * Sets the time range for an object and returns the object itself for chaining.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.setTimeRange({\n * validFrom: Date.now(),\n * validUntil: Date.now() + (15 * 60 * 1000),\n * });\n * ```\n *\n * @param {TimeRange} timeRange The time range to be set\n * @returns {SessionKeyPermissionsBuilder} The current object for method chaining\n */\n public setTimeRange(timeRange: TimeRange) {\n this._timeRange = timeRange;\n return this;\n }\n\n /**\n * Sets the native token spend limit and returns the instance for chaining.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.setNativeTokenSpendLimit({\n * spendLimit: 1000000000000000000n,\n * refreshInterval: 3600,\n * });\n * ```\n *\n * @param {NativeTokenLimit} limit The limit to set for native token spending\n * @returns {SessionKeyPermissionsBuilder} The instance for chaining\n */\n public setNativeTokenSpendLimit(limit: NativeTokenLimit) {\n this._nativeTokenSpendLimit = limit;\n return this;\n }\n\n /**\n * Adds an ERC20 token spend limit to the list of limits and returns the updated object.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.addErc20TokenSpendLimit({\n * tokenAddress: \"0x1234\",\n * spendLimit: 1000000000000000000n,\n * refreshInterval: 3600,\n * });\n * ```\n *\n * @param {Erc20TokenLimit} limit The ERC20 token spend limit to be added\n * @returns {object} The updated object with the new ERC20 token spend limit\n */\n public addErc20TokenSpendLimit(limit: Erc20TokenLimit) {\n this._erc20TokenSpendLimits.push(limit);\n return this;\n }\n\n /**\n * Sets the gas spend limit and returns the current instance for method chaining.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.setGasSpendLimit({\n * spendLimit: 1000000000000000000n,\n * refreshInterval: 3600,\n * });\n * ```\n *\n * @param {GasSpendLimit} limit - The gas spend limit to be set\n * @returns {SessionKeyPermissionsBuilder} The current instance for chaining\n */ public setGasSpendLimit(limit: GasSpendLimit) {\n this._gasSpendLimit = limit;\n return this;\n }\n\n /**\n * Sets the required paymaster address.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.setRequiredPaymaster(\"0x1234\");\n * ```\n *\n * @param {Address} paymaster the address of the paymaster to be set\n * @returns {SessionKeyPermissionsBuilder} the current instance for method chaining\n */\n public setRequiredPaymaster(paymaster: Address) {\n this._requiredPaymaster = paymaster;\n return this;\n }\n\n /**\n * Encodes various function calls into an array of hexadecimal strings based on the provided permissions and limits.\n *\n * @example\n * ```ts\n * import { SessionKeyPermissionsBuilder } from \"@account-kit/smart-contracts\";\n *\n * const builder = new SessionKeyPermissionsBuilder();\n * builder.setRequiredPaymaster(\"0x1234\");\n * const encoded = builder.encode();\n * ```\n *\n * @returns {Hex[]} An array of encoded hexadecimal strings representing the function calls for setting access control, permissions, and limits.\n */\n public encode(): Hex[] {\n return [\n encodeFunctionData({\n abi: SessionKeyPermissionsUpdatesAbi,\n functionName: \"setAccessListType\",\n args: [this._contractAccessControlType],\n }),\n ...this._contractAddressAccessEntrys.map((entry) =>\n encodeFunctionData({\n abi: SessionKeyPermissionsUpdatesAbi,\n functionName: \"updateAccessListAddressEntry\",\n args: [entry.contractAddress, entry.isOnList, entry.checkSelectors],\n })\n ),\n ...this._contractMethodAccessEntrys.map((entry) =>\n encodeFunctionData({\n abi: SessionKeyPermissionsUpdatesAbi,\n functionName: \"updateAccessListFunctionEntry\",\n args: [entry.contractAddress, entry.methodSelector, entry.isOnList],\n })\n ),\n this.encodeIfDefined(\n (timeRange) =>\n encodeFunctionData({\n abi: SessionKeyPermissionsUpdatesAbi,\n functionName: \"updateTimeRange\",\n args: [timeRange.validFrom, timeRange.validUntil],\n }),\n this._timeRange\n ),\n this.encodeIfDefined(\n (nativeSpendLimit) =>\n encodeFunctionData({\n abi: SessionKeyPermissionsUpdatesAbi,\n functionName: \"setNativeTokenSpendLimit\",\n args: [\n nativeSpendLimit.spendLimit,\n nativeSpendLimit.refreshInterval ?? 0,\n ],\n }),\n this._nativeTokenSpendLimit\n ),\n ...this._erc20TokenSpendLimits.map((erc20SpendLimit) =>\n encodeFunctionData({\n abi: SessionKeyPermissionsUpdatesAbi,\n functionName: \"setERC20SpendLimit\",\n args: [\n erc20SpendLimit.tokenAddress,\n erc20SpendLimit.spendLimit,\n erc20SpendLimit.refreshInterval ?? 0,\n ],\n })\n ),\n this.encodeIfDefined(\n (spendLimit) =>\n encodeFunctionData({\n abi: SessionKeyPermissionsUpdatesAbi,\n functionName: \"setGasSpendLimit\",\n args: [spendLimit.spendLimit, spendLimit.refreshInterval ?? 0],\n }),\n this._gasSpendLimit\n ),\n this.encodeIfDefined(\n (paymaster) =>\n encodeFunctionData({\n abi: SessionKeyPermissionsUpdatesAbi,\n functionName: \"setRequiredPaymaster\",\n args: [paymaster],\n }),\n this._requiredPaymaster\n ),\n ].filter((x) => x !== \"0x\");\n }\n\n private encodeIfDefined<T>(encode: (param: T) => Hex, param?: T): Hex {\n if (!param) return \"0x\";\n\n return encode(param);\n }\n}\n"]}