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