From f658e9ebc1e6414acf038e6c459db529a8305084 Mon Sep 17 00:00:00 2001 From: katsumata <12413150+winor30@users.noreply.github.com> Date: Wed, 22 Nov 2023 15:35:30 +0900 Subject: [PATCH] Refactor SingleOwnerPlugin dependency management - Refactor `SingleOwnerPlugin.sol` to use `IPluginManager` interface and `UUPSUpgradeable` for plugin management, enhancing upgradeability and contract modularity. - Update execution selectors in `installPlugin` and `uninstallPlugin` methods to align with new interface. --- src/plugins/owner/SingleOwnerPlugin.sol | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/owner/SingleOwnerPlugin.sol b/src/plugins/owner/SingleOwnerPlugin.sol index fcd2d369..91143eb3 100644 --- a/src/plugins/owner/SingleOwnerPlugin.sol +++ b/src/plugins/owner/SingleOwnerPlugin.sol @@ -6,7 +6,8 @@ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol"; import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol"; import {UserOperation} from "@eth-infinitism/account-abstraction/interfaces/UserOperation.sol"; -import {UpgradeableModularAccount, UUPSUpgradeable} from "../../account/UpgradeableModularAccount.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; +import {IPluginManager} from "../../interfaces/IPluginManager.sol"; import { ManifestFunction, ManifestAssociatedFunctionType, @@ -170,11 +171,11 @@ contract SingleOwnerPlugin is BasePlugin, ISingleOwnerPlugin, IERC1271 { associatedFunction: ownerUserOpValidationFunction }); manifest.userOpValidationFunctions[3] = ManifestAssociatedFunction({ - executionSelector: UpgradeableModularAccount.installPlugin.selector, + executionSelector: IPluginManager.installPlugin.selector, associatedFunction: ownerUserOpValidationFunction }); manifest.userOpValidationFunctions[4] = ManifestAssociatedFunction({ - executionSelector: UpgradeableModularAccount.uninstallPlugin.selector, + executionSelector: IPluginManager.uninstallPlugin.selector, associatedFunction: ownerUserOpValidationFunction }); manifest.userOpValidationFunctions[5] = ManifestAssociatedFunction({ @@ -214,11 +215,11 @@ contract SingleOwnerPlugin is BasePlugin, ISingleOwnerPlugin, IERC1271 { associatedFunction: ownerOrSelfRuntimeValidationFunction }); manifest.runtimeValidationFunctions[4] = ManifestAssociatedFunction({ - executionSelector: UpgradeableModularAccount.installPlugin.selector, + executionSelector: IPluginManager.installPlugin.selector, associatedFunction: ownerOrSelfRuntimeValidationFunction }); manifest.runtimeValidationFunctions[5] = ManifestAssociatedFunction({ - executionSelector: UpgradeableModularAccount.uninstallPlugin.selector, + executionSelector: IPluginManager.uninstallPlugin.selector, associatedFunction: ownerOrSelfRuntimeValidationFunction }); manifest.runtimeValidationFunctions[6] = ManifestAssociatedFunction({