@account-kit/smart-contracts 4.0.0-alpha.9 → 4.0.0-beta.1
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/esm/plugindefs/multi-owner/config.js +2 -2
- package/dist/esm/plugindefs/multi-owner/config.js.map +1 -1
- package/dist/esm/plugindefs/multisig/config.js +2 -2
- package/dist/esm/plugindefs/multisig/config.js.map +1 -1
- package/dist/esm/plugindefs/session-key/config.js +2 -3
- package/dist/esm/plugindefs/session-key/config.js.map +1 -1
- package/dist/esm/src/index.d.ts +1 -1
- package/dist/esm/src/index.js +4 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/light-account/accounts/account.js +20 -0
- package/dist/esm/src/light-account/accounts/account.js.map +1 -1
- package/dist/esm/src/light-account/accounts/base.js +8 -0
- package/dist/esm/src/light-account/accounts/base.js.map +1 -1
- package/dist/esm/src/light-account/accounts/multiOwner.js +22 -0
- package/dist/esm/src/light-account/accounts/multiOwner.js.map +1 -1
- package/dist/esm/src/light-account/actions/transferOwnership.d.ts +25 -0
- package/dist/esm/src/light-account/actions/transferOwnership.js +25 -0
- package/dist/esm/src/light-account/actions/transferOwnership.js.map +1 -1
- package/dist/esm/src/light-account/actions/updateOwners.d.ts +24 -0
- package/dist/esm/src/light-account/actions/updateOwners.js +24 -0
- package/dist/esm/src/light-account/actions/updateOwners.js.map +1 -1
- package/dist/esm/src/light-account/clients/alchemyClient.js +20 -0
- package/dist/esm/src/light-account/clients/alchemyClient.js.map +1 -1
- package/dist/esm/src/light-account/clients/client.d.ts +1 -2
- package/dist/esm/src/light-account/clients/client.js +23 -3
- package/dist/esm/src/light-account/clients/client.js.map +1 -1
- package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js +20 -0
- package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js.map +1 -1
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.d.ts +1 -2
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js +23 -3
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js.map +1 -1
- package/dist/esm/src/light-account/decorators/lightAccount.d.ts +19 -0
- package/dist/esm/src/light-account/decorators/lightAccount.js +19 -0
- package/dist/esm/src/light-account/decorators/lightAccount.js.map +1 -1
- package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.d.ts +19 -0
- package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.js +19 -0
- package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.js.map +1 -1
- package/dist/esm/src/light-account/types.d.ts +4 -0
- package/dist/esm/src/light-account/utils.d.ts +46 -0
- package/dist/esm/src/light-account/utils.js +46 -0
- package/dist/esm/src/light-account/utils.js.map +1 -1
- package/dist/esm/src/msca/account/multiOwnerAccount.js +23 -0
- package/dist/esm/src/msca/account/multiOwnerAccount.js.map +1 -1
- package/dist/esm/src/msca/account/multisigAccount.js +24 -0
- package/dist/esm/src/msca/account/multisigAccount.js.map +1 -1
- package/dist/esm/src/msca/account-loupe/decorator.d.ts +15 -0
- package/dist/esm/src/msca/account-loupe/decorator.js +15 -0
- package/dist/esm/src/msca/account-loupe/decorator.js.map +1 -1
- package/dist/esm/src/msca/client/alchemyClient.js +20 -0
- package/dist/esm/src/msca/client/alchemyClient.js.map +1 -1
- package/dist/esm/src/msca/client/client.d.ts +2 -6
- package/dist/esm/src/msca/client/client.js +50 -6
- package/dist/esm/src/msca/client/client.js.map +1 -1
- package/dist/esm/src/msca/client/multiSigAlchemyClient.js +22 -0
- package/dist/esm/src/msca/client/multiSigAlchemyClient.js.map +1 -1
- package/dist/esm/src/msca/errors.d.ts +12 -0
- package/dist/esm/src/msca/errors.js +12 -0
- package/dist/esm/src/msca/errors.js.map +1 -1
- package/dist/esm/src/msca/plugin-manager/decorator.d.ts +15 -0
- package/dist/esm/src/msca/plugin-manager/decorator.js +15 -0
- package/dist/esm/src/msca/plugin-manager/decorator.js.map +1 -1
- package/dist/esm/src/msca/plugin-manager/installPlugin.d.ts +21 -0
- package/dist/esm/src/msca/plugin-manager/installPlugin.js +22 -0
- package/dist/esm/src/msca/plugin-manager/installPlugin.js.map +1 -1
- package/dist/esm/src/msca/plugins/multi-owner/extension.d.ts +15 -0
- package/dist/esm/src/msca/plugins/multi-owner/extension.js +19 -0
- package/dist/esm/src/msca/plugins/multi-owner/extension.js.map +1 -1
- package/dist/esm/src/msca/plugins/multi-owner/plugin.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/actions/isOwnerOf.js +2 -0
- package/dist/esm/src/msca/plugins/multisig/actions/isOwnerOf.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.js +2 -0
- package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/actions/readOwners.js +2 -0
- package/dist/esm/src/msca/plugins/multisig/actions/readOwners.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.js +3 -0
- package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/extension.d.ts +13 -0
- package/dist/esm/src/msca/plugins/multisig/extension.js +13 -0
- package/dist/esm/src/msca/plugins/multisig/extension.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/middleware.d.ts +12 -0
- package/dist/esm/src/msca/plugins/multisig/middleware.js +15 -0
- package/dist/esm/src/msca/plugins/multisig/middleware.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/plugin.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/signer.js +2 -0
- package/dist/esm/src/msca/plugins/multisig/signer.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.d.ts +25 -0
- package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.js +25 -0
- package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.d.ts +10 -0
- package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.js +11 -0
- package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.d.ts +19 -0
- package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.js +19 -0
- package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.js.map +1 -1
- package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +10 -0
- package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.js +20 -0
- package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.js.map +1 -1
- package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.d.ts +7 -0
- package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.js +7 -0
- package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.js.map +1 -1
- package/dist/esm/src/msca/plugins/session-key/extension.d.ts +13 -0
- package/dist/esm/src/msca/plugins/session-key/extension.js +23 -0
- package/dist/esm/src/msca/plugins/session-key/extension.js.map +1 -1
- package/dist/esm/src/msca/plugins/session-key/permissions.d.ts +150 -1
- package/dist/esm/src/msca/plugins/session-key/permissions.js +150 -1
- package/dist/esm/src/msca/plugins/session-key/permissions.js.map +1 -1
- package/dist/esm/src/msca/plugins/session-key/plugin.js.map +1 -1
- package/dist/esm/src/msca/plugins/session-key/signer.d.ts +81 -1
- package/dist/esm/src/msca/plugins/session-key/signer.js +80 -0
- package/dist/esm/src/msca/plugins/session-key/signer.js.map +1 -1
- package/dist/esm/src/msca/plugins/session-key/utils.d.ts +18 -0
- package/dist/esm/src/msca/plugins/session-key/utils.js +18 -0
- package/dist/esm/src/msca/plugins/session-key/utils.js.map +1 -1
- package/dist/esm/src/msca/utils.d.ts +50 -0
- package/dist/esm/src/msca/utils.js +50 -0
- 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/plugindefs/multisig/config.d.ts.map +1 -1
- package/dist/types/plugindefs/session-key/config.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/light-account/clients/client.d.ts +1 -2
- package/dist/types/src/light-account/clients/client.d.ts.map +1 -1
- package/dist/types/src/light-account/clients/multiOwnerLightAccount.d.ts +1 -2
- package/dist/types/src/light-account/clients/multiOwnerLightAccount.d.ts.map +1 -1
- package/dist/types/src/msca/client/client.d.ts +2 -6
- package/dist/types/src/msca/client/client.d.ts.map +1 -1
- package/dist/types/src/msca/plugins/multi-owner/plugin.d.ts.map +1 -1
- package/dist/types/src/msca/plugins/multisig/plugin.d.ts.map +1 -1
- package/dist/types/src/msca/plugins/session-key/plugin.d.ts.map +1 -1
- package/dist/types/src/msca/plugins/session-key/signer.d.ts +1 -1
- package/dist/types/src/msca/plugins/session-key/signer.d.ts.map +1 -1
- package/package.json +12 -15
- package/plugindefs/multi-owner/config.ts +4 -5
- package/plugindefs/multisig/config.ts +4 -5
- package/plugindefs/session-key/config.ts +4 -6
- package/src/index.ts +1 -0
- package/src/light-account/clients/client.ts +8 -13
- package/src/light-account/clients/multiOwnerLightAccount.ts +11 -13
- package/src/msca/client/client.ts +24 -36
- package/src/msca/plugins/multi-owner/plugin.ts +5 -1
- package/src/msca/plugins/multisig/plugin.ts +5 -1
- package/src/msca/plugins/session-key/plugin.ts +5 -1
- package/src/msca/plugins/session-key/signer.ts +1 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/plugindefs/index.d.ts +0 -3
- package/dist/cjs/plugindefs/index.js +0 -10
- package/dist/cjs/plugindefs/index.js.map +0 -1
- package/dist/cjs/plugindefs/multi-owner/abi.d.ts +0 -698
- package/dist/cjs/plugindefs/multi-owner/abi.js +0 -612
- package/dist/cjs/plugindefs/multi-owner/abi.js.map +0 -1
- package/dist/cjs/plugindefs/multi-owner/config.d.ts +0 -2
- package/dist/cjs/plugindefs/multi-owner/config.js +0 -31
- package/dist/cjs/plugindefs/multi-owner/config.js.map +0 -1
- package/dist/cjs/plugindefs/multisig/abi.d.ts +0 -791
- package/dist/cjs/plugindefs/multisig/abi.js +0 -1031
- package/dist/cjs/plugindefs/multisig/abi.js.map +0 -1
- package/dist/cjs/plugindefs/multisig/config.d.ts +0 -2
- package/dist/cjs/plugindefs/multisig/config.js +0 -30
- package/dist/cjs/plugindefs/multisig/config.js.map +0 -1
- package/dist/cjs/plugindefs/session-key/abi.d.ts +0 -1061
- package/dist/cjs/plugindefs/session-key/abi.js +0 -916
- package/dist/cjs/plugindefs/session-key/abi.js.map +0 -1
- package/dist/cjs/plugindefs/session-key/config.d.ts +0 -2
- package/dist/cjs/plugindefs/session-key/config.js +0 -43
- package/dist/cjs/plugindefs/session-key/config.js.map +0 -1
- package/dist/cjs/plugindefs/types.d.ts +0 -15
- package/dist/cjs/plugindefs/types.js +0 -3
- package/dist/cjs/plugindefs/types.js.map +0 -1
- package/dist/cjs/src/index.d.ts +0 -53
- package/dist/cjs/src/index.js +0 -105
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.d.ts +0 -532
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.js +0 -382
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.js.map +0 -1
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.d.ts +0 -491
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.js +0 -358
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.js.map +0 -1
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.d.ts +0 -55
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.js +0 -78
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.js.map +0 -1
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.d.ts +0 -256
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.js +0 -213
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.js.map +0 -1
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.d.ts +0 -507
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.js +0 -375
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.js.map +0 -1
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts +0 -286
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.js +0 -232
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.js.map +0 -1
- package/dist/cjs/src/light-account/accounts/account.d.ts +0 -17
- package/dist/cjs/src/light-account/accounts/account.js +0 -79
- package/dist/cjs/src/light-account/accounts/account.js.map +0 -1
- package/dist/cjs/src/light-account/accounts/base.d.ts +0 -15
- package/dist/cjs/src/light-account/accounts/base.js +0 -143
- package/dist/cjs/src/light-account/accounts/base.js.map +0 -1
- package/dist/cjs/src/light-account/accounts/multiOwner.d.ts +0 -18
- package/dist/cjs/src/light-account/accounts/multiOwner.js +0 -80
- package/dist/cjs/src/light-account/accounts/multiOwner.js.map +0 -1
- package/dist/cjs/src/light-account/actions/transferOwnership.d.ts +0 -8
- package/dist/cjs/src/light-account/actions/transferOwnership.js +0 -28
- package/dist/cjs/src/light-account/actions/transferOwnership.js.map +0 -1
- package/dist/cjs/src/light-account/actions/updateOwners.d.ts +0 -9
- package/dist/cjs/src/light-account/actions/updateOwners.js +0 -27
- package/dist/cjs/src/light-account/actions/updateOwners.js.map +0 -1
- package/dist/cjs/src/light-account/clients/alchemyClient.d.ts +0 -6
- package/dist/cjs/src/light-account/clients/alchemyClient.js +0 -25
- package/dist/cjs/src/light-account/clients/alchemyClient.js.map +0 -1
- package/dist/cjs/src/light-account/clients/client.d.ts +0 -10
- package/dist/cjs/src/light-account/clients/client.js +0 -22
- package/dist/cjs/src/light-account/clients/client.js.map +0 -1
- package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.d.ts +0 -6
- package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.js +0 -25
- package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.js.map +0 -1
- package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.d.ts +0 -10
- package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.js +0 -22
- package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.js.map +0 -1
- package/dist/cjs/src/light-account/decorators/lightAccount.d.ts +0 -8
- package/dist/cjs/src/light-account/decorators/lightAccount.js +0 -9
- package/dist/cjs/src/light-account/decorators/lightAccount.js.map +0 -1
- package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.d.ts +0 -8
- package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.js +0 -9
- package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.js.map +0 -1
- package/dist/cjs/src/light-account/e2e-tests/constants.d.ts +0 -6
- package/dist/cjs/src/light-account/e2e-tests/constants.js +0 -10
- package/dist/cjs/src/light-account/e2e-tests/constants.js.map +0 -1
- package/dist/cjs/src/light-account/types.d.ts +0 -31
- package/dist/cjs/src/light-account/types.js +0 -3
- package/dist/cjs/src/light-account/types.js.map +0 -1
- package/dist/cjs/src/light-account/utils.d.ts +0 -10
- package/dist/cjs/src/light-account/utils.js +0 -108
- package/dist/cjs/src/light-account/utils.js.map +0 -1
- package/dist/cjs/src/msca/abis/IAccountLoupe.d.ts +0 -79
- package/dist/cjs/src/msca/abis/IAccountLoupe.js +0 -82
- package/dist/cjs/src/msca/abis/IAccountLoupe.js.map +0 -1
- package/dist/cjs/src/msca/abis/IPlugin.d.ts +0 -474
- package/dist/cjs/src/msca/abis/IPlugin.js +0 -400
- package/dist/cjs/src/msca/abis/IPlugin.js.map +0 -1
- package/dist/cjs/src/msca/abis/IPluginManager.d.ts +0 -101
- package/dist/cjs/src/msca/abis/IPluginManager.js +0 -109
- package/dist/cjs/src/msca/abis/IPluginManager.js.map +0 -1
- package/dist/cjs/src/msca/abis/IStandardExecutor.d.ts +0 -50
- package/dist/cjs/src/msca/abis/IStandardExecutor.js +0 -35
- package/dist/cjs/src/msca/abis/IStandardExecutor.js.map +0 -1
- package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.d.ts +0 -234
- package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.js +0 -194
- package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.js.map +0 -1
- package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.d.ts +0 -246
- package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.js +0 -320
- package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.js.map +0 -1
- package/dist/cjs/src/msca/abis/UpgradeableModularAccount.d.ts +0 -880
- package/dist/cjs/src/msca/abis/UpgradeableModularAccount.js +0 -649
- package/dist/cjs/src/msca/abis/UpgradeableModularAccount.js.map +0 -1
- package/dist/cjs/src/msca/account/multiOwnerAccount.d.ts +0 -12
- package/dist/cjs/src/msca/account/multiOwnerAccount.js +0 -60
- package/dist/cjs/src/msca/account/multiOwnerAccount.js.map +0 -1
- package/dist/cjs/src/msca/account/multisigAccount.d.ts +0 -17
- package/dist/cjs/src/msca/account/multisigAccount.js +0 -71
- package/dist/cjs/src/msca/account/multisigAccount.js.map +0 -1
- package/dist/cjs/src/msca/account/standardExecutor.d.ts +0 -2
- package/dist/cjs/src/msca/account/standardExecutor.js +0 -28
- package/dist/cjs/src/msca/account/standardExecutor.js.map +0 -1
- package/dist/cjs/src/msca/account-loupe/decorator.d.ts +0 -16
- package/dist/cjs/src/msca/account-loupe/decorator.js +0 -66
- package/dist/cjs/src/msca/account-loupe/decorator.js.map +0 -1
- package/dist/cjs/src/msca/account-loupe/types.d.ts +0 -16
- package/dist/cjs/src/msca/account-loupe/types.js +0 -3
- package/dist/cjs/src/msca/account-loupe/types.js.map +0 -1
- package/dist/cjs/src/msca/client/alchemyClient.d.ts +0 -6
- package/dist/cjs/src/msca/client/alchemyClient.js +0 -28
- package/dist/cjs/src/msca/client/alchemyClient.js.map +0 -1
- package/dist/cjs/src/msca/client/client.d.ts +0 -17
- package/dist/cjs/src/msca/client/client.js +0 -49
- package/dist/cjs/src/msca/client/client.js.map +0 -1
- package/dist/cjs/src/msca/client/multiSigAlchemyClient.d.ts +0 -6
- package/dist/cjs/src/msca/client/multiSigAlchemyClient.js +0 -31
- package/dist/cjs/src/msca/client/multiSigAlchemyClient.js.map +0 -1
- package/dist/cjs/src/msca/e2e-tests/constants.d.ts +0 -3
- package/dist/cjs/src/msca/e2e-tests/constants.js +0 -7
- package/dist/cjs/src/msca/e2e-tests/constants.js.map +0 -1
- package/dist/cjs/src/msca/errors.d.ts +0 -17
- package/dist/cjs/src/msca/errors.js +0 -53
- package/dist/cjs/src/msca/errors.js.map +0 -1
- package/dist/cjs/src/msca/plugin-manager/decorator.d.ts +0 -11
- package/dist/cjs/src/msca/plugin-manager/decorator.js +0 -13
- package/dist/cjs/src/msca/plugin-manager/decorator.js.map +0 -1
- package/dist/cjs/src/msca/plugin-manager/installPlugin.d.ts +0 -11
- package/dist/cjs/src/msca/plugin-manager/installPlugin.js +0 -48
- package/dist/cjs/src/msca/plugin-manager/installPlugin.js.map +0 -1
- package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.d.ts +0 -9
- package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.js +0 -35
- package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multi-owner/extension.d.ts +0 -13
- package/dist/cjs/src/msca/plugins/multi-owner/extension.js +0 -26
- package/dist/cjs/src/msca/plugins/multi-owner/extension.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multi-owner/index.d.ts +0 -3
- package/dist/cjs/src/msca/plugins/multi-owner/index.js +0 -10
- package/dist/cjs/src/msca/plugins/multi-owner/index.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multi-owner/plugin.d.ts +0 -793
- package/dist/cjs/src/msca/plugins/multi-owner/plugin.js +0 -695
- package/dist/cjs/src/msca/plugins/multi-owner/plugin.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multi-owner/signer.d.ts +0 -215
- package/dist/cjs/src/msca/plugins/multi-owner/signer.js +0 -47
- package/dist/cjs/src/msca/plugins/multi-owner/signer.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.d.ts +0 -4
- package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.js +0 -20
- package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.d.ts +0 -6
- package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.js +0 -15
- package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.d.ts +0 -4
- package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.js +0 -47
- package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.d.ts +0 -4
- package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.js +0 -15
- package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.d.ts +0 -4
- package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.js +0 -54
- package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/extension.d.ts +0 -17
- package/dist/cjs/src/msca/plugins/multisig/extension.js +0 -19
- package/dist/cjs/src/msca/plugins/multisig/extension.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/index.d.ts +0 -5
- package/dist/cjs/src/msca/plugins/multisig/index.js +0 -12
- package/dist/cjs/src/msca/plugins/multisig/index.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/middleware.d.ts +0 -3
- package/dist/cjs/src/msca/plugins/multisig/middleware.js +0 -97
- package/dist/cjs/src/msca/plugins/multisig/middleware.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/plugin.d.ts +0 -892
- package/dist/cjs/src/msca/plugins/multisig/plugin.js +0 -740
- package/dist/cjs/src/msca/plugins/multisig/plugin.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/signer.d.ts +0 -223
- package/dist/cjs/src/msca/plugins/multisig/signer.js +0 -57
- package/dist/cjs/src/msca/plugins/multisig/signer.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/types.d.ts +0 -34
- package/dist/cjs/src/msca/plugins/multisig/types.js +0 -3
- package/dist/cjs/src/msca/plugins/multisig/types.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.d.ts +0 -10
- package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.js +0 -15
- package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.d.ts +0 -2
- package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.js +0 -42
- package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.d.ts +0 -10
- package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.js +0 -13
- package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/utils/index.d.ts +0 -8
- package/dist/cjs/src/msca/plugins/multisig/utils/index.js +0 -12
- package/dist/cjs/src/msca/plugins/multisig/utils/index.js.map +0 -1
- package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +0 -16
- package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.js +0 -74
- package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.js.map +0 -1
- package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.d.ts +0 -117
- package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.js +0 -115
- package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.js.map +0 -1
- package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.d.ts +0 -1
- package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.js +0 -5
- package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.js.map +0 -1
- package/dist/cjs/src/msca/plugins/session-key/extension.d.ts +0 -30
- package/dist/cjs/src/msca/plugins/session-key/extension.js +0 -156
- package/dist/cjs/src/msca/plugins/session-key/extension.js.map +0 -1
- package/dist/cjs/src/msca/plugins/session-key/index.d.ts +0 -3
- package/dist/cjs/src/msca/plugins/session-key/index.js +0 -10
- package/dist/cjs/src/msca/plugins/session-key/index.js.map +0 -1
- package/dist/cjs/src/msca/plugins/session-key/permissions.d.ts +0 -53
- package/dist/cjs/src/msca/plugins/session-key/permissions.js +0 -153
- package/dist/cjs/src/msca/plugins/session-key/permissions.js.map +0 -1
- package/dist/cjs/src/msca/plugins/session-key/plugin.d.ts +0 -1200
- package/dist/cjs/src/msca/plugins/session-key/plugin.js +0 -1044
- package/dist/cjs/src/msca/plugins/session-key/plugin.js.map +0 -1
- package/dist/cjs/src/msca/plugins/session-key/signer.d.ts +0 -233
- package/dist/cjs/src/msca/plugins/session-key/signer.js +0 -101
- package/dist/cjs/src/msca/plugins/session-key/signer.js.map +0 -1
- package/dist/cjs/src/msca/plugins/session-key/utils.d.ts +0 -11
- package/dist/cjs/src/msca/plugins/session-key/utils.js +0 -22
- package/dist/cjs/src/msca/plugins/session-key/utils.js.map +0 -1
- package/dist/cjs/src/msca/plugins/types.d.ts +0 -12
- package/dist/cjs/src/msca/plugins/types.js +0 -3
- package/dist/cjs/src/msca/plugins/types.js.map +0 -1
- package/dist/cjs/src/msca/utils.d.ts +0 -17
- package/dist/cjs/src/msca/utils.js +0 -99
- package/dist/cjs/src/msca/utils.js.map +0 -1
- package/dist/esm/package.json +0 -1
- package/dist/esm/src/light-account/e2e-tests/constants.d.ts +0 -6
- package/dist/esm/src/light-account/e2e-tests/constants.js +0 -7
- package/dist/esm/src/light-account/e2e-tests/constants.js.map +0 -1
- package/dist/types/src/light-account/e2e-tests/constants.d.ts +0 -7
- package/dist/types/src/light-account/e2e-tests/constants.d.ts.map +0 -1
- package/src/light-account/e2e-tests/constants.ts +0 -8
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { BaseError } from "@aa-sdk/core";
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when the aggregated signature is invalid
|
|
4
|
+
*/
|
|
2
5
|
export class InvalidAggregatedSignatureError extends BaseError {
|
|
3
6
|
constructor() {
|
|
4
7
|
super("Invalid aggregated signature");
|
|
@@ -10,6 +13,9 @@ export class InvalidAggregatedSignatureError extends BaseError {
|
|
|
10
13
|
});
|
|
11
14
|
}
|
|
12
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown when the context signature is invalid
|
|
18
|
+
*/
|
|
13
19
|
export class InvalidContextSignatureError extends BaseError {
|
|
14
20
|
constructor() {
|
|
15
21
|
super("Expected context.signature to be a hex string");
|
|
@@ -21,6 +27,9 @@ export class InvalidContextSignatureError extends BaseError {
|
|
|
21
27
|
});
|
|
22
28
|
}
|
|
23
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Error thrown when the expected account is not a multisig modular account
|
|
32
|
+
*/
|
|
24
33
|
export class MultisigAccountExpectedError extends BaseError {
|
|
25
34
|
constructor() {
|
|
26
35
|
super("Expected account to be a multisig modular account");
|
|
@@ -32,6 +41,9 @@ export class MultisigAccountExpectedError extends BaseError {
|
|
|
32
41
|
});
|
|
33
42
|
}
|
|
34
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Error thrown when a multisig user op is missing a signature
|
|
46
|
+
*/
|
|
35
47
|
export class MultisigMissingSignatureError extends BaseError {
|
|
36
48
|
constructor() {
|
|
37
49
|
super("UserOp must have at least one signature already");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/msca/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/msca/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,SAAS;IAE5D;QACE,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAF/B;;;;mBAAO,iCAAiC;WAAC;IAGlD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,SAAS;IAEzD;QACE,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAFhD;;;;mBAAO,8BAA8B;WAAC;IAG/C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,SAAS;IAEzD;QACE,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAFpD;;;;mBAAO,8BAA8B;WAAC;IAG/C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,6BAA8B,SAAQ,SAAS;IAE1D;QACE,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAFlD;;;;mBAAO,+BAA+B;WAAC;IAGhD,CAAC;CACF","sourcesContent":["import { BaseError } from \"@aa-sdk/core\";\n\n/**\n * Error thrown when the aggregated signature is invalid\n */\nexport class InvalidAggregatedSignatureError extends BaseError {\n override name = \"InvalidAggregatedSignatureError\";\n constructor() {\n super(\"Invalid aggregated signature\");\n }\n}\n\n/**\n * Error thrown when the context signature is invalid\n */\nexport class InvalidContextSignatureError extends BaseError {\n override name = \"InvalidContextSignatureError\";\n constructor() {\n super(\"Expected context.signature to be a hex string\");\n }\n}\n\n/**\n * Error thrown when the expected account is not a multisig modular account\n */\nexport class MultisigAccountExpectedError extends BaseError {\n override name = \"MultisigAccountExpectedError\";\n constructor() {\n super(\"Expected account to be a multisig modular account\");\n }\n}\n\n/**\n * Error thrown when a multisig user op is missing a signature\n */\nexport class MultisigMissingSignatureError extends BaseError {\n override name = \"MultisigMissingSignatureError\";\n constructor() {\n super(\"UserOp must have at least one signature already\");\n }\n}\n"]}
|
|
@@ -8,4 +8,19 @@ export type PluginManagerActions<TAccount extends SmartContractAccount | undefin
|
|
|
8
8
|
installPlugin: (params: InstallPluginParams<TAccount>) => Promise<SendUserOperationResult<TEntryPointVersion>>;
|
|
9
9
|
uninstallPlugin: (params: UninstallPluginParams<TAccount>) => Promise<SendUserOperationResult<TEntryPointVersion>>;
|
|
10
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Provides actions for managing plugins on a given client, including installing and uninstalling plugins.
|
|
13
|
+
* NOTE: this is provided by default when using a modular account client
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { pluginManagerActions } from "@account-kit/smart-contracts";
|
|
18
|
+
* import { createSmartAccountClient } from "@aa-sdk/core";
|
|
19
|
+
*
|
|
20
|
+
* const client = createSmartAccountClient(...).extend(pluginManagerActions);
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @param {Client<TTransport, TChain, TAccount>} client The client instance on which to manage plugins
|
|
24
|
+
* @returns {PluginManagerActions<TAccount>} An object containing functions to install and uninstall plugins
|
|
25
|
+
*/
|
|
11
26
|
export declare function pluginManagerActions<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>): PluginManagerActions<TAccount>;
|
|
@@ -2,6 +2,21 @@ import { installPlugin } from "./installPlugin.js";
|
|
|
2
2
|
import { uninstallPlugin, } from "./uninstallPlugin.js";
|
|
3
3
|
export {} from "./installPlugin.js";
|
|
4
4
|
export {} from "./uninstallPlugin.js";
|
|
5
|
+
/**
|
|
6
|
+
* Provides actions for managing plugins on a given client, including installing and uninstalling plugins.
|
|
7
|
+
* NOTE: this is provided by default when using a modular account client
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { pluginManagerActions } from "@account-kit/smart-contracts";
|
|
12
|
+
* import { createSmartAccountClient } from "@aa-sdk/core";
|
|
13
|
+
*
|
|
14
|
+
* const client = createSmartAccountClient(...).extend(pluginManagerActions);
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @param {Client<TTransport, TChain, TAccount>} client The client instance on which to manage plugins
|
|
18
|
+
* @returns {PluginManagerActions<TAccount>} An object containing functions to install and uninstall plugins
|
|
19
|
+
*/
|
|
5
20
|
export function pluginManagerActions(client) {
|
|
6
21
|
return {
|
|
7
22
|
installPlugin: async (params) => installPlugin(client, params),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../../../../src/msca/plugin-manager/decorator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAA4B,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAA8B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../../../../src/msca/plugin-manager/decorator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAA4B,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAA8B,MAAM,sBAAsB,CAAC;AAgBlE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAOlC,MAA4C;IAE5C,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9D,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;KACnE,CAAC;AACJ,CAAC","sourcesContent":["import type {\n GetEntryPointFromAccount,\n SendUserOperationResult,\n SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport type { Chain, Client, Transport } from \"viem\";\nimport { installPlugin, type InstallPluginParams } from \"./installPlugin.js\";\nimport {\n uninstallPlugin,\n type UninstallPluginParams,\n} from \"./uninstallPlugin.js\";\n\nexport { type InstallPluginParams } from \"./installPlugin.js\";\nexport { type UninstallPluginParams } from \"./uninstallPlugin.js\";\n\nexport type PluginManagerActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>\n> = {\n installPlugin: (\n params: InstallPluginParams<TAccount>\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n uninstallPlugin: (\n params: UninstallPluginParams<TAccount>\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n};\n\n/**\n * Provides actions for managing plugins on a given client, including installing and uninstalling plugins.\n * NOTE: this is provided by default when using a modular account client\n *\n * @example\n * ```ts\n * import { pluginManagerActions } from \"@account-kit/smart-contracts\";\n * import { createSmartAccountClient } from \"@aa-sdk/core\";\n *\n * const client = createSmartAccountClient(...).extend(pluginManagerActions);\n * ```\n *\n * @param {Client<TTransport, TChain, TAccount>} client The client instance on which to manage plugins\n * @returns {PluginManagerActions<TAccount>} An object containing functions to install and uninstall plugins\n */\nexport function pluginManagerActions<\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): PluginManagerActions<TAccount> {\n return {\n installPlugin: async (params) => installPlugin(client, params),\n uninstallPlugin: async (params) => uninstallPlugin(client, params),\n };\n}\n"]}
|
|
@@ -7,5 +7,26 @@ export type InstallPluginParams<TAccount extends SmartContractAccount | undefine
|
|
|
7
7
|
pluginInitData?: Hash;
|
|
8
8
|
dependencies?: FunctionReference[];
|
|
9
9
|
} & UserOperationOverridesParameter<TEntryPointVersion> & GetAccountParameter<TAccount> & GetContextParameter<TContext>;
|
|
10
|
+
/**
|
|
11
|
+
* Installs a plugin on a smart account via the client, sending the user operation with the appropriate parameters.
|
|
12
|
+
* NOTE: it's recommended to just use the installPlugin action returned from generated plugins
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { installPlugin, createModularAccountAlchemyClient } from "@account-kit/smart-contracts";
|
|
17
|
+
*
|
|
18
|
+
* const client = createModularAccountAlchemyClient(...);
|
|
19
|
+
*
|
|
20
|
+
* const hash = await installPlugin(client, {
|
|
21
|
+
* pluginAddress: "0x...",
|
|
22
|
+
* manifestHash: "0x...",
|
|
23
|
+
* dependencies: [], // this is defined by the plugin you're installing
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @param {Client<TTransport, TChain, TAccount>} client The client configured to the smart account on which the plugin will be installed
|
|
28
|
+
* @param {InstallPluginParams<TAccount, TContext>} params The parameters required to install the plugin, including overrides, context, and account information
|
|
29
|
+
* @returns {Promise<any>} A promise that resolves once the plugin installation operation is sent
|
|
30
|
+
*/
|
|
10
31
|
export declare function installPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, unknown> | undefined = Record<string, unknown> | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, context, account, ...params }: InstallPluginParams<TAccount, TContext>): Promise<import("@aa-sdk/core").SendUserOperationResult<GetEntryPointFromAccount<TAccount, SmartContractAccount<string, keyof import("@aa-sdk/core").EntryPointRegistryBase<unknown>>>>>;
|
|
11
32
|
export declare function encodeInstallPluginUserOperation<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, params: Omit<InstallPluginParams, "overrides" | "account" | "context">): Promise<`0x${string}`>;
|
|
@@ -2,6 +2,27 @@ import { AccountNotFoundError, IncompatibleClientError, isSmartAccountClient, }
|
|
|
2
2
|
import { encodeFunctionData, encodeFunctionResult, keccak256, } from "viem";
|
|
3
3
|
import { IPluginAbi } from "../abis/IPlugin.js";
|
|
4
4
|
import { IPluginManagerAbi } from "../abis/IPluginManager.js";
|
|
5
|
+
/**
|
|
6
|
+
* Installs a plugin on a smart account via the client, sending the user operation with the appropriate parameters.
|
|
7
|
+
* NOTE: it's recommended to just use the installPlugin action returned from generated plugins
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { installPlugin, createModularAccountAlchemyClient } from "@account-kit/smart-contracts";
|
|
12
|
+
*
|
|
13
|
+
* const client = createModularAccountAlchemyClient(...);
|
|
14
|
+
*
|
|
15
|
+
* const hash = await installPlugin(client, {
|
|
16
|
+
* pluginAddress: "0x...",
|
|
17
|
+
* manifestHash: "0x...",
|
|
18
|
+
* dependencies: [], // this is defined by the plugin you're installing
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @param {Client<TTransport, TChain, TAccount>} client The client configured to the smart account on which the plugin will be installed
|
|
23
|
+
* @param {InstallPluginParams<TAccount, TContext>} params The parameters required to install the plugin, including overrides, context, and account information
|
|
24
|
+
* @returns {Promise<any>} A promise that resolves once the plugin installation operation is sent
|
|
25
|
+
*/
|
|
5
26
|
export async function installPlugin(client, { overrides, context, account = client.account, ...params }) {
|
|
6
27
|
if (!account) {
|
|
7
28
|
throw new AccountNotFoundError();
|
|
@@ -23,6 +44,7 @@ export async function encodeInstallPluginUserOperation(client, params) {
|
|
|
23
44
|
address: params.pluginAddress,
|
|
24
45
|
functionName: "pluginManifest",
|
|
25
46
|
});
|
|
47
|
+
// use the manifest hash passed in or get it from the plugin
|
|
26
48
|
const manifestHash = params.manifestHash ??
|
|
27
49
|
keccak256(encodeFunctionResult({
|
|
28
50
|
abi: IPluginAbi,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installPlugin.js","sourceRoot":"","sources":["../../../../../src/msca/plugin-manager/installPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GAOrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,GAMV,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"installPlugin.js","sourceRoot":"","sources":["../../../../../src/msca/plugin-manager/installPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GAOrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,GAMV,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAoB9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAUjC,MAA4C,EAC5C,EACE,SAAS,EACT,OAAO,EACP,OAAO,GAAG,MAAM,CAAC,OAAO,EACxB,GAAG,MAAM,EAC+B;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,uBAAuB,CAC/B,oBAAoB,EACpB,eAAe,EACf,MAAM,CACP,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExE,OAAO,MAAM,CAAC,iBAAiB,CAAC;QAC9B,EAAE,EAAE,QAAQ;QACZ,SAAS;QACT,OAAO;QACP,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAOpD,MAAwD,EACxD,MAAsE;IAEtE,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC/C,GAAG,EAAE,UAAU;QACf,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAC;IACH,4DAA4D;IAC5D,MAAM,YAAY,GAChB,MAAM,CAAC,YAAY;QACnB,SAAS,CACP,oBAAoB,CAAC;YACnB,GAAG,EAAE,UAAU;YACf,YAAY,EAAE,gBAAgB;YAC9B,MAAM,EAAE,cAAc;SACvB,CAAC,CACH,CAAC;IACJ,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,iBAAiB;QACtB,YAAY,EAAE,eAAe;QAC7B,IAAI,EAAE;YACJ,MAAM,CAAC,aAAa;YACpB,YAAY;YACZ,MAAM,CAAC,cAAc,IAAI,IAAI;YAC7B,MAAM,CAAC,YAAY,IAAI,EAAE;SAC1B;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n AccountNotFoundError,\n IncompatibleClientError,\n isSmartAccountClient,\n type GetAccountParameter,\n type GetContextParameter,\n type GetEntryPointFromAccount,\n type SmartAccountClient,\n type SmartContractAccount,\n type UserOperationOverridesParameter,\n} from \"@aa-sdk/core\";\nimport {\n encodeFunctionData,\n encodeFunctionResult,\n keccak256,\n type Address,\n type Chain,\n type Client,\n type Hash,\n type Transport,\n} from \"viem\";\nimport { IPluginAbi } from \"../abis/IPlugin.js\";\nimport { IPluginManagerAbi } from \"../abis/IPluginManager.js\";\nimport type { FunctionReference } from \"../account-loupe/types.js\";\n\nexport type InstallPluginParams<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends Record<string, unknown> | undefined =\n | Record<string, unknown>\n | undefined,\n TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>\n> = {\n pluginAddress: Address;\n manifestHash?: Hash;\n pluginInitData?: Hash;\n dependencies?: FunctionReference[];\n} & UserOperationOverridesParameter<TEntryPointVersion> &\n GetAccountParameter<TAccount> &\n GetContextParameter<TContext>;\n\n/**\n * Installs a plugin on a smart account via the client, sending the user operation with the appropriate parameters.\n * NOTE: it's recommended to just use the installPlugin action returned from generated plugins\n *\n * @example\n * ```ts\n * import { installPlugin, createModularAccountAlchemyClient } from \"@account-kit/smart-contracts\";\n *\n * const client = createModularAccountAlchemyClient(...);\n *\n * const hash = await installPlugin(client, {\n * pluginAddress: \"0x...\",\n * manifestHash: \"0x...\",\n * dependencies: [], // this is defined by the plugin you're installing\n * });\n * ```\n *\n * @param {Client<TTransport, TChain, TAccount>} client The client configured to the smart account on which the plugin will be installed\n * @param {InstallPluginParams<TAccount, TContext>} params The parameters required to install the plugin, including overrides, context, and account information\n * @returns {Promise<any>} A promise that resolves once the plugin installation operation is sent\n */\nexport async function installPlugin<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends Record<string, unknown> | undefined =\n | Record<string, unknown>\n | undefined\n>(\n client: Client<TTransport, TChain, TAccount>,\n {\n overrides,\n context,\n account = client.account,\n ...params\n }: InstallPluginParams<TAccount, TContext>\n) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"installPlugin\",\n client\n );\n }\n\n const callData = await encodeInstallPluginUserOperation(client, params);\n\n return client.sendUserOperation({\n uo: callData,\n overrides,\n account,\n context,\n });\n}\n\nexport async function encodeInstallPluginUserOperation<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined\n>(\n client: SmartAccountClient<TTransport, TChain, TAccount>,\n params: Omit<InstallPluginParams, \"overrides\" | \"account\" | \"context\">\n) {\n const pluginManifest = await client.readContract({\n abi: IPluginAbi,\n address: params.pluginAddress,\n functionName: \"pluginManifest\",\n });\n // use the manifest hash passed in or get it from the plugin\n const manifestHash: Hash =\n params.manifestHash ??\n keccak256(\n encodeFunctionResult({\n abi: IPluginAbi,\n functionName: \"pluginManifest\",\n result: pluginManifest,\n })\n );\n return encodeFunctionData({\n abi: IPluginManagerAbi,\n functionName: \"installPlugin\",\n args: [\n params.pluginAddress,\n manifestHash,\n params.pluginInitData ?? \"0x\",\n params.dependencies ?? [],\n ],\n });\n}\n"]}
|
|
@@ -10,4 +10,19 @@ export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | unde
|
|
|
10
10
|
} & (IsUndefined<TAccount> extends false ? {
|
|
11
11
|
readOwners: (params?: GetPluginAddressParameter & GetAccountParameter<TAccount>) => Promise<ReadonlyArray<Address>>;
|
|
12
12
|
} : {});
|
|
13
|
+
/**
|
|
14
|
+
* Creates actions for the MultiOwner plugin, including reading owners and checking ownership.
|
|
15
|
+
* NOTE: this is already added to the client returned from createMultiOwnerModularAccountClient
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { multiOwnerPluginActions } from "@account-kit/smart-contracts";
|
|
20
|
+
* import { createSmartAccountClient } from "@aa-sdk/core";
|
|
21
|
+
*
|
|
22
|
+
* const client = createSmartAccountClient(...).extend(multiOwnerPluginActions);
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @param {Client<TTransport, TChain, TAccount>} client the client instance containing the transport, chain, and account information
|
|
26
|
+
* @returns {MultiOwnerPluginActions<TAccount>} an object containing the actions for the MultiOwner plugin, such as `readOwners` and `isOwnerOf`
|
|
27
|
+
*/
|
|
13
28
|
export declare const multiOwnerPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>) => MultiOwnerPluginActions<TAccount>;
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { AccountNotFoundError, } from "@aa-sdk/core";
|
|
2
2
|
import {} from "viem";
|
|
3
3
|
import { MultiOwnerPlugin, multiOwnerPluginActions as multiOwnerPluginActions_, } from "./plugin.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates actions for the MultiOwner plugin, including reading owners and checking ownership.
|
|
6
|
+
* NOTE: this is already added to the client returned from createMultiOwnerModularAccountClient
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { multiOwnerPluginActions } from "@account-kit/smart-contracts";
|
|
11
|
+
* import { createSmartAccountClient } from "@aa-sdk/core";
|
|
12
|
+
*
|
|
13
|
+
* const client = createSmartAccountClient(...).extend(multiOwnerPluginActions);
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @param {Client<TTransport, TChain, TAccount>} client the client instance containing the transport, chain, and account information
|
|
17
|
+
* @returns {MultiOwnerPluginActions<TAccount>} an object containing the actions for the MultiOwner plugin, such as `readOwners` and `isOwnerOf`
|
|
18
|
+
*/
|
|
4
19
|
export const multiOwnerPluginActions = (client) => ({
|
|
5
20
|
...multiOwnerPluginActions_(client),
|
|
6
21
|
async readOwners(args) {
|
|
@@ -8,6 +23,8 @@ export const multiOwnerPluginActions = (client) => ({
|
|
|
8
23
|
if (!account) {
|
|
9
24
|
throw new AccountNotFoundError();
|
|
10
25
|
}
|
|
26
|
+
// TODO: check if the account actually has the plugin installed
|
|
27
|
+
// either via account loupe or checking if the supports interface call passes on the account
|
|
11
28
|
const contract = MultiOwnerPlugin.getContract(client, args?.pluginAddress);
|
|
12
29
|
return contract.read.ownersOf([account.address]);
|
|
13
30
|
},
|
|
@@ -16,6 +33,8 @@ export const multiOwnerPluginActions = (client) => ({
|
|
|
16
33
|
if (!account) {
|
|
17
34
|
throw new AccountNotFoundError();
|
|
18
35
|
}
|
|
36
|
+
// TODO: check if the account actually has the plugin installed
|
|
37
|
+
// either via account loupe or checking if the supports interface call passes on the account
|
|
19
38
|
const contract = MultiOwnerPlugin.getContract(client, args.pluginAddress);
|
|
20
39
|
return contract.read.isOwnerOf([account.address, args.address]);
|
|
21
40
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multi-owner/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAIrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAyD,MAAM,MAAM,CAAC;AAE7E,OAAO,EACL,gBAAgB,EAChB,uBAAuB,IAAI,wBAAwB,GAEpD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multi-owner/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAIrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAyD,MAAM,MAAM,CAAC;AAE7E,OAAO,EACL,gBAAgB,EAChB,uBAAuB,IAAI,wBAAwB,GAEpD,MAAM,aAAa,CAAC;AAuBrB;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAQK,CAOvC,MAA4C,EAC5C,EAAE,CAAC,CAAC;IACJ,GAAG,wBAAwB,CAAC,MAAM,CAAC;IACnC,KAAK,CAAC,UAAU,CACd,IAA+D;QAE/D,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,EAAE,CAAC;QACnC,CAAC;QACD,+DAA+D;QAC/D,4FAA4F;QAC5F,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAC+B;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,EAAE,CAAC;QACnC,CAAC;QACD,+DAA+D;QAC/D,4FAA4F;QAC5F,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;CACF,CAAC,CAAC","sourcesContent":["import {\n AccountNotFoundError,\n type GetAccountParameter,\n type IsUndefined,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport { type Address, type Chain, type Client, type Transport } from \"viem\";\nimport type { GetPluginAddressParameter } from \"../types.js\";\nimport {\n MultiOwnerPlugin,\n multiOwnerPluginActions as multiOwnerPluginActions_,\n type MultiOwnerPluginActions as MultiOwnerPluginActions_,\n} from \"./plugin.js\";\n\nexport type MultiOwnerPluginActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined\n> = MultiOwnerPluginActions_<TAccount, undefined> & {\n readOwners: (\n params: GetPluginAddressParameter & GetAccountParameter<TAccount>\n ) => Promise<ReadonlyArray<Address>>;\n\n isOwnerOf: (\n params: { address: Address } & GetPluginAddressParameter &\n GetAccountParameter<TAccount>\n ) => Promise<boolean>;\n} & (IsUndefined<TAccount> extends false\n ? {\n readOwners: (\n params?: GetPluginAddressParameter & GetAccountParameter<TAccount>\n ) => Promise<ReadonlyArray<Address>>;\n }\n : {});\n\n/**\n * Creates actions for the MultiOwner plugin, including reading owners and checking ownership.\n * NOTE: this is already added to the client returned from createMultiOwnerModularAccountClient\n *\n * @example\n * ```ts\n * import { multiOwnerPluginActions } from \"@account-kit/smart-contracts\";\n * import { createSmartAccountClient } from \"@aa-sdk/core\";\n *\n * const client = createSmartAccountClient(...).extend(multiOwnerPluginActions);\n * ```\n *\n * @param {Client<TTransport, TChain, TAccount>} client the client instance containing the transport, chain, and account information\n * @returns {MultiOwnerPluginActions<TAccount>} an object containing the actions for the MultiOwner plugin, such as `readOwners` and `isOwnerOf`\n */\nexport const multiOwnerPluginActions: <\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) => MultiOwnerPluginActions<TAccount> = <\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) => ({\n ...multiOwnerPluginActions_(client),\n async readOwners(\n args: GetPluginAddressParameter & GetAccountParameter<TAccount>\n ) {\n const account = args?.account ?? client.account;\n if (!account) {\n throw new AccountNotFoundError();\n }\n // TODO: check if the account actually has the plugin installed\n // either via account loupe or checking if the supports interface call passes on the account\n const contract = MultiOwnerPlugin.getContract(client, args?.pluginAddress);\n return contract.read.ownersOf([account.address]);\n },\n\n async isOwnerOf(\n args: { address: Address } & GetPluginAddressParameter &\n GetAccountParameter<TAccount>\n ) {\n const account = args.account ?? client.account;\n if (!account) {\n throw new AccountNotFoundError();\n }\n // TODO: check if the account actually has the plugin installed\n // either via account loupe or checking if the supports interface call passes on the account\n const contract = MultiOwnerPlugin.getContract(client, args.pluginAddress);\n return contract.read.isOwnerOf([account.address, args.address]);\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multi-owner/plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getContract,\n encodeAbiParameters,\n encodeFunctionData,\n type Address,\n type GetContractReturnType,\n type Transport,\n type PublicClient,\n type Client,\n type EncodeFunctionDataParameters,\n type Chain,\n type Hex,\n type ReadContractReturnType,\n} from \"viem\";\nimport {\n ChainNotFoundError,\n AccountNotFoundError,\n isSmartAccountClient,\n IncompatibleClientError,\n type SmartContractAccount,\n type GetAccountParameter,\n type SendUserOperationResult,\n type GetEntryPointFromAccount,\n type UserOperationOverridesParameter,\n type UserOperationContext,\n type GetContextParameter,\n} from \"@aa-sdk/core\";\nimport {\n installPlugin as installPlugin_,\n type Plugin,\n type FunctionReference,\n} from \"@account-kit/smart-contracts\";\n\ntype ExecutionActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined =\n | UserOperationContext\n | undefined,\n TEntryPointVersion extends\n GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>,\n> = {\n updateOwners: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"updateOwners\"\n >,\n \"args\"\n > &\n UserOperationOverridesParameter<TEntryPointVersion> &\n GetAccountParameter<TAccount> &\n GetContextParameter<TContext>,\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n};\n\ntype InstallArgs = [{ type: \"address[]\" }];\n\nexport type InstallMultiOwnerPluginParams = {\n args: Parameters<typeof encodeAbiParameters<InstallArgs>>[1];\n pluginAddress?: Address;\n dependencyOverrides?: FunctionReference[];\n};\n\ntype ManagementActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined =\n | Record<string, any>\n | undefined,\n TEntryPointVersion extends\n GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>,\n> = {\n installMultiOwnerPlugin: (\n args: UserOperationOverridesParameter<TEntryPointVersion> &\n InstallMultiOwnerPluginParams &\n GetAccountParameter<TAccount> &\n GetContextParameter<TContext>,\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n};\n\ntype ReadAndEncodeActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n> = {\n encodeUpdateOwners: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"updateOwners\"\n >,\n \"args\"\n >,\n ) => Hex;\n\n encodeEip712Domain: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"eip712Domain\"\n >,\n \"args\"\n >,\n ) => Hex;\n\n readEip712Domain: (\n args: GetAccountParameter<TAccount>,\n ) => Promise<\n ReadContractReturnType<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"eip712Domain\"\n >\n >;\n\n encodeIsValidSignature: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"isValidSignature\"\n >,\n \"args\"\n >,\n ) => Hex;\n\n readIsValidSignature: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"isValidSignature\"\n >,\n \"args\"\n > &\n GetAccountParameter<TAccount>,\n ) => Promise<\n ReadContractReturnType<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"isValidSignature\"\n >\n >;\n};\n\nexport type MultiOwnerPluginActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined =\n | UserOperationContext\n | undefined,\n> = ExecutionActions<TAccount, TContext> &\n ManagementActions<TAccount, TContext> &\n ReadAndEncodeActions<TAccount>;\n\nconst addresses = {\n 1: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 10: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 137: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 252: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 2523: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 8453: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 42161: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 80001: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 80002: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 84532: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 421614: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 7777777: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 11155111: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 11155420: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 999999999: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n} as Record<number, Address>;\n\nexport const MultiOwnerPlugin: Plugin<typeof MultiOwnerPluginAbi> = {\n meta: {\n name: \"Multi Owner Plugin\",\n version: \"1.0.0\",\n addresses,\n },\n getContract: <C extends Client>(\n client: C,\n address?: Address,\n ): GetContractReturnType<\n typeof MultiOwnerPluginAbi,\n PublicClient,\n Address\n > => {\n if (!client.chain) throw new ChainNotFoundError();\n\n return getContract({\n address: address || addresses[client.chain.id],\n abi: MultiOwnerPluginAbi,\n client: client,\n });\n },\n};\n\nexport const multiOwnerPluginActions: <\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined =\n | UserOperationContext\n | undefined,\n>(\n client: Client<TTransport, TChain, TAccount>,\n) => MultiOwnerPluginActions<TAccount, TContext> = (client) => ({\n updateOwners({ args, overrides, context, account = client.account }) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"updateOwners\",\n client,\n );\n }\n\n const uo = encodeFunctionData({\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"updateOwners\",\n args,\n });\n\n return client.sendUserOperation({ uo, overrides, account, context });\n },\n installMultiOwnerPlugin({\n account = client.account,\n overrides,\n context,\n ...params\n }) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"installMultiOwnerPlugin\",\n client,\n );\n }\n\n const chain = client.chain;\n if (!chain) {\n throw new ChainNotFoundError();\n }\n\n const dependencies = params.dependencyOverrides ?? [];\n const pluginAddress =\n params.pluginAddress ??\n (MultiOwnerPlugin.meta.addresses[chain.id] as Address | undefined);\n\n if (!pluginAddress) {\n throw new Error(\n \"missing MultiOwnerPlugin address for chain \" + chain.name,\n );\n }\n\n return installPlugin_(client, {\n pluginAddress,\n pluginInitData: encodeAbiParameters([{ type: \"address[]\" }], params.args),\n dependencies,\n overrides,\n account,\n context,\n });\n },\n encodeUpdateOwners({ args }) {\n return encodeFunctionData({\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"updateOwners\",\n args,\n });\n },\n encodeEip712Domain() {\n return encodeFunctionData({\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"eip712Domain\",\n });\n },\n\n async readEip712Domain({ account = client.account }) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"readEip712Domain\",\n client,\n );\n }\n\n return client.readContract({\n address: account.address,\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"eip712Domain\",\n });\n },\n encodeIsValidSignature({ args }) {\n return encodeFunctionData({\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"isValidSignature\",\n args,\n });\n },\n\n async readIsValidSignature({ args, account = client.account }) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"readIsValidSignature\",\n client,\n );\n }\n\n return client.readContract({\n address: account.address,\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"isValidSignature\",\n args,\n });\n },\n});\n\nexport const MultiOwnerPluginExecutionFunctionAbi = [\n {\n type: \"function\",\n name: \"updateOwners\",\n inputs: [\n { name: \"ownersToAdd\", type: \"address[]\", internalType: \"address[]\" },\n { name: \"ownersToRemove\", type: \"address[]\", internalType: \"address[]\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"eip712Domain\",\n inputs: [],\n outputs: [\n { name: \"fields\", type: \"bytes1\", internalType: \"bytes1\" },\n { name: \"name\", type: \"string\", internalType: \"string\" },\n { name: \"version\", type: \"string\", internalType: \"string\" },\n { name: \"chainId\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\", internalType: \"address\" },\n { name: \"salt\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"extensions\", type: \"uint256[]\", internalType: \"uint256[]\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"isValidSignature\",\n inputs: [\n { name: \"digest\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"view\",\n },\n] as const;\n\nexport const MultiOwnerPluginAbi = [\n {\n type: \"function\",\n name: \"eip712Domain\",\n inputs: [],\n outputs: [\n { name: \"fields\", type: \"bytes1\", internalType: \"bytes1\" },\n { name: \"name\", type: \"string\", internalType: \"string\" },\n { name: \"version\", type: \"string\", internalType: \"string\" },\n { name: \"chainId\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\", internalType: \"address\" },\n { name: \"salt\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"extensions\", type: \"uint256[]\", internalType: \"uint256[]\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"encodeMessageData\",\n inputs: [\n { name: \"account\", type: \"address\", internalType: \"address\" },\n { name: \"message\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes\", internalType: \"bytes\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getMessageHash\",\n inputs: [\n { name: \"account\", type: \"address\", internalType: \"address\" },\n { name: \"message\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"isOwnerOf\",\n inputs: [\n { name: \"account\", type: \"address\", internalType: \"address\" },\n { name: \"ownerToCheck\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"isValidSignature\",\n inputs: [\n { name: \"digest\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"onInstall\",\n inputs: [{ name: \"data\", type: \"bytes\", internalType: \"bytes\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"onUninstall\",\n inputs: [{ name: \"\", type: \"bytes\", internalType: \"bytes\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"ownersOf\",\n inputs: [{ name: \"account\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"address[]\", internalType: \"address[]\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"pluginManifest\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"tuple\",\n internalType: \"struct PluginManifest\",\n components: [\n { name: \"interfaceIds\", type: \"bytes4[]\", internalType: \"bytes4[]\" },\n {\n name: \"dependencyInterfaceIds\",\n type: \"bytes4[]\",\n internalType: \"bytes4[]\",\n },\n {\n name: \"executionFunctions\",\n type: \"bytes4[]\",\n internalType: \"bytes4[]\",\n },\n {\n name: \"permittedExecutionSelectors\",\n type: \"bytes4[]\",\n internalType: \"bytes4[]\",\n },\n {\n name: \"permitAnyExternalAddress\",\n type: \"bool\",\n internalType: \"bool\",\n },\n { name: \"canSpendNativeToken\", type: \"bool\", internalType: \"bool\" },\n {\n name: \"permittedExternalCalls\",\n type: \"tuple[]\",\n internalType: \"struct ManifestExternalCallPermission[]\",\n components: [\n {\n name: \"externalAddress\",\n type: \"address\",\n internalType: \"address\",\n },\n { name: \"permitAnySelector\", type: \"bool\", internalType: \"bool\" },\n { name: \"selectors\", type: \"bytes4[]\", internalType: \"bytes4[]\" },\n ],\n },\n {\n name: \"userOpValidationFunctions\",\n type: \"tuple[]\",\n internalType: \"struct ManifestAssociatedFunction[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"associatedFunction\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n {\n name: \"runtimeValidationFunctions\",\n type: \"tuple[]\",\n internalType: \"struct ManifestAssociatedFunction[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"associatedFunction\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n {\n name: \"preUserOpValidationHooks\",\n type: \"tuple[]\",\n internalType: \"struct ManifestAssociatedFunction[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"associatedFunction\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n {\n name: \"preRuntimeValidationHooks\",\n type: \"tuple[]\",\n internalType: \"struct ManifestAssociatedFunction[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"associatedFunction\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n {\n name: \"executionHooks\",\n type: \"tuple[]\",\n internalType: \"struct ManifestExecutionHook[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"preExecHook\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n {\n name: \"postExecHook\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n stateMutability: \"pure\",\n },\n {\n type: \"function\",\n name: \"pluginMetadata\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"tuple\",\n internalType: \"struct PluginMetadata\",\n components: [\n { name: \"name\", type: \"string\", internalType: \"string\" },\n { name: \"version\", type: \"string\", internalType: \"string\" },\n { name: \"author\", type: \"string\", internalType: \"string\" },\n {\n name: \"permissionDescriptors\",\n type: \"tuple[]\",\n internalType: \"struct SelectorPermission[]\",\n components: [\n {\n name: \"functionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"permissionDescription\",\n type: \"string\",\n internalType: \"string\",\n },\n ],\n },\n ],\n },\n ],\n stateMutability: \"pure\",\n },\n {\n type: \"function\",\n name: \"postExecutionHook\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"preExecHookData\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"preExecutionHook\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"data\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes\", internalType: \"bytes\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"preRuntimeValidationHook\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"data\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"preUserOpValidationHook\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"userOp\",\n type: \"tuple\",\n internalType: \"struct UserOperation\",\n components: [\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"nonce\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"initCode\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"callData\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"callGasLimit\", type: \"uint256\", internalType: \"uint256\" },\n {\n name: \"verificationGasLimit\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n {\n name: \"preVerificationGas\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n { name: \"maxFeePerGas\", type: \"uint256\", internalType: \"uint256\" },\n {\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n { name: \"paymasterAndData\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n },\n { name: \"userOpHash\", type: \"bytes32\", internalType: \"bytes32\" },\n ],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"runtimeValidationFunction\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"supportsInterface\",\n inputs: [{ name: \"interfaceId\", type: \"bytes4\", internalType: \"bytes4\" }],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"updateOwners\",\n inputs: [\n { name: \"ownersToAdd\", type: \"address[]\", internalType: \"address[]\" },\n { name: \"ownersToRemove\", type: \"address[]\", internalType: \"address[]\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"userOpValidationFunction\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"userOp\",\n type: \"tuple\",\n internalType: \"struct UserOperation\",\n components: [\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"nonce\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"initCode\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"callData\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"callGasLimit\", type: \"uint256\", internalType: \"uint256\" },\n {\n name: \"verificationGasLimit\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n {\n name: \"preVerificationGas\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n { name: \"maxFeePerGas\", type: \"uint256\", internalType: \"uint256\" },\n {\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n { name: \"paymasterAndData\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n },\n { name: \"userOpHash\", type: \"bytes32\", internalType: \"bytes32\" },\n ],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"event\",\n name: \"OwnerUpdated\",\n inputs: [\n {\n name: \"account\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"addedOwners\",\n type: \"address[]\",\n indexed: false,\n internalType: \"address[]\",\n },\n {\n name: \"removedOwners\",\n type: \"address[]\",\n indexed: false,\n internalType: \"address[]\",\n },\n ],\n anonymous: false,\n },\n { type: \"error\", name: \"AlreadyInitialized\", inputs: [] },\n { type: \"error\", name: \"EmptyOwnersNotAllowed\", inputs: [] },\n { type: \"error\", name: \"InvalidAction\", inputs: [] },\n {\n type: \"error\",\n name: \"InvalidOwner\",\n inputs: [{ name: \"owner\", type: \"address\", internalType: \"address\" }],\n },\n { type: \"error\", name: \"NotAuthorized\", inputs: [] },\n {\n type: \"error\",\n name: \"NotContractCaller\",\n inputs: [{ name: \"caller\", type: \"address\", internalType: \"address\" }],\n },\n {\n type: \"error\",\n name: \"NotImplemented\",\n inputs: [\n { name: \"selector\", type: \"bytes4\", internalType: \"bytes4\" },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n ],\n },\n { type: \"error\", name: \"NotInitialized\", inputs: [] },\n {\n type: \"error\",\n name: \"OwnerDoesNotExist\",\n inputs: [{ name: \"owner\", type: \"address\", internalType: \"address\" }],\n },\n] as const;\n"]}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multi-owner/plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getContract,\n encodeAbiParameters,\n encodeFunctionData,\n type Address,\n type GetContractReturnType,\n type Transport,\n type PublicClient,\n type Client,\n type EncodeFunctionDataParameters,\n type Chain,\n type Hex,\n type ReadContractReturnType,\n} from \"viem\";\nimport {\n ChainNotFoundError,\n AccountNotFoundError,\n isSmartAccountClient,\n IncompatibleClientError,\n type SmartContractAccount,\n type GetAccountParameter,\n type SendUserOperationResult,\n type GetEntryPointFromAccount,\n type UserOperationOverridesParameter,\n type UserOperationContext,\n type GetContextParameter,\n} from \"@aa-sdk/core\";\nimport {\n installPlugin as installPlugin_,\n type Plugin,\n type FunctionReference,\n} from \"@account-kit/smart-contracts\";\n\ntype ExecutionActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined =\n | UserOperationContext\n | undefined,\n TEntryPointVersion extends\n GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>,\n> = {\n updateOwners: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"updateOwners\"\n >,\n \"args\"\n > &\n UserOperationOverridesParameter<TEntryPointVersion> &\n GetAccountParameter<TAccount> &\n GetContextParameter<TContext>,\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n};\n\ntype InstallArgs = [{ type: \"address[]\" }];\n\nexport type InstallMultiOwnerPluginParams = {\n args: Parameters<typeof encodeAbiParameters<InstallArgs>>[1];\n pluginAddress?: Address;\n dependencyOverrides?: FunctionReference[];\n};\n\ntype ManagementActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined =\n | Record<string, any>\n | undefined,\n TEntryPointVersion extends\n GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>,\n> = {\n installMultiOwnerPlugin: (\n args: UserOperationOverridesParameter<TEntryPointVersion> &\n InstallMultiOwnerPluginParams &\n GetAccountParameter<TAccount> &\n GetContextParameter<TContext>,\n ) => Promise<SendUserOperationResult<TEntryPointVersion>>;\n};\n\ntype ReadAndEncodeActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n> = {\n encodeUpdateOwners: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"updateOwners\"\n >,\n \"args\"\n >,\n ) => Hex;\n\n encodeEip712Domain: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"eip712Domain\"\n >,\n \"args\"\n >,\n ) => Hex;\n\n readEip712Domain: (\n args: GetAccountParameter<TAccount>,\n ) => Promise<\n ReadContractReturnType<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"eip712Domain\"\n >\n >;\n\n encodeIsValidSignature: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"isValidSignature\"\n >,\n \"args\"\n >,\n ) => Hex;\n\n readIsValidSignature: (\n args: Pick<\n EncodeFunctionDataParameters<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"isValidSignature\"\n >,\n \"args\"\n > &\n GetAccountParameter<TAccount>,\n ) => Promise<\n ReadContractReturnType<\n typeof MultiOwnerPluginExecutionFunctionAbi,\n \"isValidSignature\"\n >\n >;\n};\n\nexport type MultiOwnerPluginActions<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined =\n | UserOperationContext\n | undefined,\n> = ExecutionActions<TAccount, TContext> &\n ManagementActions<TAccount, TContext> &\n ReadAndEncodeActions<TAccount>;\n\nconst addresses = {\n 1: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 10: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 137: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 252: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 2523: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 8453: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 42161: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 80001: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 80002: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 84532: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 421614: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 7777777: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 11155111: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 11155420: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n 999999999: \"0xcE0000007B008F50d762D155002600004cD6c647\" as Address,\n} as Record<number, Address>;\n\nexport const MultiOwnerPlugin: Plugin<typeof MultiOwnerPluginAbi> = {\n meta: {\n name: \"Multi Owner Plugin\",\n version: \"1.0.0\",\n addresses,\n },\n getContract: <C extends Client>(\n client: C,\n address?: Address,\n ): GetContractReturnType<\n typeof MultiOwnerPluginAbi,\n PublicClient,\n Address\n > => {\n if (!client.chain) throw new ChainNotFoundError();\n\n return getContract({\n address: address || addresses[client.chain.id],\n abi: MultiOwnerPluginAbi,\n client: client,\n }) as GetContractReturnType<\n typeof MultiOwnerPluginAbi,\n PublicClient,\n Address\n >;\n },\n};\n\nexport const multiOwnerPluginActions: <\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TContext extends UserOperationContext | undefined =\n | UserOperationContext\n | undefined,\n>(\n client: Client<TTransport, TChain, TAccount>,\n) => MultiOwnerPluginActions<TAccount, TContext> = (client) => ({\n updateOwners({ args, overrides, context, account = client.account }) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"updateOwners\",\n client,\n );\n }\n\n const uo = encodeFunctionData({\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"updateOwners\",\n args,\n });\n\n return client.sendUserOperation({ uo, overrides, account, context });\n },\n installMultiOwnerPlugin({\n account = client.account,\n overrides,\n context,\n ...params\n }) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"installMultiOwnerPlugin\",\n client,\n );\n }\n\n const chain = client.chain;\n if (!chain) {\n throw new ChainNotFoundError();\n }\n\n const dependencies = params.dependencyOverrides ?? [];\n const pluginAddress =\n params.pluginAddress ??\n (MultiOwnerPlugin.meta.addresses[chain.id] as Address | undefined);\n\n if (!pluginAddress) {\n throw new Error(\n \"missing MultiOwnerPlugin address for chain \" + chain.name,\n );\n }\n\n return installPlugin_(client, {\n pluginAddress,\n pluginInitData: encodeAbiParameters([{ type: \"address[]\" }], params.args),\n dependencies,\n overrides,\n account,\n context,\n });\n },\n encodeUpdateOwners({ args }) {\n return encodeFunctionData({\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"updateOwners\",\n args,\n });\n },\n encodeEip712Domain() {\n return encodeFunctionData({\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"eip712Domain\",\n });\n },\n\n async readEip712Domain({ account = client.account }) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"readEip712Domain\",\n client,\n );\n }\n\n return client.readContract({\n address: account.address,\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"eip712Domain\",\n });\n },\n encodeIsValidSignature({ args }) {\n return encodeFunctionData({\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"isValidSignature\",\n args,\n });\n },\n\n async readIsValidSignature({ args, account = client.account }) {\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"readIsValidSignature\",\n client,\n );\n }\n\n return client.readContract({\n address: account.address,\n abi: MultiOwnerPluginExecutionFunctionAbi,\n functionName: \"isValidSignature\",\n args,\n });\n },\n});\n\nexport const MultiOwnerPluginExecutionFunctionAbi = [\n {\n type: \"function\",\n name: \"updateOwners\",\n inputs: [\n { name: \"ownersToAdd\", type: \"address[]\", internalType: \"address[]\" },\n { name: \"ownersToRemove\", type: \"address[]\", internalType: \"address[]\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"eip712Domain\",\n inputs: [],\n outputs: [\n { name: \"fields\", type: \"bytes1\", internalType: \"bytes1\" },\n { name: \"name\", type: \"string\", internalType: \"string\" },\n { name: \"version\", type: \"string\", internalType: \"string\" },\n { name: \"chainId\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\", internalType: \"address\" },\n { name: \"salt\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"extensions\", type: \"uint256[]\", internalType: \"uint256[]\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"isValidSignature\",\n inputs: [\n { name: \"digest\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"view\",\n },\n] as const;\n\nexport const MultiOwnerPluginAbi = [\n {\n type: \"function\",\n name: \"eip712Domain\",\n inputs: [],\n outputs: [\n { name: \"fields\", type: \"bytes1\", internalType: \"bytes1\" },\n { name: \"name\", type: \"string\", internalType: \"string\" },\n { name: \"version\", type: \"string\", internalType: \"string\" },\n { name: \"chainId\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\", internalType: \"address\" },\n { name: \"salt\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"extensions\", type: \"uint256[]\", internalType: \"uint256[]\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"encodeMessageData\",\n inputs: [\n { name: \"account\", type: \"address\", internalType: \"address\" },\n { name: \"message\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes\", internalType: \"bytes\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getMessageHash\",\n inputs: [\n { name: \"account\", type: \"address\", internalType: \"address\" },\n { name: \"message\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"isOwnerOf\",\n inputs: [\n { name: \"account\", type: \"address\", internalType: \"address\" },\n { name: \"ownerToCheck\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"isValidSignature\",\n inputs: [\n { name: \"digest\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"onInstall\",\n inputs: [{ name: \"data\", type: \"bytes\", internalType: \"bytes\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"onUninstall\",\n inputs: [{ name: \"\", type: \"bytes\", internalType: \"bytes\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"ownersOf\",\n inputs: [{ name: \"account\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"address[]\", internalType: \"address[]\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"pluginManifest\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"tuple\",\n internalType: \"struct PluginManifest\",\n components: [\n { name: \"interfaceIds\", type: \"bytes4[]\", internalType: \"bytes4[]\" },\n {\n name: \"dependencyInterfaceIds\",\n type: \"bytes4[]\",\n internalType: \"bytes4[]\",\n },\n {\n name: \"executionFunctions\",\n type: \"bytes4[]\",\n internalType: \"bytes4[]\",\n },\n {\n name: \"permittedExecutionSelectors\",\n type: \"bytes4[]\",\n internalType: \"bytes4[]\",\n },\n {\n name: \"permitAnyExternalAddress\",\n type: \"bool\",\n internalType: \"bool\",\n },\n { name: \"canSpendNativeToken\", type: \"bool\", internalType: \"bool\" },\n {\n name: \"permittedExternalCalls\",\n type: \"tuple[]\",\n internalType: \"struct ManifestExternalCallPermission[]\",\n components: [\n {\n name: \"externalAddress\",\n type: \"address\",\n internalType: \"address\",\n },\n { name: \"permitAnySelector\", type: \"bool\", internalType: \"bool\" },\n { name: \"selectors\", type: \"bytes4[]\", internalType: \"bytes4[]\" },\n ],\n },\n {\n name: \"userOpValidationFunctions\",\n type: \"tuple[]\",\n internalType: \"struct ManifestAssociatedFunction[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"associatedFunction\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n {\n name: \"runtimeValidationFunctions\",\n type: \"tuple[]\",\n internalType: \"struct ManifestAssociatedFunction[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"associatedFunction\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n {\n name: \"preUserOpValidationHooks\",\n type: \"tuple[]\",\n internalType: \"struct ManifestAssociatedFunction[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"associatedFunction\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n {\n name: \"preRuntimeValidationHooks\",\n type: \"tuple[]\",\n internalType: \"struct ManifestAssociatedFunction[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"associatedFunction\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n {\n name: \"executionHooks\",\n type: \"tuple[]\",\n internalType: \"struct ManifestExecutionHook[]\",\n components: [\n {\n name: \"executionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"preExecHook\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n {\n name: \"postExecHook\",\n type: \"tuple\",\n internalType: \"struct ManifestFunction\",\n components: [\n {\n name: \"functionType\",\n type: \"uint8\",\n internalType: \"enum ManifestAssociatedFunctionType\",\n },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"dependencyIndex\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n stateMutability: \"pure\",\n },\n {\n type: \"function\",\n name: \"pluginMetadata\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"tuple\",\n internalType: \"struct PluginMetadata\",\n components: [\n { name: \"name\", type: \"string\", internalType: \"string\" },\n { name: \"version\", type: \"string\", internalType: \"string\" },\n { name: \"author\", type: \"string\", internalType: \"string\" },\n {\n name: \"permissionDescriptors\",\n type: \"tuple[]\",\n internalType: \"struct SelectorPermission[]\",\n components: [\n {\n name: \"functionSelector\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n {\n name: \"permissionDescription\",\n type: \"string\",\n internalType: \"string\",\n },\n ],\n },\n ],\n },\n ],\n stateMutability: \"pure\",\n },\n {\n type: \"function\",\n name: \"postExecutionHook\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"preExecHookData\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"preExecutionHook\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"data\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes\", internalType: \"bytes\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"preRuntimeValidationHook\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"data\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"preUserOpValidationHook\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"userOp\",\n type: \"tuple\",\n internalType: \"struct UserOperation\",\n components: [\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"nonce\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"initCode\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"callData\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"callGasLimit\", type: \"uint256\", internalType: \"uint256\" },\n {\n name: \"verificationGasLimit\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n {\n name: \"preVerificationGas\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n { name: \"maxFeePerGas\", type: \"uint256\", internalType: \"uint256\" },\n {\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n { name: \"paymasterAndData\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n },\n { name: \"userOpHash\", type: \"bytes32\", internalType: \"bytes32\" },\n ],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"runtimeValidationFunction\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"supportsInterface\",\n inputs: [{ name: \"interfaceId\", type: \"bytes4\", internalType: \"bytes4\" }],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"updateOwners\",\n inputs: [\n { name: \"ownersToAdd\", type: \"address[]\", internalType: \"address[]\" },\n { name: \"ownersToRemove\", type: \"address[]\", internalType: \"address[]\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"userOpValidationFunction\",\n inputs: [\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n {\n name: \"userOp\",\n type: \"tuple\",\n internalType: \"struct UserOperation\",\n components: [\n { name: \"sender\", type: \"address\", internalType: \"address\" },\n { name: \"nonce\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"initCode\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"callData\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"callGasLimit\", type: \"uint256\", internalType: \"uint256\" },\n {\n name: \"verificationGasLimit\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n {\n name: \"preVerificationGas\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n { name: \"maxFeePerGas\", type: \"uint256\", internalType: \"uint256\" },\n {\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n { name: \"paymasterAndData\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n },\n { name: \"userOpHash\", type: \"bytes32\", internalType: \"bytes32\" },\n ],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"event\",\n name: \"OwnerUpdated\",\n inputs: [\n {\n name: \"account\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"addedOwners\",\n type: \"address[]\",\n indexed: false,\n internalType: \"address[]\",\n },\n {\n name: \"removedOwners\",\n type: \"address[]\",\n indexed: false,\n internalType: \"address[]\",\n },\n ],\n anonymous: false,\n },\n { type: \"error\", name: \"AlreadyInitialized\", inputs: [] },\n { type: \"error\", name: \"EmptyOwnersNotAllowed\", inputs: [] },\n { type: \"error\", name: \"InvalidAction\", inputs: [] },\n {\n type: \"error\",\n name: \"InvalidOwner\",\n inputs: [{ name: \"owner\", type: \"address\", internalType: \"address\" }],\n },\n { type: \"error\", name: \"NotAuthorized\", inputs: [] },\n {\n type: \"error\",\n name: \"NotContractCaller\",\n inputs: [{ name: \"caller\", type: \"address\", internalType: \"address\" }],\n },\n {\n type: \"error\",\n name: \"NotImplemented\",\n inputs: [\n { name: \"selector\", type: \"bytes4\", internalType: \"bytes4\" },\n { name: \"functionId\", type: \"uint8\", internalType: \"uint8\" },\n ],\n },\n { type: \"error\", name: \"NotInitialized\", inputs: [] },\n {\n type: \"error\",\n name: \"OwnerDoesNotExist\",\n inputs: [{ name: \"owner\", type: \"address\", internalType: \"address\" }],\n },\n] as const;\n"]}
|
|
@@ -6,6 +6,8 @@ export async function isOwnerOf(client, args) {
|
|
|
6
6
|
if (!account) {
|
|
7
7
|
throw new AccountNotFoundError();
|
|
8
8
|
}
|
|
9
|
+
// TODO: check if the account actually has the plugin installed
|
|
10
|
+
// either via account loupe or checking if the supports interface call passes on the account
|
|
9
11
|
const contract = MultisigPlugin.getContract(client, args.pluginAddress);
|
|
10
12
|
return await contract.read.isOwnerOf([account.address, args.address]);
|
|
11
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isOwnerOf.js","sourceRoot":"","sources":["../../../../../../../src/msca/plugins/multisig/actions/isOwnerOf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAIrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2C,MAAM,MAAM,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAO7B,MAA4C,EAC5C,IAC+B;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,EAAE,CAAC;IACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"isOwnerOf.js","sourceRoot":"","sources":["../../../../../../../src/msca/plugins/multisig/actions/isOwnerOf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAIrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2C,MAAM,MAAM,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAO7B,MAA4C,EAC5C,IAC+B;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,EAAE,CAAC;IACnC,CAAC;IACD,+DAA+D;IAC/D,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACxE,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,CAAC","sourcesContent":["import {\n AccountNotFoundError,\n type Address,\n type GetAccountParameter,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport { type Chain, type Client, type Transport } from \"viem\";\nimport type { GetPluginAddressParameter } from \"../../types.js\";\nimport { MultisigPlugin } from \"../plugin.js\";\n\nexport async function isOwnerOf<\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 args: { address: Address } & GetPluginAddressParameter &\n GetAccountParameter<TAccount>\n) {\n const account = args.account ?? client.account;\n if (!account) {\n throw new AccountNotFoundError();\n }\n // TODO: check if the account actually has the plugin installed\n // either via account loupe or checking if the supports interface call passes on the account\n const contract = MultisigPlugin.getContract(client, args.pluginAddress);\n return await contract.read.isOwnerOf([account.address, args.address]);\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import {} from "viem";
|
|
|
3
3
|
import {} from "../types.js";
|
|
4
4
|
import { splitAggregatedSignature } from "../utils/splitAggregatedSignature.js";
|
|
5
5
|
export async function proposeUserOperation(client, { uo, account = client.account, overrides: overrides_, }) {
|
|
6
|
+
// these overrides allow us to set a high max fee and PVG upper bound
|
|
6
7
|
const overrides = {
|
|
7
8
|
maxFeePerGas: { multiplier: 3 },
|
|
8
9
|
maxPriorityFeePerGas: { multiplier: 2 },
|
|
@@ -34,6 +35,7 @@ export async function proposeUserOperation(client, { uo, account = client.accoun
|
|
|
34
35
|
request,
|
|
35
36
|
aggregatedSignature: request.signature,
|
|
36
37
|
account,
|
|
38
|
+
// split works on the assumption that we have t - 1 signatures
|
|
37
39
|
threshold: 2,
|
|
38
40
|
});
|
|
39
41
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposeUserOperation.js","sourceRoot":"","sources":["../../../../../../../src/msca/plugins/multisig/actions/proposeUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,mCAAmC,GAKpC,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2C,MAAM,MAAM,CAAC;AAC/D,OAAO,EAAmC,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAQxC,MAA4C,EAC5C,EACE,EAAE,EACF,OAAO,GAAG,MAAM,CAAC,OAAO,EACxB,SAAS,EAAE,UAAU,GAC4B;
|
|
1
|
+
{"version":3,"file":"proposeUserOperation.js","sourceRoot":"","sources":["../../../../../../../src/msca/plugins/multisig/actions/proposeUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,mCAAmC,GAKpC,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2C,MAAM,MAAM,CAAC;AAC/D,OAAO,EAAmC,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAQxC,MAA4C,EAC5C,EACE,EAAE,EACF,OAAO,GAAG,MAAM,CAAC,OAAO,EACxB,SAAS,EAAE,UAAU,GAC4B;IAEnD,qEAAqE;IACrE,MAAM,SAAS,GAAG;QAChB,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;QAC/B,oBAAoB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;QACvC,kBAAkB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;QACxC,GAAG,UAAU;KACgC,CAAC;IAEhD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,uBAAuB,CAC/B,oBAAoB,EACpB,sBAAsB,EACtB,MAAM,CACP,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,mCAAmC,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;QAC9C,OAAO;QACP,EAAE;QACF,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC;QAC7C,QAAQ,EAAE,OAAO;QACjB,OAAO;QACP,OAAO,EAAE;YACP,mBAAmB,EAAE,YAAY;SAClC;KACF,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC;QACrD,OAAO;QACP,mBAAmB,EAAE,OAAO,CAAC,SAAS;QACtC,OAAO;QACP,8DAA8D;QAC9D,SAAS,EAAE,CAAC;KACb,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,YAAY,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3C,mBAAmB,EAAE,OAAO,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC","sourcesContent":["import {\n AccountNotFoundError,\n IncompatibleClientError,\n isSmartAccountClient,\n isSmartAccountWithSigner,\n SmartAccountWithSignerRequiredError,\n type GetEntryPointFromAccount,\n type SendUserOperationParameters,\n type SmartContractAccount,\n type UserOperationOverrides,\n} from \"@aa-sdk/core\";\nimport { type Chain, type Client, type Transport } from \"viem\";\nimport { type ProposeUserOperationResult } from \"../types.js\";\nimport { splitAggregatedSignature } from \"../utils/splitAggregatedSignature.js\";\n\nexport async function proposeUserOperation<\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 uo,\n account = client.account,\n overrides: overrides_,\n }: SendUserOperationParameters<TAccount, undefined>\n): Promise<ProposeUserOperationResult> {\n // these overrides allow us to set a high max fee and PVG upper bound\n const overrides = {\n maxFeePerGas: { multiplier: 3 },\n maxPriorityFeePerGas: { multiplier: 2 },\n preVerificationGas: { multiplier: 1000 },\n ...overrides_,\n } as UserOperationOverrides<TEntryPointVersion>;\n\n if (!account) {\n throw new AccountNotFoundError();\n }\n\n if (!isSmartAccountClient(client)) {\n throw new IncompatibleClientError(\n \"SmartAccountClient\",\n \"proposeUserOperation\",\n client\n );\n }\n\n if (!isSmartAccountWithSigner(account)) {\n throw new SmartAccountWithSignerRequiredError();\n }\n\n const builtUo = await client.buildUserOperation({\n account,\n uo,\n overrides,\n });\n\n const request = await client.signUserOperation({\n uoStruct: builtUo,\n account,\n context: {\n userOpSignatureType: \"UPPERLIMIT\",\n },\n });\n\n const splitSignatures = await splitAggregatedSignature({\n request,\n aggregatedSignature: request.signature,\n account,\n // split works on the assumption that we have t - 1 signatures\n threshold: 2,\n });\n\n return {\n request,\n signatureObj: splitSignatures.signatures[0],\n aggregatedSignature: request.signature,\n };\n}\n"]}
|