@account-kit/smart-contracts 4.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plugindefs/index.d.ts +3 -0
- package/dist/cjs/plugindefs/index.js +10 -0
- package/dist/cjs/plugindefs/index.js.map +1 -0
- package/dist/cjs/plugindefs/multi-owner/abi.d.ts +698 -0
- package/dist/cjs/plugindefs/multi-owner/abi.js +612 -0
- package/dist/cjs/plugindefs/multi-owner/abi.js.map +1 -0
- package/dist/cjs/plugindefs/multi-owner/config.d.ts +2 -0
- package/dist/cjs/plugindefs/multi-owner/config.js +32 -0
- package/dist/cjs/plugindefs/multi-owner/config.js.map +1 -0
- package/dist/cjs/plugindefs/multisig/abi.d.ts +791 -0
- package/dist/cjs/plugindefs/multisig/abi.js +1031 -0
- package/dist/cjs/plugindefs/multisig/abi.js.map +1 -0
- package/dist/cjs/plugindefs/multisig/config.d.ts +2 -0
- package/dist/cjs/plugindefs/multisig/config.js +30 -0
- package/dist/cjs/plugindefs/multisig/config.js.map +1 -0
- package/dist/cjs/plugindefs/session-key/abi.d.ts +1061 -0
- package/dist/cjs/plugindefs/session-key/abi.js +916 -0
- package/dist/cjs/plugindefs/session-key/abi.js.map +1 -0
- package/dist/cjs/plugindefs/session-key/config.d.ts +2 -0
- package/dist/cjs/plugindefs/session-key/config.js +43 -0
- package/dist/cjs/plugindefs/session-key/config.js.map +1 -0
- package/dist/cjs/plugindefs/types.d.ts +15 -0
- package/dist/cjs/plugindefs/types.js +3 -0
- package/dist/cjs/plugindefs/types.js.map +1 -0
- package/dist/cjs/src/index.d.ts +53 -0
- package/dist/cjs/src/index.js +105 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.d.ts +532 -0
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.js +382 -0
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v1.js.map +1 -0
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.d.ts +491 -0
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.js +358 -0
- package/dist/cjs/src/light-account/abis/LightAccountAbi_v2.js.map +1 -0
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.d.ts +55 -0
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.js +78 -0
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v1.js.map +1 -0
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.d.ts +256 -0
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.js +213 -0
- package/dist/cjs/src/light-account/abis/LightAccountFactoryAbi_v2.js.map +1 -0
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.d.ts +507 -0
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.js +375 -0
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountAbi.js.map +1 -0
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts +286 -0
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.js +232 -0
- package/dist/cjs/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.js.map +1 -0
- package/dist/cjs/src/light-account/accounts/account.d.ts +18 -0
- package/dist/cjs/src/light-account/accounts/account.js +78 -0
- package/dist/cjs/src/light-account/accounts/account.js.map +1 -0
- package/dist/cjs/src/light-account/accounts/base.d.ts +14 -0
- package/dist/cjs/src/light-account/accounts/base.js +143 -0
- package/dist/cjs/src/light-account/accounts/base.js.map +1 -0
- package/dist/cjs/src/light-account/accounts/multiOwner.d.ts +18 -0
- package/dist/cjs/src/light-account/accounts/multiOwner.js +81 -0
- package/dist/cjs/src/light-account/accounts/multiOwner.js.map +1 -0
- package/dist/cjs/src/light-account/actions/transferOwnership.d.ts +8 -0
- package/dist/cjs/src/light-account/actions/transferOwnership.js +27 -0
- package/dist/cjs/src/light-account/actions/transferOwnership.js.map +1 -0
- package/dist/cjs/src/light-account/actions/updateOwners.d.ts +9 -0
- package/dist/cjs/src/light-account/actions/updateOwners.js +27 -0
- package/dist/cjs/src/light-account/actions/updateOwners.js.map +1 -0
- package/dist/cjs/src/light-account/clients/alchemyClient.d.ts +6 -0
- package/dist/cjs/src/light-account/clients/alchemyClient.js +25 -0
- package/dist/cjs/src/light-account/clients/alchemyClient.js.map +1 -0
- package/dist/cjs/src/light-account/clients/client.d.ts +10 -0
- package/dist/cjs/src/light-account/clients/client.js +21 -0
- package/dist/cjs/src/light-account/clients/client.js.map +1 -0
- package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.d.ts +6 -0
- package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.js +25 -0
- package/dist/cjs/src/light-account/clients/multiOwnerAlchemyClient.js.map +1 -0
- package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.d.ts +10 -0
- package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.js +21 -0
- package/dist/cjs/src/light-account/clients/multiOwnerLightAccount.js.map +1 -0
- package/dist/cjs/src/light-account/decorators/lightAccount.d.ts +8 -0
- package/dist/cjs/src/light-account/decorators/lightAccount.js +9 -0
- package/dist/cjs/src/light-account/decorators/lightAccount.js.map +1 -0
- package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.d.ts +8 -0
- package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.js +9 -0
- package/dist/cjs/src/light-account/decorators/multiOwnerLightAccount.js.map +1 -0
- package/dist/cjs/src/light-account/e2e-tests/constants.d.ts +6 -0
- package/dist/cjs/src/light-account/e2e-tests/constants.js +10 -0
- package/dist/cjs/src/light-account/e2e-tests/constants.js.map +1 -0
- package/dist/cjs/src/light-account/schema.d.ts +21 -0
- package/dist/cjs/src/light-account/schema.js +30 -0
- package/dist/cjs/src/light-account/schema.js.map +1 -0
- package/dist/cjs/src/light-account/types.d.ts +39 -0
- package/dist/cjs/src/light-account/types.js +3 -0
- package/dist/cjs/src/light-account/types.js.map +1 -0
- package/dist/cjs/src/light-account/utils.d.ts +12 -0
- package/dist/cjs/src/light-account/utils.js +127 -0
- package/dist/cjs/src/light-account/utils.js.map +1 -0
- package/dist/cjs/src/msca/abis/IAccountLoupe.d.ts +79 -0
- package/dist/cjs/src/msca/abis/IAccountLoupe.js +82 -0
- package/dist/cjs/src/msca/abis/IAccountLoupe.js.map +1 -0
- package/dist/cjs/src/msca/abis/IPlugin.d.ts +474 -0
- package/dist/cjs/src/msca/abis/IPlugin.js +400 -0
- package/dist/cjs/src/msca/abis/IPlugin.js.map +1 -0
- package/dist/cjs/src/msca/abis/IPluginManager.d.ts +101 -0
- package/dist/cjs/src/msca/abis/IPluginManager.js +109 -0
- package/dist/cjs/src/msca/abis/IPluginManager.js.map +1 -0
- package/dist/cjs/src/msca/abis/IStandardExecutor.d.ts +50 -0
- package/dist/cjs/src/msca/abis/IStandardExecutor.js +35 -0
- package/dist/cjs/src/msca/abis/IStandardExecutor.js.map +1 -0
- package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.d.ts +234 -0
- package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.js +194 -0
- package/dist/cjs/src/msca/abis/MultiOwnerModularAccountFactory.js.map +1 -0
- package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.d.ts +246 -0
- package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.js +320 -0
- package/dist/cjs/src/msca/abis/MultisigModularAccountFactory.js.map +1 -0
- package/dist/cjs/src/msca/abis/UpgradeableModularAccount.d.ts +880 -0
- package/dist/cjs/src/msca/abis/UpgradeableModularAccount.js +649 -0
- package/dist/cjs/src/msca/abis/UpgradeableModularAccount.js.map +1 -0
- package/dist/cjs/src/msca/account/multiOwnerAccount.d.ts +12 -0
- package/dist/cjs/src/msca/account/multiOwnerAccount.js +59 -0
- package/dist/cjs/src/msca/account/multiOwnerAccount.js.map +1 -0
- package/dist/cjs/src/msca/account/multisigAccount.d.ts +17 -0
- package/dist/cjs/src/msca/account/multisigAccount.js +70 -0
- package/dist/cjs/src/msca/account/multisigAccount.js.map +1 -0
- package/dist/cjs/src/msca/account/standardExecutor.d.ts +2 -0
- package/dist/cjs/src/msca/account/standardExecutor.js +28 -0
- package/dist/cjs/src/msca/account/standardExecutor.js.map +1 -0
- package/dist/cjs/src/msca/account-loupe/decorator.d.ts +16 -0
- package/dist/cjs/src/msca/account-loupe/decorator.js +66 -0
- package/dist/cjs/src/msca/account-loupe/decorator.js.map +1 -0
- package/dist/cjs/src/msca/account-loupe/types.d.ts +16 -0
- package/dist/cjs/src/msca/account-loupe/types.js +3 -0
- package/dist/cjs/src/msca/account-loupe/types.js.map +1 -0
- package/dist/cjs/src/msca/client/alchemyClient.d.ts +6 -0
- package/dist/cjs/src/msca/client/alchemyClient.js +28 -0
- package/dist/cjs/src/msca/client/alchemyClient.js.map +1 -0
- package/dist/cjs/src/msca/client/client.d.ts +17 -0
- package/dist/cjs/src/msca/client/client.js +49 -0
- package/dist/cjs/src/msca/client/client.js.map +1 -0
- package/dist/cjs/src/msca/client/multiSigAlchemyClient.d.ts +6 -0
- package/dist/cjs/src/msca/client/multiSigAlchemyClient.js +31 -0
- package/dist/cjs/src/msca/client/multiSigAlchemyClient.js.map +1 -0
- package/dist/cjs/src/msca/e2e-tests/constants.d.ts +3 -0
- package/dist/cjs/src/msca/e2e-tests/constants.js +7 -0
- package/dist/cjs/src/msca/e2e-tests/constants.js.map +1 -0
- package/dist/cjs/src/msca/errors.d.ts +17 -0
- package/dist/cjs/src/msca/errors.js +53 -0
- package/dist/cjs/src/msca/errors.js.map +1 -0
- package/dist/cjs/src/msca/plugin-manager/decorator.d.ts +11 -0
- package/dist/cjs/src/msca/plugin-manager/decorator.js +11 -0
- package/dist/cjs/src/msca/plugin-manager/decorator.js.map +1 -0
- package/dist/cjs/src/msca/plugin-manager/installPlugin.d.ts +11 -0
- package/dist/cjs/src/msca/plugin-manager/installPlugin.js +48 -0
- package/dist/cjs/src/msca/plugin-manager/installPlugin.js.map +1 -0
- package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.d.ts +9 -0
- package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.js +35 -0
- package/dist/cjs/src/msca/plugin-manager/uninstallPlugin.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multi-owner/extension.d.ts +13 -0
- package/dist/cjs/src/msca/plugins/multi-owner/extension.js +26 -0
- package/dist/cjs/src/msca/plugins/multi-owner/extension.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multi-owner/index.d.ts +3 -0
- package/dist/cjs/src/msca/plugins/multi-owner/index.js +9 -0
- package/dist/cjs/src/msca/plugins/multi-owner/index.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multi-owner/plugin.d.ts +793 -0
- package/dist/cjs/src/msca/plugins/multi-owner/plugin.js +695 -0
- package/dist/cjs/src/msca/plugins/multi-owner/plugin.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multi-owner/signer.d.ts +215 -0
- package/dist/cjs/src/msca/plugins/multi-owner/signer.js +47 -0
- package/dist/cjs/src/msca/plugins/multi-owner/signer.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.d.ts +4 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.js +20 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/getThreshold.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.d.ts +6 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.js +15 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/isOwnerOf.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.d.ts +4 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.js +47 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/proposeUserOperation.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.d.ts +4 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.js +15 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/readOwners.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.d.ts +4 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.js +54 -0
- package/dist/cjs/src/msca/plugins/multisig/actions/signMultisigUserOperation.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/extension.d.ts +17 -0
- package/dist/cjs/src/msca/plugins/multisig/extension.js +19 -0
- package/dist/cjs/src/msca/plugins/multisig/extension.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/index.d.ts +12 -0
- package/dist/cjs/src/msca/plugins/multisig/index.js +27 -0
- package/dist/cjs/src/msca/plugins/multisig/index.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/middleware.d.ts +3 -0
- package/dist/cjs/src/msca/plugins/multisig/middleware.js +97 -0
- package/dist/cjs/src/msca/plugins/multisig/middleware.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/plugin.d.ts +892 -0
- package/dist/cjs/src/msca/plugins/multisig/plugin.js +740 -0
- package/dist/cjs/src/msca/plugins/multisig/plugin.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/signer.d.ts +223 -0
- package/dist/cjs/src/msca/plugins/multisig/signer.js +57 -0
- package/dist/cjs/src/msca/plugins/multisig/signer.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/types.d.ts +34 -0
- package/dist/cjs/src/msca/plugins/multisig/types.js +3 -0
- package/dist/cjs/src/msca/plugins/multisig/types.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.d.ts +9 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.js +15 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/combineSignatures.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.d.ts +2 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.js +42 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/formatSignatures.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.d.ts +10 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.js +13 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/getSignerType.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/index.d.ts +4 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/index.js +12 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/index.js.map +1 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +15 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.js +74 -0
- package/dist/cjs/src/msca/plugins/multisig/utils/splitAggregatedSignature.js.map +1 -0
- package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.d.ts +117 -0
- package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.js +115 -0
- package/dist/cjs/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.js.map +1 -0
- package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.d.ts +1 -0
- package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.js +5 -0
- package/dist/cjs/src/msca/plugins/session-key/debug-session-key-bytecode.js.map +1 -0
- package/dist/cjs/src/msca/plugins/session-key/extension.d.ts +30 -0
- package/dist/cjs/src/msca/plugins/session-key/extension.js +156 -0
- package/dist/cjs/src/msca/plugins/session-key/extension.js.map +1 -0
- package/dist/cjs/src/msca/plugins/session-key/index.d.ts +3 -0
- package/dist/cjs/src/msca/plugins/session-key/index.js +8 -0
- package/dist/cjs/src/msca/plugins/session-key/index.js.map +1 -0
- package/dist/cjs/src/msca/plugins/session-key/permissions.d.ts +53 -0
- package/dist/cjs/src/msca/plugins/session-key/permissions.js +153 -0
- package/dist/cjs/src/msca/plugins/session-key/permissions.js.map +1 -0
- package/dist/cjs/src/msca/plugins/session-key/plugin.d.ts +1200 -0
- package/dist/cjs/src/msca/plugins/session-key/plugin.js +1044 -0
- package/dist/cjs/src/msca/plugins/session-key/plugin.js.map +1 -0
- package/dist/cjs/src/msca/plugins/session-key/signer.d.ts +233 -0
- package/dist/cjs/src/msca/plugins/session-key/signer.js +101 -0
- package/dist/cjs/src/msca/plugins/session-key/signer.js.map +1 -0
- package/dist/cjs/src/msca/plugins/session-key/utils.d.ts +9 -0
- package/dist/cjs/src/msca/plugins/session-key/utils.js +21 -0
- package/dist/cjs/src/msca/plugins/session-key/utils.js.map +1 -0
- package/dist/cjs/src/msca/plugins/types.d.ts +12 -0
- package/dist/cjs/src/msca/plugins/types.js +3 -0
- package/dist/cjs/src/msca/plugins/types.js.map +1 -0
- package/dist/cjs/src/msca/utils.d.ts +15 -0
- package/dist/cjs/src/msca/utils.js +98 -0
- package/dist/cjs/src/msca/utils.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/plugindefs/index.d.ts +3 -0
- package/dist/esm/plugindefs/index.js +4 -0
- package/dist/esm/plugindefs/index.js.map +1 -0
- package/dist/esm/plugindefs/multi-owner/abi.d.ts +698 -0
- package/dist/esm/plugindefs/multi-owner/abi.js +609 -0
- package/dist/esm/plugindefs/multi-owner/abi.js.map +1 -0
- package/dist/esm/plugindefs/multi-owner/config.d.ts +2 -0
- package/dist/esm/plugindefs/multi-owner/config.js +29 -0
- package/dist/esm/plugindefs/multi-owner/config.js.map +1 -0
- package/dist/esm/plugindefs/multisig/abi.d.ts +791 -0
- package/dist/esm/plugindefs/multisig/abi.js +1028 -0
- package/dist/esm/plugindefs/multisig/abi.js.map +1 -0
- package/dist/esm/plugindefs/multisig/config.d.ts +2 -0
- package/dist/esm/plugindefs/multisig/config.js +27 -0
- package/dist/esm/plugindefs/multisig/config.js.map +1 -0
- package/dist/esm/plugindefs/session-key/abi.d.ts +1061 -0
- package/dist/esm/plugindefs/session-key/abi.js +913 -0
- package/dist/esm/plugindefs/session-key/abi.js.map +1 -0
- package/dist/esm/plugindefs/session-key/config.d.ts +2 -0
- package/dist/esm/plugindefs/session-key/config.js +40 -0
- package/dist/esm/plugindefs/session-key/config.js.map +1 -0
- package/dist/esm/plugindefs/types.d.ts +15 -0
- package/dist/esm/plugindefs/types.js +2 -0
- package/dist/esm/plugindefs/types.js.map +1 -0
- package/dist/esm/src/index.d.ts +53 -0
- package/dist/esm/src/index.js +39 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/light-account/abis/LightAccountAbi_v1.d.ts +532 -0
- package/dist/esm/src/light-account/abis/LightAccountAbi_v1.js +379 -0
- package/dist/esm/src/light-account/abis/LightAccountAbi_v1.js.map +1 -0
- package/dist/esm/src/light-account/abis/LightAccountAbi_v2.d.ts +491 -0
- package/dist/esm/src/light-account/abis/LightAccountAbi_v2.js +355 -0
- package/dist/esm/src/light-account/abis/LightAccountAbi_v2.js.map +1 -0
- package/dist/esm/src/light-account/abis/LightAccountFactoryAbi_v1.d.ts +55 -0
- package/dist/esm/src/light-account/abis/LightAccountFactoryAbi_v1.js +75 -0
- package/dist/esm/src/light-account/abis/LightAccountFactoryAbi_v1.js.map +1 -0
- package/dist/esm/src/light-account/abis/LightAccountFactoryAbi_v2.d.ts +256 -0
- package/dist/esm/src/light-account/abis/LightAccountFactoryAbi_v2.js +210 -0
- package/dist/esm/src/light-account/abis/LightAccountFactoryAbi_v2.js.map +1 -0
- package/dist/esm/src/light-account/abis/MultiOwnerLightAccountAbi.d.ts +507 -0
- package/dist/esm/src/light-account/abis/MultiOwnerLightAccountAbi.js +372 -0
- package/dist/esm/src/light-account/abis/MultiOwnerLightAccountAbi.js.map +1 -0
- package/dist/esm/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts +286 -0
- package/dist/esm/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.js +229 -0
- package/dist/esm/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.js.map +1 -0
- package/dist/esm/src/light-account/accounts/account.d.ts +18 -0
- package/dist/esm/src/light-account/accounts/account.js +74 -0
- package/dist/esm/src/light-account/accounts/account.js.map +1 -0
- package/dist/esm/src/light-account/accounts/base.d.ts +14 -0
- package/dist/esm/src/light-account/accounts/base.js +139 -0
- package/dist/esm/src/light-account/accounts/base.js.map +1 -0
- package/dist/esm/src/light-account/accounts/multiOwner.d.ts +18 -0
- package/dist/esm/src/light-account/accounts/multiOwner.js +77 -0
- package/dist/esm/src/light-account/accounts/multiOwner.js.map +1 -0
- package/dist/esm/src/light-account/actions/transferOwnership.d.ts +8 -0
- package/dist/esm/src/light-account/actions/transferOwnership.js +23 -0
- package/dist/esm/src/light-account/actions/transferOwnership.js.map +1 -0
- package/dist/esm/src/light-account/actions/updateOwners.d.ts +9 -0
- package/dist/esm/src/light-account/actions/updateOwners.js +23 -0
- package/dist/esm/src/light-account/actions/updateOwners.js.map +1 -0
- package/dist/esm/src/light-account/clients/alchemyClient.d.ts +6 -0
- package/dist/esm/src/light-account/clients/alchemyClient.js +21 -0
- package/dist/esm/src/light-account/clients/alchemyClient.js.map +1 -0
- package/dist/esm/src/light-account/clients/client.d.ts +10 -0
- package/dist/esm/src/light-account/clients/client.js +18 -0
- package/dist/esm/src/light-account/clients/client.js.map +1 -0
- package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.d.ts +6 -0
- package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js +21 -0
- package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js.map +1 -0
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.d.ts +10 -0
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js +18 -0
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js.map +1 -0
- package/dist/esm/src/light-account/decorators/lightAccount.d.ts +8 -0
- package/dist/esm/src/light-account/decorators/lightAccount.js +5 -0
- package/dist/esm/src/light-account/decorators/lightAccount.js.map +1 -0
- package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.d.ts +8 -0
- package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.js +5 -0
- package/dist/esm/src/light-account/decorators/multiOwnerLightAccount.js.map +1 -0
- package/dist/esm/src/light-account/e2e-tests/constants.d.ts +6 -0
- package/dist/esm/src/light-account/e2e-tests/constants.js +7 -0
- package/dist/esm/src/light-account/e2e-tests/constants.js.map +1 -0
- package/dist/esm/src/light-account/schema.d.ts +21 -0
- package/dist/esm/src/light-account/schema.js +27 -0
- package/dist/esm/src/light-account/schema.js.map +1 -0
- package/dist/esm/src/light-account/types.d.ts +39 -0
- package/dist/esm/src/light-account/types.js +3 -0
- package/dist/esm/src/light-account/types.js.map +1 -0
- package/dist/esm/src/light-account/utils.d.ts +12 -0
- package/dist/esm/src/light-account/utils.js +120 -0
- package/dist/esm/src/light-account/utils.js.map +1 -0
- package/dist/esm/src/msca/abis/IAccountLoupe.d.ts +79 -0
- package/dist/esm/src/msca/abis/IAccountLoupe.js +79 -0
- package/dist/esm/src/msca/abis/IAccountLoupe.js.map +1 -0
- package/dist/esm/src/msca/abis/IPlugin.d.ts +474 -0
- package/dist/esm/src/msca/abis/IPlugin.js +397 -0
- package/dist/esm/src/msca/abis/IPlugin.js.map +1 -0
- package/dist/esm/src/msca/abis/IPluginManager.d.ts +101 -0
- package/dist/esm/src/msca/abis/IPluginManager.js +106 -0
- package/dist/esm/src/msca/abis/IPluginManager.js.map +1 -0
- package/dist/esm/src/msca/abis/IStandardExecutor.d.ts +50 -0
- package/dist/esm/src/msca/abis/IStandardExecutor.js +32 -0
- package/dist/esm/src/msca/abis/IStandardExecutor.js.map +1 -0
- package/dist/esm/src/msca/abis/MultiOwnerModularAccountFactory.d.ts +234 -0
- package/dist/esm/src/msca/abis/MultiOwnerModularAccountFactory.js +191 -0
- package/dist/esm/src/msca/abis/MultiOwnerModularAccountFactory.js.map +1 -0
- package/dist/esm/src/msca/abis/MultisigModularAccountFactory.d.ts +246 -0
- package/dist/esm/src/msca/abis/MultisigModularAccountFactory.js +317 -0
- package/dist/esm/src/msca/abis/MultisigModularAccountFactory.js.map +1 -0
- package/dist/esm/src/msca/abis/UpgradeableModularAccount.d.ts +880 -0
- package/dist/esm/src/msca/abis/UpgradeableModularAccount.js +646 -0
- package/dist/esm/src/msca/abis/UpgradeableModularAccount.js.map +1 -0
- package/dist/esm/src/msca/account/multiOwnerAccount.d.ts +12 -0
- package/dist/esm/src/msca/account/multiOwnerAccount.js +55 -0
- package/dist/esm/src/msca/account/multiOwnerAccount.js.map +1 -0
- package/dist/esm/src/msca/account/multisigAccount.d.ts +17 -0
- package/dist/esm/src/msca/account/multisigAccount.js +65 -0
- package/dist/esm/src/msca/account/multisigAccount.js.map +1 -0
- package/dist/esm/src/msca/account/standardExecutor.d.ts +2 -0
- package/dist/esm/src/msca/account/standardExecutor.js +25 -0
- package/dist/esm/src/msca/account/standardExecutor.js.map +1 -0
- package/dist/esm/src/msca/account-loupe/decorator.d.ts +16 -0
- package/dist/esm/src/msca/account-loupe/decorator.js +62 -0
- package/dist/esm/src/msca/account-loupe/decorator.js.map +1 -0
- package/dist/esm/src/msca/account-loupe/types.d.ts +16 -0
- package/dist/esm/src/msca/account-loupe/types.js +2 -0
- package/dist/esm/src/msca/account-loupe/types.js.map +1 -0
- package/dist/esm/src/msca/client/alchemyClient.d.ts +6 -0
- package/dist/esm/src/msca/client/alchemyClient.js +24 -0
- package/dist/esm/src/msca/client/alchemyClient.js.map +1 -0
- package/dist/esm/src/msca/client/client.d.ts +17 -0
- package/dist/esm/src/msca/client/client.js +45 -0
- package/dist/esm/src/msca/client/client.js.map +1 -0
- package/dist/esm/src/msca/client/multiSigAlchemyClient.d.ts +6 -0
- package/dist/esm/src/msca/client/multiSigAlchemyClient.js +27 -0
- package/dist/esm/src/msca/client/multiSigAlchemyClient.js.map +1 -0
- package/dist/esm/src/msca/e2e-tests/constants.d.ts +3 -0
- package/dist/esm/src/msca/e2e-tests/constants.js +4 -0
- package/dist/esm/src/msca/e2e-tests/constants.js.map +1 -0
- package/dist/esm/src/msca/errors.d.ts +17 -0
- package/dist/esm/src/msca/errors.js +46 -0
- package/dist/esm/src/msca/errors.js.map +1 -0
- package/dist/esm/src/msca/plugin-manager/decorator.d.ts +11 -0
- package/dist/esm/src/msca/plugin-manager/decorator.js +9 -0
- package/dist/esm/src/msca/plugin-manager/decorator.js.map +1 -0
- package/dist/esm/src/msca/plugin-manager/installPlugin.d.ts +11 -0
- package/dist/esm/src/msca/plugin-manager/installPlugin.js +43 -0
- package/dist/esm/src/msca/plugin-manager/installPlugin.js.map +1 -0
- package/dist/esm/src/msca/plugin-manager/uninstallPlugin.d.ts +9 -0
- package/dist/esm/src/msca/plugin-manager/uninstallPlugin.js +30 -0
- package/dist/esm/src/msca/plugin-manager/uninstallPlugin.js.map +1 -0
- package/dist/esm/src/msca/plugins/multi-owner/extension.d.ts +13 -0
- package/dist/esm/src/msca/plugins/multi-owner/extension.js +23 -0
- package/dist/esm/src/msca/plugins/multi-owner/extension.js.map +1 -0
- package/dist/esm/src/msca/plugins/multi-owner/index.d.ts +3 -0
- package/dist/esm/src/msca/plugins/multi-owner/index.js +3 -0
- package/dist/esm/src/msca/plugins/multi-owner/index.js.map +1 -0
- package/dist/esm/src/msca/plugins/multi-owner/plugin.d.ts +793 -0
- package/dist/esm/src/msca/plugins/multi-owner/plugin.js +691 -0
- package/dist/esm/src/msca/plugins/multi-owner/plugin.js.map +1 -0
- package/dist/esm/src/msca/plugins/multi-owner/signer.d.ts +215 -0
- package/dist/esm/src/msca/plugins/multi-owner/signer.js +43 -0
- package/dist/esm/src/msca/plugins/multi-owner/signer.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/actions/getThreshold.d.ts +4 -0
- package/dist/esm/src/msca/plugins/multisig/actions/getThreshold.js +17 -0
- package/dist/esm/src/msca/plugins/multisig/actions/getThreshold.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/actions/isOwnerOf.d.ts +6 -0
- package/dist/esm/src/msca/plugins/multisig/actions/isOwnerOf.js +12 -0
- package/dist/esm/src/msca/plugins/multisig/actions/isOwnerOf.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.d.ts +4 -0
- package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.js +45 -0
- package/dist/esm/src/msca/plugins/multisig/actions/proposeUserOperation.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/actions/readOwners.d.ts +4 -0
- package/dist/esm/src/msca/plugins/multisig/actions/readOwners.js +12 -0
- package/dist/esm/src/msca/plugins/multisig/actions/readOwners.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.d.ts +4 -0
- package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.js +52 -0
- package/dist/esm/src/msca/plugins/multisig/actions/signMultisigUserOperation.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/extension.d.ts +17 -0
- package/dist/esm/src/msca/plugins/multisig/extension.js +18 -0
- package/dist/esm/src/msca/plugins/multisig/extension.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/index.d.ts +12 -0
- package/dist/esm/src/msca/plugins/multisig/index.js +11 -0
- package/dist/esm/src/msca/plugins/multisig/index.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/middleware.d.ts +3 -0
- package/dist/esm/src/msca/plugins/multisig/middleware.js +94 -0
- package/dist/esm/src/msca/plugins/multisig/middleware.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/plugin.d.ts +892 -0
- package/dist/esm/src/msca/plugins/multisig/plugin.js +736 -0
- package/dist/esm/src/msca/plugins/multisig/plugin.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/signer.d.ts +223 -0
- package/dist/esm/src/msca/plugins/multisig/signer.js +53 -0
- package/dist/esm/src/msca/plugins/multisig/signer.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/types.d.ts +34 -0
- package/dist/esm/src/msca/plugins/multisig/types.js +2 -0
- package/dist/esm/src/msca/plugins/multisig/types.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.d.ts +9 -0
- package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.js +11 -0
- package/dist/esm/src/msca/plugins/multisig/utils/combineSignatures.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.d.ts +2 -0
- package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.js +38 -0
- package/dist/esm/src/msca/plugins/multisig/utils/formatSignatures.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.d.ts +10 -0
- package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.js +9 -0
- package/dist/esm/src/msca/plugins/multisig/utils/getSignerType.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/utils/index.d.ts +4 -0
- package/dist/esm/src/msca/plugins/multisig/utils/index.js +5 -0
- package/dist/esm/src/msca/plugins/multisig/utils/index.js.map +1 -0
- package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +15 -0
- package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.js +70 -0
- package/dist/esm/src/msca/plugins/multisig/utils/splitAggregatedSignature.js.map +1 -0
- package/dist/esm/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.d.ts +117 -0
- package/dist/esm/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.js +112 -0
- package/dist/esm/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.js.map +1 -0
- package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.d.ts +1 -0
- package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.js +2 -0
- package/dist/esm/src/msca/plugins/session-key/debug-session-key-bytecode.js.map +1 -0
- package/dist/esm/src/msca/plugins/session-key/extension.d.ts +30 -0
- package/dist/esm/src/msca/plugins/session-key/extension.js +129 -0
- package/dist/esm/src/msca/plugins/session-key/extension.js.map +1 -0
- package/dist/esm/src/msca/plugins/session-key/index.d.ts +3 -0
- package/dist/esm/src/msca/plugins/session-key/index.js +3 -0
- package/dist/esm/src/msca/plugins/session-key/index.js.map +1 -0
- package/dist/esm/src/msca/plugins/session-key/permissions.d.ts +53 -0
- package/dist/esm/src/msca/plugins/session-key/permissions.js +149 -0
- package/dist/esm/src/msca/plugins/session-key/permissions.js.map +1 -0
- package/dist/esm/src/msca/plugins/session-key/plugin.d.ts +1200 -0
- package/dist/esm/src/msca/plugins/session-key/plugin.js +1040 -0
- package/dist/esm/src/msca/plugins/session-key/plugin.js.map +1 -0
- package/dist/esm/src/msca/plugins/session-key/signer.d.ts +233 -0
- package/dist/esm/src/msca/plugins/session-key/signer.js +97 -0
- package/dist/esm/src/msca/plugins/session-key/signer.js.map +1 -0
- package/dist/esm/src/msca/plugins/session-key/utils.d.ts +9 -0
- package/dist/esm/src/msca/plugins/session-key/utils.js +17 -0
- package/dist/esm/src/msca/plugins/session-key/utils.js.map +1 -0
- package/dist/esm/src/msca/plugins/types.d.ts +12 -0
- package/dist/esm/src/msca/plugins/types.js +2 -0
- package/dist/esm/src/msca/plugins/types.js.map +1 -0
- package/dist/esm/src/msca/utils.d.ts +15 -0
- package/dist/esm/src/msca/utils.js +91 -0
- package/dist/esm/src/msca/utils.js.map +1 -0
- package/dist/types/plugindefs/index.d.ts +4 -0
- package/dist/types/plugindefs/index.d.ts.map +1 -0
- package/dist/types/plugindefs/multi-owner/abi.d.ts +699 -0
- package/dist/types/plugindefs/multi-owner/abi.d.ts.map +1 -0
- package/dist/types/plugindefs/multi-owner/config.d.ts +3 -0
- package/dist/types/plugindefs/multi-owner/config.d.ts.map +1 -0
- package/dist/types/plugindefs/multisig/abi.d.ts +792 -0
- package/dist/types/plugindefs/multisig/abi.d.ts.map +1 -0
- package/dist/types/plugindefs/multisig/config.d.ts +3 -0
- package/dist/types/plugindefs/multisig/config.d.ts.map +1 -0
- package/dist/types/plugindefs/session-key/abi.d.ts +1062 -0
- package/dist/types/plugindefs/session-key/abi.d.ts.map +1 -0
- package/dist/types/plugindefs/session-key/config.d.ts +3 -0
- package/dist/types/plugindefs/session-key/config.d.ts.map +1 -0
- package/dist/types/plugindefs/types.d.ts +16 -0
- package/dist/types/plugindefs/types.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +54 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/light-account/abis/LightAccountAbi_v1.d.ts +533 -0
- package/dist/types/src/light-account/abis/LightAccountAbi_v1.d.ts.map +1 -0
- package/dist/types/src/light-account/abis/LightAccountAbi_v2.d.ts +492 -0
- package/dist/types/src/light-account/abis/LightAccountAbi_v2.d.ts.map +1 -0
- package/dist/types/src/light-account/abis/LightAccountFactoryAbi_v1.d.ts +56 -0
- package/dist/types/src/light-account/abis/LightAccountFactoryAbi_v1.d.ts.map +1 -0
- package/dist/types/src/light-account/abis/LightAccountFactoryAbi_v2.d.ts +257 -0
- package/dist/types/src/light-account/abis/LightAccountFactoryAbi_v2.d.ts.map +1 -0
- package/dist/types/src/light-account/abis/MultiOwnerLightAccountAbi.d.ts +508 -0
- package/dist/types/src/light-account/abis/MultiOwnerLightAccountAbi.d.ts.map +1 -0
- package/dist/types/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts +287 -0
- package/dist/types/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.d.ts.map +1 -0
- package/dist/types/src/light-account/accounts/account.d.ts +19 -0
- package/dist/types/src/light-account/accounts/account.d.ts.map +1 -0
- package/dist/types/src/light-account/accounts/base.d.ts +15 -0
- package/dist/types/src/light-account/accounts/base.d.ts.map +1 -0
- package/dist/types/src/light-account/accounts/multiOwner.d.ts +19 -0
- package/dist/types/src/light-account/accounts/multiOwner.d.ts.map +1 -0
- package/dist/types/src/light-account/actions/transferOwnership.d.ts +9 -0
- package/dist/types/src/light-account/actions/transferOwnership.d.ts.map +1 -0
- package/dist/types/src/light-account/actions/updateOwners.d.ts +10 -0
- package/dist/types/src/light-account/actions/updateOwners.d.ts.map +1 -0
- package/dist/types/src/light-account/clients/alchemyClient.d.ts +7 -0
- package/dist/types/src/light-account/clients/alchemyClient.d.ts.map +1 -0
- package/dist/types/src/light-account/clients/client.d.ts +11 -0
- package/dist/types/src/light-account/clients/client.d.ts.map +1 -0
- package/dist/types/src/light-account/clients/multiOwnerAlchemyClient.d.ts +7 -0
- package/dist/types/src/light-account/clients/multiOwnerAlchemyClient.d.ts.map +1 -0
- package/dist/types/src/light-account/clients/multiOwnerLightAccount.d.ts +11 -0
- package/dist/types/src/light-account/clients/multiOwnerLightAccount.d.ts.map +1 -0
- package/dist/types/src/light-account/decorators/lightAccount.d.ts +9 -0
- package/dist/types/src/light-account/decorators/lightAccount.d.ts.map +1 -0
- package/dist/types/src/light-account/decorators/multiOwnerLightAccount.d.ts +9 -0
- package/dist/types/src/light-account/decorators/multiOwnerLightAccount.d.ts.map +1 -0
- package/dist/types/src/light-account/e2e-tests/constants.d.ts +7 -0
- package/dist/types/src/light-account/e2e-tests/constants.d.ts.map +1 -0
- package/dist/types/src/light-account/schema.d.ts +22 -0
- package/dist/types/src/light-account/schema.d.ts.map +1 -0
- package/dist/types/src/light-account/types.d.ts +131 -0
- package/dist/types/src/light-account/types.d.ts.map +1 -0
- package/dist/types/src/light-account/utils.d.ts +79 -0
- package/dist/types/src/light-account/utils.d.ts.map +1 -0
- package/dist/types/src/msca/abis/IAccountLoupe.d.ts +80 -0
- package/dist/types/src/msca/abis/IAccountLoupe.d.ts.map +1 -0
- package/dist/types/src/msca/abis/IPlugin.d.ts +475 -0
- package/dist/types/src/msca/abis/IPlugin.d.ts.map +1 -0
- package/dist/types/src/msca/abis/IPluginManager.d.ts +102 -0
- package/dist/types/src/msca/abis/IPluginManager.d.ts.map +1 -0
- package/dist/types/src/msca/abis/IStandardExecutor.d.ts +51 -0
- package/dist/types/src/msca/abis/IStandardExecutor.d.ts.map +1 -0
- package/dist/types/src/msca/abis/MultiOwnerModularAccountFactory.d.ts +235 -0
- package/dist/types/src/msca/abis/MultiOwnerModularAccountFactory.d.ts.map +1 -0
- package/dist/types/src/msca/abis/MultisigModularAccountFactory.d.ts +247 -0
- package/dist/types/src/msca/abis/MultisigModularAccountFactory.d.ts.map +1 -0
- package/dist/types/src/msca/abis/UpgradeableModularAccount.d.ts +881 -0
- package/dist/types/src/msca/abis/UpgradeableModularAccount.d.ts.map +1 -0
- package/dist/types/src/msca/account/multiOwnerAccount.d.ts +13 -0
- package/dist/types/src/msca/account/multiOwnerAccount.d.ts.map +1 -0
- package/dist/types/src/msca/account/multisigAccount.d.ts +18 -0
- package/dist/types/src/msca/account/multisigAccount.d.ts.map +1 -0
- package/dist/types/src/msca/account/standardExecutor.d.ts +3 -0
- package/dist/types/src/msca/account/standardExecutor.d.ts.map +1 -0
- package/dist/types/src/msca/account-loupe/decorator.d.ts +17 -0
- package/dist/types/src/msca/account-loupe/decorator.d.ts.map +1 -0
- package/dist/types/src/msca/account-loupe/types.d.ts +17 -0
- package/dist/types/src/msca/account-loupe/types.d.ts.map +1 -0
- package/dist/types/src/msca/client/alchemyClient.d.ts +7 -0
- package/dist/types/src/msca/client/alchemyClient.d.ts.map +1 -0
- package/dist/types/src/msca/client/client.d.ts +18 -0
- package/dist/types/src/msca/client/client.d.ts.map +1 -0
- package/dist/types/src/msca/client/multiSigAlchemyClient.d.ts +7 -0
- package/dist/types/src/msca/client/multiSigAlchemyClient.d.ts.map +1 -0
- package/dist/types/src/msca/e2e-tests/constants.d.ts +4 -0
- package/dist/types/src/msca/e2e-tests/constants.d.ts.map +1 -0
- package/dist/types/src/msca/errors.d.ts +18 -0
- package/dist/types/src/msca/errors.d.ts.map +1 -0
- package/dist/types/src/msca/plugin-manager/decorator.d.ts +12 -0
- package/dist/types/src/msca/plugin-manager/decorator.d.ts.map +1 -0
- package/dist/types/src/msca/plugin-manager/installPlugin.d.ts +12 -0
- package/dist/types/src/msca/plugin-manager/installPlugin.d.ts.map +1 -0
- package/dist/types/src/msca/plugin-manager/uninstallPlugin.d.ts +10 -0
- package/dist/types/src/msca/plugin-manager/uninstallPlugin.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multi-owner/extension.d.ts +14 -0
- package/dist/types/src/msca/plugins/multi-owner/extension.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multi-owner/index.d.ts +4 -0
- package/dist/types/src/msca/plugins/multi-owner/index.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multi-owner/plugin.d.ts +794 -0
- package/dist/types/src/msca/plugins/multi-owner/plugin.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multi-owner/signer.d.ts +216 -0
- package/dist/types/src/msca/plugins/multi-owner/signer.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/actions/getThreshold.d.ts +5 -0
- package/dist/types/src/msca/plugins/multisig/actions/getThreshold.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/actions/isOwnerOf.d.ts +7 -0
- package/dist/types/src/msca/plugins/multisig/actions/isOwnerOf.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/actions/proposeUserOperation.d.ts +5 -0
- package/dist/types/src/msca/plugins/multisig/actions/proposeUserOperation.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/actions/readOwners.d.ts +5 -0
- package/dist/types/src/msca/plugins/multisig/actions/readOwners.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/actions/signMultisigUserOperation.d.ts +5 -0
- package/dist/types/src/msca/plugins/multisig/actions/signMultisigUserOperation.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/extension.d.ts +18 -0
- package/dist/types/src/msca/plugins/multisig/extension.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/index.d.ts +13 -0
- package/dist/types/src/msca/plugins/multisig/index.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/middleware.d.ts +16 -0
- package/dist/types/src/msca/plugins/multisig/middleware.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/plugin.d.ts +893 -0
- package/dist/types/src/msca/plugins/multisig/plugin.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/signer.d.ts +224 -0
- package/dist/types/src/msca/plugins/multisig/signer.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/types.d.ts +35 -0
- package/dist/types/src/msca/plugins/multisig/types.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/utils/combineSignatures.d.ts +10 -0
- package/dist/types/src/msca/plugins/multisig/utils/combineSignatures.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/utils/formatSignatures.d.ts +13 -0
- package/dist/types/src/msca/plugins/multisig/utils/formatSignatures.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/utils/getSignerType.d.ts +11 -0
- package/dist/types/src/msca/plugins/multisig/utils/getSignerType.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/utils/index.d.ts +5 -0
- package/dist/types/src/msca/plugins/multisig/utils/index.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts +26 -0
- package/dist/types/src/msca/plugins/multisig/utils/splitAggregatedSignature.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.d.ts +118 -0
- package/dist/types/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/session-key/debug-session-key-bytecode.d.ts +9 -0
- package/dist/types/src/msca/plugins/session-key/debug-session-key-bytecode.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/session-key/extension.d.ts +31 -0
- package/dist/types/src/msca/plugins/session-key/extension.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/session-key/index.d.ts +4 -0
- package/dist/types/src/msca/plugins/session-key/index.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/session-key/permissions.d.ts +54 -0
- package/dist/types/src/msca/plugins/session-key/permissions.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/session-key/plugin.d.ts +1201 -0
- package/dist/types/src/msca/plugins/session-key/plugin.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/session-key/signer.d.ts +244 -0
- package/dist/types/src/msca/plugins/session-key/signer.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/session-key/utils.d.ts +10 -0
- package/dist/types/src/msca/plugins/session-key/utils.d.ts.map +1 -0
- package/dist/types/src/msca/plugins/types.d.ts +13 -0
- package/dist/types/src/msca/plugins/types.d.ts.map +1 -0
- package/dist/types/src/msca/utils.d.ts +30 -0
- package/dist/types/src/msca/utils.d.ts.map +1 -0
- package/package.json +79 -0
- package/plugindefs/index.ts +3 -0
- package/plugindefs/multi-owner/abi.ts +608 -0
- package/plugindefs/multi-owner/config.ts +46 -0
- package/plugindefs/multisig/abi.ts +1027 -0
- package/plugindefs/multisig/config.ts +43 -0
- package/plugindefs/session-key/abi.ts +912 -0
- package/plugindefs/session-key/config.ts +59 -0
- package/plugindefs/types.ts +16 -0
- package/src/index.ts +117 -0
- package/src/light-account/abis/LightAccountAbi_v1.ts +378 -0
- package/src/light-account/abis/LightAccountAbi_v2.ts +354 -0
- package/src/light-account/abis/LightAccountFactoryAbi_v1.ts +74 -0
- package/src/light-account/abis/LightAccountFactoryAbi_v2.ts +209 -0
- package/src/light-account/abis/MultiOwnerLightAccountAbi.ts +371 -0
- package/src/light-account/abis/MultiOwnerLightAccountFactoryAbi.ts +228 -0
- package/src/light-account/accounts/account.ts +198 -0
- package/src/light-account/accounts/base.ts +291 -0
- package/src/light-account/accounts/multiOwner.ts +204 -0
- package/src/light-account/actions/transferOwnership.ts +67 -0
- package/src/light-account/actions/updateOwners.ts +74 -0
- package/src/light-account/clients/alchemyClient.ts +64 -0
- package/src/light-account/clients/client.ts +69 -0
- package/src/light-account/clients/multiOwnerAlchemyClient.ts +68 -0
- package/src/light-account/clients/multiOwnerLightAccount.ts +75 -0
- package/src/light-account/decorators/lightAccount.ts +31 -0
- package/src/light-account/decorators/multiOwnerLightAccount.ts +31 -0
- package/src/light-account/e2e-tests/constants.ts +8 -0
- package/src/light-account/schema.ts +39 -0
- package/src/light-account/types.ts +210 -0
- package/src/light-account/utils.ts +339 -0
- package/src/msca/abis/IAccountLoupe.ts +78 -0
- package/src/msca/abis/IPlugin.ts +396 -0
- package/src/msca/abis/IPluginManager.ts +105 -0
- package/src/msca/abis/IStandardExecutor.ts +31 -0
- package/src/msca/abis/MultiOwnerModularAccountFactory.ts +190 -0
- package/src/msca/abis/MultisigModularAccountFactory.ts +316 -0
- package/src/msca/abis/UpgradeableModularAccount.ts +645 -0
- package/src/msca/account/multiOwnerAccount.ts +131 -0
- package/src/msca/account/multisigAccount.ts +146 -0
- package/src/msca/account/standardExecutor.ts +29 -0
- package/src/msca/account-loupe/decorator.ts +150 -0
- package/src/msca/account-loupe/types.ts +22 -0
- package/src/msca/client/alchemyClient.ts +80 -0
- package/src/msca/client/client.ts +158 -0
- package/src/msca/client/multiSigAlchemyClient.ts +109 -0
- package/src/msca/e2e-tests/constants.ts +3 -0
- package/src/msca/errors.ts +29 -0
- package/src/msca/plugin-manager/decorator.ts +41 -0
- package/src/msca/plugin-manager/installPlugin.ts +118 -0
- package/src/msca/plugin-manager/uninstallPlugin.ts +90 -0
- package/src/msca/plugins/multi-owner/extension.ts +80 -0
- package/src/msca/plugins/multi-owner/index.ts +6 -0
- package/src/msca/plugins/multi-owner/plugin.ts +899 -0
- package/src/msca/plugins/multi-owner/signer.ts +76 -0
- package/src/msca/plugins/multisig/actions/getThreshold.ts +37 -0
- package/src/msca/plugins/multisig/actions/isOwnerOf.ts +30 -0
- package/src/msca/plugins/multisig/actions/proposeUserOperation.ts +82 -0
- package/src/msca/plugins/multisig/actions/readOwners.ts +31 -0
- package/src/msca/plugins/multisig/actions/signMultisigUserOperation.ts +93 -0
- package/src/msca/plugins/multisig/extension.ts +100 -0
- package/src/msca/plugins/multisig/index.ts +21 -0
- package/src/msca/plugins/multisig/middleware.ts +167 -0
- package/src/msca/plugins/multisig/plugin.ts +941 -0
- package/src/msca/plugins/multisig/signer.ts +100 -0
- package/src/msca/plugins/multisig/types.ts +59 -0
- package/src/msca/plugins/multisig/utils/combineSignatures.ts +24 -0
- package/src/msca/plugins/multisig/utils/formatSignatures.ts +55 -0
- package/src/msca/plugins/multisig/utils/getSignerType.ts +46 -0
- package/src/msca/plugins/multisig/utils/index.ts +4 -0
- package/src/msca/plugins/multisig/utils/splitAggregatedSignature.ts +134 -0
- package/src/msca/plugins/session-key/SessionKeyPermissionsUpdatesAbi.ts +111 -0
- package/src/msca/plugins/session-key/debug-session-key-bytecode.ts +9 -0
- package/src/msca/plugins/session-key/extension.ts +301 -0
- package/src/msca/plugins/session-key/index.ts +3 -0
- package/src/msca/plugins/session-key/permissions.ts +189 -0
- package/src/msca/plugins/session-key/plugin.ts +1320 -0
- package/src/msca/plugins/session-key/signer.ts +98 -0
- package/src/msca/plugins/session-key/utils.ts +40 -0
- package/src/msca/plugins/types.ts +21 -0
- package/src/msca/utils.ts +198 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { Address, BundlerClient, SmartAccountSigner } from "@aa-sdk/core";
|
|
2
|
+
import {
|
|
3
|
+
hashMessage,
|
|
4
|
+
hashTypedData,
|
|
5
|
+
type Hash,
|
|
6
|
+
type Hex,
|
|
7
|
+
type SignableMessage,
|
|
8
|
+
type Transport,
|
|
9
|
+
type TypedData,
|
|
10
|
+
type TypedDataDefinition,
|
|
11
|
+
} from "viem";
|
|
12
|
+
import { MultisigPlugin, MultisigPluginAbi } from "./plugin.js";
|
|
13
|
+
|
|
14
|
+
type MultisigSignMethodsParams<
|
|
15
|
+
TTransport extends Transport,
|
|
16
|
+
TSigner extends SmartAccountSigner
|
|
17
|
+
> = {
|
|
18
|
+
client: BundlerClient<TTransport>;
|
|
19
|
+
accountAddress: Address;
|
|
20
|
+
signer: () => TSigner;
|
|
21
|
+
threshold: bigint;
|
|
22
|
+
pluginAddress?: Address;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const multisigSignMethods = <
|
|
26
|
+
TTransport extends Transport,
|
|
27
|
+
TSigner extends SmartAccountSigner
|
|
28
|
+
>({
|
|
29
|
+
client,
|
|
30
|
+
accountAddress,
|
|
31
|
+
signer,
|
|
32
|
+
threshold,
|
|
33
|
+
pluginAddress = MultisigPlugin.meta.addresses[client.chain.id],
|
|
34
|
+
}: MultisigSignMethodsParams<TTransport, TSigner>) => {
|
|
35
|
+
const signWith712Wrapper = async (msg: Hash): Promise<`0x${string}`> => {
|
|
36
|
+
const [, name, version, chainId, verifyingContract, salt] =
|
|
37
|
+
await client.readContract({
|
|
38
|
+
abi: MultisigPluginAbi,
|
|
39
|
+
address: pluginAddress,
|
|
40
|
+
functionName: "eip712Domain",
|
|
41
|
+
account: accountAddress,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
return signer().signTypedData({
|
|
45
|
+
domain: {
|
|
46
|
+
chainId: Number(chainId),
|
|
47
|
+
name,
|
|
48
|
+
salt,
|
|
49
|
+
verifyingContract,
|
|
50
|
+
version,
|
|
51
|
+
},
|
|
52
|
+
types: {
|
|
53
|
+
AlchemyMultisigMessage: [{ name: "message", type: "bytes" }],
|
|
54
|
+
},
|
|
55
|
+
message: {
|
|
56
|
+
message: msg,
|
|
57
|
+
},
|
|
58
|
+
primaryType: "AlchemyMultisigMessage",
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
getDummySignature: async (): Promise<`0x${string}`> => {
|
|
64
|
+
const [, thresholdRead] = await client.readContract({
|
|
65
|
+
abi: MultisigPluginAbi,
|
|
66
|
+
address: pluginAddress,
|
|
67
|
+
functionName: "ownershipInfoOf",
|
|
68
|
+
args: [accountAddress],
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
const actualThreshold = thresholdRead === 0n ? threshold : thresholdRead;
|
|
72
|
+
|
|
73
|
+
// (uint upperLimitPreVerificationGas, uint upperLimitMaxFeePerGas, uint upperLimitMaxPriorityFeePerGas)
|
|
74
|
+
// the first sig will be on "actual" with v = 32
|
|
75
|
+
return ("0x" +
|
|
76
|
+
"FF".repeat(32 * 3) +
|
|
77
|
+
"fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa3c" +
|
|
78
|
+
"fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c".repeat(
|
|
79
|
+
Number(actualThreshold) - 1
|
|
80
|
+
)) as Hex;
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
signUserOperationHash: (uoHash: Hex): Promise<Hex> => {
|
|
84
|
+
return signer().signMessage({ raw: uoHash });
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
signMessage({ message }: { message: SignableMessage }): Promise<Hex> {
|
|
88
|
+
return signWith712Wrapper(hashMessage(message));
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
signTypedData: <
|
|
92
|
+
const typedData extends TypedData | Record<string, unknown>,
|
|
93
|
+
primaryType extends keyof typedData | "EIP712Domain" = keyof typedData
|
|
94
|
+
>(
|
|
95
|
+
typedDataDefinition: TypedDataDefinition<typedData, primaryType>
|
|
96
|
+
): Promise<Hex> => {
|
|
97
|
+
return signWith712Wrapper(hashTypedData(typedDataDefinition));
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
GetAccountParameter,
|
|
3
|
+
GetEntryPointFromAccount,
|
|
4
|
+
SmartContractAccount,
|
|
5
|
+
UserOperationRequest,
|
|
6
|
+
} from "@aa-sdk/core";
|
|
7
|
+
import type { Hex } from "viem";
|
|
8
|
+
import type { GetPluginAddressParameter } from "../types";
|
|
9
|
+
|
|
10
|
+
export type SignerType = "EOA" | "CONTRACT";
|
|
11
|
+
|
|
12
|
+
export type UserOpSignatureType = "ACTUAL" | "UPPERLIMIT";
|
|
13
|
+
|
|
14
|
+
export type Signature = {
|
|
15
|
+
signerType: SignerType;
|
|
16
|
+
userOpSigType: UserOpSignatureType;
|
|
17
|
+
signer: `0x${string}`;
|
|
18
|
+
signature: `0x${string}`;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export type SignMultisigUserOperationResult = {
|
|
22
|
+
signature: Hex;
|
|
23
|
+
aggregatedSignature: Hex;
|
|
24
|
+
signatureObj: Signature;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export type SignMultisigUserOperationParams<
|
|
28
|
+
TAccount extends SmartContractAccount | undefined =
|
|
29
|
+
| SmartContractAccount
|
|
30
|
+
| undefined,
|
|
31
|
+
TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>
|
|
32
|
+
> = {
|
|
33
|
+
userOperationRequest: UserOperationRequest<TEntryPointVersion>;
|
|
34
|
+
signatures: Signature[];
|
|
35
|
+
} & GetAccountParameter<TAccount> &
|
|
36
|
+
GetPluginAddressParameter;
|
|
37
|
+
|
|
38
|
+
export type ProposeUserOperationResult<
|
|
39
|
+
TAccount extends SmartContractAccount | undefined =
|
|
40
|
+
| SmartContractAccount
|
|
41
|
+
| undefined,
|
|
42
|
+
TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>
|
|
43
|
+
> = {
|
|
44
|
+
request: UserOperationRequest<TEntryPointVersion>;
|
|
45
|
+
aggregatedSignature: Hex;
|
|
46
|
+
signatureObj: Signature;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export type MultisigUserOperationContext =
|
|
50
|
+
| {
|
|
51
|
+
userOpSignatureType: Extract<UserOpSignatureType, "UPPERLIMIT">;
|
|
52
|
+
aggregatedSignature?: Hex;
|
|
53
|
+
signatures?: Signature[];
|
|
54
|
+
}
|
|
55
|
+
| {
|
|
56
|
+
aggregatedSignature: Hex;
|
|
57
|
+
signatures: Signature[];
|
|
58
|
+
userOpSignatureType: Extract<UserOpSignatureType, "ACTUAL">;
|
|
59
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type Hex, concat, pad } from "viem";
|
|
2
|
+
import type { Signature } from "../types.js";
|
|
3
|
+
import { formatSignatures } from "./formatSignatures.js";
|
|
4
|
+
|
|
5
|
+
export const combineSignatures = ({
|
|
6
|
+
signatures,
|
|
7
|
+
upperLimitMaxFeePerGas,
|
|
8
|
+
upperLimitMaxPriorityFeePerGas,
|
|
9
|
+
upperLimitPvg,
|
|
10
|
+
usingMaxValues,
|
|
11
|
+
}: {
|
|
12
|
+
upperLimitPvg: Hex;
|
|
13
|
+
upperLimitMaxFeePerGas: Hex;
|
|
14
|
+
upperLimitMaxPriorityFeePerGas: Hex;
|
|
15
|
+
signatures: Signature[];
|
|
16
|
+
usingMaxValues: boolean;
|
|
17
|
+
}) => {
|
|
18
|
+
return concat([
|
|
19
|
+
pad(upperLimitPvg),
|
|
20
|
+
pad(upperLimitMaxFeePerGas),
|
|
21
|
+
pad(upperLimitMaxPriorityFeePerGas),
|
|
22
|
+
formatSignatures(signatures, usingMaxValues),
|
|
23
|
+
]);
|
|
24
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { takeBytes } from "@aa-sdk/core";
|
|
2
|
+
import { concat, hexToBigInt, pad, toHex } from "viem";
|
|
3
|
+
import type { Signature } from "../types";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Formats a collection of Signature objects into a single aggregated signature.
|
|
7
|
+
* The format is in the form of EOA_SIGS | CONTRACT_SIG_DATAS. The signatures are ordered
|
|
8
|
+
* by signer address. The EOA SIGS contain the 65 signautre data for EOA signers and 65 bytes containing SIGNER | OFFSET | V for contract signers.
|
|
9
|
+
* The OFFSET is used to fetch the signature data from the CONTRACT_SIG_DATAS.
|
|
10
|
+
*
|
|
11
|
+
* @param signatures the array of {@link Signature} objects to combine into the correct aggregated signature format excluding the upper limits
|
|
12
|
+
* @param usingMaxValues a boolean indicating wether or not the UserOperation is using the UPPER_LIMIT for the gas and fee values
|
|
13
|
+
* @returns the Hex representation of the signature
|
|
14
|
+
*/
|
|
15
|
+
export const formatSignatures = (
|
|
16
|
+
signatures: Signature[],
|
|
17
|
+
usingMaxValues: boolean = false
|
|
18
|
+
) => {
|
|
19
|
+
let eoaSigs: string = "";
|
|
20
|
+
let contractSigs: string = "";
|
|
21
|
+
let offset: bigint = BigInt(65 * signatures.length);
|
|
22
|
+
signatures
|
|
23
|
+
.sort((a, b) => {
|
|
24
|
+
const bigintA = hexToBigInt(a.signer);
|
|
25
|
+
const bigintB = hexToBigInt(b.signer);
|
|
26
|
+
|
|
27
|
+
return bigintA < bigintB ? -1 : bigintA > bigintB ? 1 : 0;
|
|
28
|
+
})
|
|
29
|
+
.forEach((sig) => {
|
|
30
|
+
// add 32 to v if the signature covers the actual gas values
|
|
31
|
+
const addV = sig.userOpSigType === "ACTUAL" && !usingMaxValues ? 32 : 0;
|
|
32
|
+
|
|
33
|
+
if (sig.signerType === "EOA") {
|
|
34
|
+
let v =
|
|
35
|
+
parseInt(takeBytes(sig.signature, { count: 1, offset: 64 })) + addV;
|
|
36
|
+
eoaSigs += concat([
|
|
37
|
+
takeBytes(sig.signature, { count: 64 }),
|
|
38
|
+
toHex(v, { size: 1 }),
|
|
39
|
+
]).slice(2);
|
|
40
|
+
} else {
|
|
41
|
+
const sigLen = BigInt(sig.signature.slice(2).length / 2);
|
|
42
|
+
eoaSigs += concat([
|
|
43
|
+
pad(sig.signer),
|
|
44
|
+
toHex(offset, { size: 32 }),
|
|
45
|
+
toHex(addV, { size: 1 }),
|
|
46
|
+
]).slice(2);
|
|
47
|
+
contractSigs += concat([
|
|
48
|
+
toHex(sigLen, { size: 32 }),
|
|
49
|
+
sig.signature,
|
|
50
|
+
]).slice(2);
|
|
51
|
+
offset += sigLen;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return ("0x" + eoaSigs + contractSigs) as `0x${string}`;
|
|
55
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { SmartContractAccount, SmartAccountSigner } from "@aa-sdk/core";
|
|
2
|
+
import {
|
|
3
|
+
type Transport,
|
|
4
|
+
type Chain,
|
|
5
|
+
type Client,
|
|
6
|
+
type PublicRpcSchema,
|
|
7
|
+
type PublicActions,
|
|
8
|
+
type Hex,
|
|
9
|
+
size,
|
|
10
|
+
} from "viem";
|
|
11
|
+
import type { SignerType } from "../types";
|
|
12
|
+
|
|
13
|
+
type GetSignerTypeParams<
|
|
14
|
+
TTransport extends Transport = Transport,
|
|
15
|
+
TChain extends Chain | undefined = Chain | undefined,
|
|
16
|
+
TAccount extends SmartContractAccount | undefined =
|
|
17
|
+
| SmartContractAccount
|
|
18
|
+
| undefined,
|
|
19
|
+
TClient extends Client<
|
|
20
|
+
TTransport,
|
|
21
|
+
TChain,
|
|
22
|
+
TAccount,
|
|
23
|
+
PublicRpcSchema,
|
|
24
|
+
PublicActions
|
|
25
|
+
> = Client<TTransport, TChain, TAccount, PublicRpcSchema, PublicActions>
|
|
26
|
+
> = {
|
|
27
|
+
signer: SmartAccountSigner<any>;
|
|
28
|
+
signature: Hex;
|
|
29
|
+
client: TClient;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const getSignerType = async <
|
|
33
|
+
TTransport extends Transport = Transport,
|
|
34
|
+
TChain extends Chain | undefined = Chain | undefined
|
|
35
|
+
>({
|
|
36
|
+
client,
|
|
37
|
+
signature,
|
|
38
|
+
signer,
|
|
39
|
+
}: GetSignerTypeParams<TTransport, TChain>): Promise<SignerType> => {
|
|
40
|
+
const signerAddress = await signer.getAddress();
|
|
41
|
+
const byteCode = await client.getBytecode({ address: signerAddress });
|
|
42
|
+
|
|
43
|
+
return (byteCode ?? "0x") === "0x" && size(signature) === 65
|
|
44
|
+
? "EOA"
|
|
45
|
+
: "CONTRACT";
|
|
46
|
+
};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import {
|
|
2
|
+
takeBytes,
|
|
3
|
+
type GetEntryPointFromAccount,
|
|
4
|
+
type SmartContractAccount,
|
|
5
|
+
type UserOperationRequest,
|
|
6
|
+
} from "@aa-sdk/core";
|
|
7
|
+
import { fromHex, hashMessage, recoverAddress, type Hex } from "viem";
|
|
8
|
+
import { InvalidAggregatedSignatureError } from "../../../errors.js";
|
|
9
|
+
import type { Signature } from "../types.js";
|
|
10
|
+
|
|
11
|
+
export type SplitAggregateSignatureParams<
|
|
12
|
+
TAccount extends SmartContractAccount | undefined =
|
|
13
|
+
| SmartContractAccount
|
|
14
|
+
| undefined,
|
|
15
|
+
TEntryPointVersion extends GetEntryPointFromAccount<TAccount> = GetEntryPointFromAccount<TAccount>
|
|
16
|
+
> = {
|
|
17
|
+
aggregatedSignature: Hex;
|
|
18
|
+
threshold: number;
|
|
19
|
+
account: SmartContractAccount;
|
|
20
|
+
request: UserOperationRequest<TEntryPointVersion>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Takes an aggregated signature and threshold and splits it into its components
|
|
24
|
+
*
|
|
25
|
+
* @param args - the arguments for the split
|
|
26
|
+
* @param args.aggregateSignature - the aggregated signature to split
|
|
27
|
+
* @param args.threshold - the threshold for the signature
|
|
28
|
+
* @param args.account - the account which the signature is valid for
|
|
29
|
+
* @param args.request - the user operation request that the signature is for
|
|
30
|
+
* @returns the signature split into its upper limits and current signatures
|
|
31
|
+
*/
|
|
32
|
+
export const splitAggregatedSignature = async <
|
|
33
|
+
TAccount extends SmartContractAccount | undefined =
|
|
34
|
+
| SmartContractAccount
|
|
35
|
+
| undefined
|
|
36
|
+
>(
|
|
37
|
+
args: SplitAggregateSignatureParams<TAccount>
|
|
38
|
+
): Promise<{
|
|
39
|
+
upperLimitPvg: Hex;
|
|
40
|
+
upperLimitMaxFeePerGas: Hex;
|
|
41
|
+
upperLimitMaxPriorityFeePerGas: Hex;
|
|
42
|
+
signatures: Signature[];
|
|
43
|
+
}> => {
|
|
44
|
+
const { aggregatedSignature, threshold, account, request } = args;
|
|
45
|
+
if (aggregatedSignature.length < 192 + (65 * threshold - 1)) {
|
|
46
|
+
throw new InvalidAggregatedSignatureError();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// UserOp.sig format:
|
|
50
|
+
// 0-32: upperLimitPreVerificationGas
|
|
51
|
+
// 32-64: upperLimitMaxFeePerGas
|
|
52
|
+
// 64-96: upperLimitMaxPriorityFeePerGas
|
|
53
|
+
// 96-96+n: k signatures, each sig is 65 bytes each (so n = 65 * k)
|
|
54
|
+
// 96+n-: contract signatures if any
|
|
55
|
+
const pvg = takeBytes(aggregatedSignature, { count: 32 });
|
|
56
|
+
const maxFeePerGas = takeBytes(aggregatedSignature, {
|
|
57
|
+
count: 32,
|
|
58
|
+
offset: 32,
|
|
59
|
+
});
|
|
60
|
+
const maxPriorityFeePerGas = takeBytes(aggregatedSignature, {
|
|
61
|
+
count: 32,
|
|
62
|
+
offset: 64,
|
|
63
|
+
});
|
|
64
|
+
const signaturesAndData = takeBytes(aggregatedSignature, {
|
|
65
|
+
offset: 96,
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const signatureHexes = (() => {
|
|
69
|
+
const signatureStr = takeBytes(signaturesAndData, {
|
|
70
|
+
count: 65 * threshold - 1,
|
|
71
|
+
});
|
|
72
|
+
const signatures: Hex[] = [];
|
|
73
|
+
for (let i = 0; i < threshold - 1; i++) {
|
|
74
|
+
signatures.push(takeBytes(signatureStr, { count: 65, offset: i * 65 }));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return signatures;
|
|
78
|
+
})();
|
|
79
|
+
|
|
80
|
+
const signatures: Promise<Signature>[] = signatureHexes.map(
|
|
81
|
+
async (signature): Promise<Signature> => {
|
|
82
|
+
// in RSV, v is the last byte of a 65 byte signature
|
|
83
|
+
const v = BigInt(takeBytes(signature, { count: 1, offset: 64 }));
|
|
84
|
+
const signerType = v === 0n ? "CONTRACT" : "EOA";
|
|
85
|
+
if (signerType === "EOA") {
|
|
86
|
+
// To recover the signer from just the user op and the raw EOA signature, we need to perform an EC recover. The input hash to recover from should be the original user op hash, with the upper limit gas values, wrapped in the standard EIP-191 wrapper format.
|
|
87
|
+
const hash = hashMessage({
|
|
88
|
+
raw: account.getEntryPoint().getUserOperationHash({
|
|
89
|
+
...request,
|
|
90
|
+
preVerificationGas: pvg,
|
|
91
|
+
maxFeePerGas,
|
|
92
|
+
maxPriorityFeePerGas,
|
|
93
|
+
}),
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
return {
|
|
97
|
+
// the signer doesn't get used here for EOAs
|
|
98
|
+
// TODO: nope. this needs to actually do an ec recover
|
|
99
|
+
signer: await recoverAddress({ hash, signature }),
|
|
100
|
+
signature,
|
|
101
|
+
signerType,
|
|
102
|
+
userOpSigType: "UPPERLIMIT",
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const signer = takeBytes(signature, { count: 20, offset: 12 });
|
|
107
|
+
const offset = fromHex(
|
|
108
|
+
takeBytes(signature, { count: 32, offset: 32 }),
|
|
109
|
+
"number"
|
|
110
|
+
);
|
|
111
|
+
const signatureLength = fromHex(
|
|
112
|
+
takeBytes(signaturesAndData, { count: 32, offset }),
|
|
113
|
+
"number"
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
return {
|
|
117
|
+
signer,
|
|
118
|
+
signerType,
|
|
119
|
+
userOpSigType: "UPPERLIMIT",
|
|
120
|
+
signature: takeBytes(signaturesAndData, {
|
|
121
|
+
count: signatureLength,
|
|
122
|
+
offset: offset + 32,
|
|
123
|
+
}),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
upperLimitPvg: pvg,
|
|
130
|
+
upperLimitMaxFeePerGas: maxFeePerGas,
|
|
131
|
+
upperLimitMaxPriorityFeePerGas: maxPriorityFeePerGas,
|
|
132
|
+
signatures: await Promise.all(signatures),
|
|
133
|
+
};
|
|
134
|
+
};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export const SessionKeyPermissionsUpdatesAbi = [
|
|
2
|
+
{
|
|
3
|
+
type: "function",
|
|
4
|
+
name: "setAccessListType",
|
|
5
|
+
inputs: [
|
|
6
|
+
{
|
|
7
|
+
name: "contractAccessControlType",
|
|
8
|
+
type: "uint8",
|
|
9
|
+
internalType: "enum ISessionKeyPlugin.ContractAccessControlType",
|
|
10
|
+
},
|
|
11
|
+
],
|
|
12
|
+
outputs: [],
|
|
13
|
+
stateMutability: "nonpayable",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
type: "function",
|
|
17
|
+
name: "setERC20SpendLimit",
|
|
18
|
+
inputs: [
|
|
19
|
+
{ name: "token", type: "address", internalType: "address" },
|
|
20
|
+
{ name: "spendLimit", type: "uint256", internalType: "uint256" },
|
|
21
|
+
{
|
|
22
|
+
name: "refreshInterval",
|
|
23
|
+
type: "uint48",
|
|
24
|
+
internalType: "uint48",
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
outputs: [],
|
|
28
|
+
stateMutability: "nonpayable",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: "function",
|
|
32
|
+
name: "setGasSpendLimit",
|
|
33
|
+
inputs: [
|
|
34
|
+
{ name: "spendLimit", type: "uint256", internalType: "uint256" },
|
|
35
|
+
{
|
|
36
|
+
name: "refreshInterval",
|
|
37
|
+
type: "uint48",
|
|
38
|
+
internalType: "uint48",
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
outputs: [],
|
|
42
|
+
stateMutability: "nonpayable",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: "function",
|
|
46
|
+
name: "setNativeTokenSpendLimit",
|
|
47
|
+
inputs: [
|
|
48
|
+
{ name: "spendLimit", type: "uint256", internalType: "uint256" },
|
|
49
|
+
{
|
|
50
|
+
name: "refreshInterval",
|
|
51
|
+
type: "uint48",
|
|
52
|
+
internalType: "uint48",
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
outputs: [],
|
|
56
|
+
stateMutability: "nonpayable",
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: "function",
|
|
60
|
+
name: "setRequiredPaymaster",
|
|
61
|
+
inputs: [
|
|
62
|
+
{
|
|
63
|
+
name: "requiredPaymaster",
|
|
64
|
+
type: "address",
|
|
65
|
+
internalType: "address",
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
outputs: [],
|
|
69
|
+
stateMutability: "nonpayable",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: "function",
|
|
73
|
+
name: "updateAccessListAddressEntry",
|
|
74
|
+
inputs: [
|
|
75
|
+
{
|
|
76
|
+
name: "contractAddress",
|
|
77
|
+
type: "address",
|
|
78
|
+
internalType: "address",
|
|
79
|
+
},
|
|
80
|
+
{ name: "isOnList", type: "bool", internalType: "bool" },
|
|
81
|
+
{ name: "checkSelectors", type: "bool", internalType: "bool" },
|
|
82
|
+
],
|
|
83
|
+
outputs: [],
|
|
84
|
+
stateMutability: "nonpayable",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: "function",
|
|
88
|
+
name: "updateAccessListFunctionEntry",
|
|
89
|
+
inputs: [
|
|
90
|
+
{
|
|
91
|
+
name: "contractAddress",
|
|
92
|
+
type: "address",
|
|
93
|
+
internalType: "address",
|
|
94
|
+
},
|
|
95
|
+
{ name: "selector", type: "bytes4", internalType: "bytes4" },
|
|
96
|
+
{ name: "isOnList", type: "bool", internalType: "bool" },
|
|
97
|
+
],
|
|
98
|
+
outputs: [],
|
|
99
|
+
stateMutability: "nonpayable",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: "function",
|
|
103
|
+
name: "updateTimeRange",
|
|
104
|
+
inputs: [
|
|
105
|
+
{ name: "validAfter", type: "uint48", internalType: "uint48" },
|
|
106
|
+
{ name: "validUntil", type: "uint48", internalType: "uint48" },
|
|
107
|
+
],
|
|
108
|
+
outputs: [],
|
|
109
|
+
stateMutability: "nonpayable",
|
|
110
|
+
},
|
|
111
|
+
] as const;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bytecode for a modified debug-version of the Session Key Plugin, to be used
|
|
3
|
+
* in state overrides to produce more descriptive errors on permission failures.
|
|
4
|
+
*
|
|
5
|
+
* Compiled from
|
|
6
|
+
* https://github.com/alchemyplatform/modular-account/tree/ed36ad6483ef06b61e7c096a6615b318c47379be
|
|
7
|
+
*/
|
|
8
|
+
export const DEBUG_SESSION_KEY_BYTECODE =
|
|
9
|
+
"0x6040608081526004908136101561001557600080fd5b6000803560e01c806331d99c2c146100975763af8734831461003657600080fd5b34610090576003196060368201126100935783359160ff83168303610090576024359167ffffffffffffffff831161009357610160908336030112610090575092610089916020946044359201906106ed565b9051908152f35b80fd5b5080fd5b50823461009357826003193601126100935767ffffffffffffffff81358181116105255736602382011215610525578083013590828211610521576024926024820191602436918560051b01011161051d576001600160a01b0394602435868116810361051957604080516080810182526060808252336020830190815263068076b960e21b938301939093526001600160a01b039093169083015220548761016f8233606091826040516001600160a01b03602082019460808301604052838352168452630b5ff94b60e11b604082015201522090565b91895b87811061045d57505060ff825460781c16156103ef575b5080549060ff8260801c166103b6575b50506101a88497959894610584565b956101b58551978861054c565b8787526101c188610584565b98602098601f19809b01885b8181106103a7575050875b818110610256575050505050505080519380850191818652845180935281818701918460051b880101950193965b8388106102135786860387f35b9091929394838080600193603f198b820301875285601f8b5161024181518092818752878088019101610529565b01160101970193019701969093929193610206565b6102668183899e9b9d9a9e61059c565b803585811680910361039557908c8a928f898e610285838701876105d9565b9790935196879586947f38997b1100000000000000000000000000000000000000000000000000000000865285015201358a83015260606044830152866064830152866084938484013784838884010152601f80970116810103018183335af191821561039d578d9261031a575b505090600191610303828d610628565b5261030e818c610628565b50019a9699979a6101d8565b9091503d808e843e61032c818461054c565b8201918a818403126103915780519089821161039957019081018213156103955790818e92519161036861035f8461060c565b9451948561054c565b8284528b8383010111610391578291610389918c8060019796019101610529565b90918e6102f3565b8d80fd5b8c80fd5b8e80fd5b8e513d8f823e3d90fd5b60608b82018d01528b016101cd565b70ff00000000000000000000000000000000199091168155600101805465ffffffffffff19164265ffffffffffff161790558880610199565b6104029060068301906002840190611191565b1561040d5789610189565b610459828a5191829162461bcd60e51b8352820160609060208152601460208201527f5370656e64206c696d697420657863656564656400000000000000000000000060408201520190565b0390fd5b6104713661046c838b8b61059c565b610673565b926104826020918286015190611042565b938d6104928d83511686336110b0565b9160ff835460101c166104ac575b50505050600101610172565b6104ca92916104bc910151611146565b600160028301920190611191565b156104d757808d816104a0565b85601a8b8f93606494519362461bcd60e51b85528401528201527f4552433230207370656e64206c696d69742065786365656465640000000000006044820152fd5b8780fd5b8580fd5b8480fd5b8380fd5b60005b83811061053c5750506000910152565b818101518382015260200161052c565b90601f8019910116810190811067ffffffffffffffff82111761056e57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161056e5760051b60200190565b91908110156105c35760051b81013590605e19813603018212156105be570190565b600080fd5b634e487b7160e01b600052603260045260246000fd5b903590601e19813603018212156105be570180359067ffffffffffffffff82116105be576020019181360383136105be57565b67ffffffffffffffff811161056e57601f01601f191660200190565b80518210156105c35760209160051b010190565b9291926106488261060c565b91610656604051938461054c565b8294818452818301116105be578281602093846000960137010152565b91906060838203126105be576040519067ffffffffffffffff606083018181118482101761056e57604052829480356001600160a01b03811681036105be5784526020810135602085015260408101359182116105be570181601f820112156105be576040918160206106e89335910161063c565b910152565b60ff161561073957606460405162461bcd60e51b815260206004820152602060248201527f57726f6e672066756e6374696f6e20696420666f722076616c69646174696f6e6044820152fd5b61074660608201826105d9565b806004949294116105be57830192604081850360031901126105be5767ffffffffffffffff9360048201358581116105be57820194816023870112156105be5760048601359561079587610584565b966107a3604051988961054c565b8088526024602089019160051b830101928484116105be5760248301915b84831061101b5750505050505060240135906001600160a01b03821682036105be577f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52610830603c60002061082a6108236101408601866105d9565b369161063c565b90611065565b600581101561100557610f9c5760806040513381527ff938c976000000000000000000000000000000000000000000000000000000006020820152600160408201526bffffffffffffffffffffffff198460601b166060820152205415610f5857604080516080810182526060808252336020830190815263068076b960e21b938301939093526001600160a01b03851691810191909152902054926109058433606091826040516001600160a01b03602082019460808301604052838352168452630b5ff94b60e11b604082015201522090565b9081549465ffffffffffff8660081c16966000918151918215610f145760005b838110610ed2575050505060ff8660781c1615610d50575b5060ff8560701c16610aa8575b60ff825460681c166109db575b50506001600160a01b039182169116036109a85765ffffffffffff60a01b7fffffffffffff00000000000000000000000000000000000000000000000000006000935b60d01b169160681b16171790565b65ffffffffffff60a01b7fffffffffffff000000000000000000000000000000000000000000000000000060019361099a565b806101206109ea9201906105d9565b6bffffffffffffffffffffffff199135918216929160148210610a6c575b505060036001600160a01b03910154169060601c03610a28573880610957565b606460405162461bcd60e51b815260206004820152601b60248201527f4d75737420757365207265717569726564207061796d617374657200000000006044820152fd5b6001600160a01b03929350906003916bffffffffffffffffffffffff19916bffffffffffffffffffffffff1990601403841b1b16169291610a08565b946001600160a01b038416602087013560401c03610cc057610ace6101208701876105d9565b159050610cab57610b11610b06610afb610af160ff60035b1660a08b013561109d565b60808a0135611042565b60c089013590611042565b60e08801359061109d565b9060009060018401546005850154906004860154908583810110610c675765ffffffffffff8160301c1615600014610ba6575081850111610b6157610b5b9301600585015561154f565b9461094a565b60405162461bcd60e51b815260206004820152601260248201527f476173206c696d697420657863656564656400000000000000000000000000006044820152606490fd5b92935093848282011115600014610bf657610b5b945001600585015560ff8760801c16600014610bee578065ffffffffffff80610be89360301c169116611177565b9061154f565b506000610be8565b809392949150111580610c59575b15610b6157610c248365ffffffffffff80610b5b9660301c169116611177565b9170010000000000000000000000000000000070ff00000000000000000000000000000000198916178555600585015561154f565b5060ff8760801c1615610c04565b606460405162461bcd60e51b815260206004820152601260248201527f476173206c696d6974206f766572666c6f7700000000000000000000000000006044820152fd5b610b11610b06610afb610af160ff6001610ae6565b60a460405162461bcd60e51b815260206004820152604f60248201527f4d757374207573652073657373696f6e206b6579206173206b657920706f727460448201527f696f6e206f66206e6f6e6365207768656e20676173206c696d6974206368656360648201527f6b696e6720697320656e61626c656400000000000000000000000000000000006084820152fd5b6000969196906002840154906007850154906006860154928183810110610e8e5765ffffffffffff8160301c1615600014610de157500111610d9c57610d959161154f565b943861093d565b60405162461bcd60e51b815260206004820152601460248201527f5370656e64206c696d69742065786365656465640000000000000000000000006044820152606490fd5b94928092820111610df9575b5050610d95925061154f565b91925010610e2457610e1c8265ffffffffffff80610d959560301c169116611177565b903880610ded565b608460405162461bcd60e51b815260206004820152603260248201527f5370656e64206c696d69742065786365656465642c206576656e20696e636c7560448201527f64696e67206e65787420696e74657276616c00000000000000000000000000006064820152fd5b606460405162461bcd60e51b815260206004820152601460248201527f5370656e64206c696d6974206f766572666c6f770000000000000000000000006044820152fd5b80610f0e8b610ef3610ee660019587610628565b519860208a015190611042565b978660ff60406001600160a01b0384511693015193166112bf565b01610925565b606460405162461bcd60e51b815260206004820152601b60248201527f4d7573742068617665206174206c65617374206f6e652063616c6c00000000006044820152fd5b606460405162461bcd60e51b815260206004820152601360248201527f556e6b6e6f776e2073657373696f6e206b6579000000000000000000000000006044820152fd5b608460405162461bcd60e51b8152602060048201526024808201527f5369676e617475726520646f6573206e6f74206d617463682073657373696f6e60448201527f206b6579000000000000000000000000000000000000000000000000000000006064820152fd5b634e487b7160e01b600052602160045260246000fd5b82358281116105be576020916110378860248594890101610673565b8152019201916107c1565b9190820180921161104f57565b634e487b7160e01b600052601160045260246000fd5b9060418151146000146110935761108f916020820151906060604084015193015160001a90611230565b9091565b5050600090600290565b8181029291811591840414171561104f57565b9061111192916040519260a08401604052608084526001600160a01b0380921660208501527f634c29f50000000000000000000000000000000000000000000000000000000060408501521690606083015260808201526020815191012090565b90565b90602082519201516001600160e01b031990818116936004811061113757505050565b60040360031b82901b16169150565b61115761115282611114565b61156c565b6111615750600090565b6044815110611171576044015190565b50600090565b91909165ffffffffffff8080941691160191821161104f57565b9181549165ffffffffffff90818460301c169160018454940194855493828115928315611218575b5050506000146111ee57505083019283109081156111e4575b506111dd5755600190565b5050600090565b90508211386111d2565b9391509391821161120f5755421665ffffffffffff19825416179055600190565b50505050600090565b611223935016611177565b81429116113882816111b9565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116112b35791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa156112a65781516001600160a01b038116156112a0579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b91926112ca90611114565b926112d68183336110b0565b926003811015611005578061147d5750825460ff8116156114395760081c60ff1615611433578361130a9160ff93336115cb565b5416156113c95760ff905b5460101c1690816113b8575b5061132857565b60a460405162461bcd60e51b815260206004820152604460248201527f46756e6374696f6e2073656c6563746f72206e6f7420616c6c6f77656420666f60448201527f7220455243323020636f6e74726163742077697468207370656e64696e67206c60648201527f696d6974000000000000000000000000000000000000000000000000000000006084820152fd5b6113c2915061156c565b1538611321565b608460405162461bcd60e51b815260206004820152602260248201527f46756e6374696f6e2073656c6563746f72206e6f74206f6e20616c6c6f776c6960448201527f73740000000000000000000000000000000000000000000000000000000000006064820152fd5b50505050565b606460405162461bcd60e51b815260206004820152601f60248201527f5461726765742061646472657373206e6f74206f6e20616c6c6f776c697374006044820152fd5b60011461148f575b505060ff90611315565b825460ff8116156115485760081c60ff161561150457836114b39160ff93336115cb565b54166114c0573880611485565b606460405162461bcd60e51b815260206004820152601d60248201527f46756e6374696f6e2073656c6563746f72206f6e2064656e796c6973740000006044820152fd5b606460405162461bcd60e51b815260206004820152601a60248201527f5461726765742061646472657373206f6e2064656e796c6973740000000000006044820152fd5b5050505050565b9065ffffffffffff8082169083161115611567575090565b905090565b6001600160e01b0319167fa9059cbb0000000000000000000000000000000000000000000000000000000081149081156115a4575090565b7f095ea7b30000000000000000000000000000000000000000000000000000000091501490565b926001600160e01b0319611111946040519460a08601604052608086526001600160a01b0380921660208701527fd50536f0000000000000000000000000000000000000000000000000000000006040870152169116179060608301526080820152602081519101209056fea26469706673582212201c78177154c86c4d5ed4f532b4017a1d665037d4831a7cd69e8e8bd8408ab3e764736f6c63430008160033";
|