22pragma solidity ^ 0.8.25 ;
33
44import {BaseAccount} from "@eth-infinitism/account-abstraction/core/BaseAccount.sol " ;
5-
65import {IAccountExecute} from "@eth-infinitism/account-abstraction/interfaces/IAccountExecute.sol " ;
76import {IEntryPoint} from "@eth-infinitism/account-abstraction/interfaces/IEntryPoint.sol " ;
87import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interfaces/PackedUserOperation.sol " ;
@@ -12,20 +11,15 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeab
1211import {IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol " ;
1312import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol " ;
1413
14+ import {DIRECT_CALL_VALIDATION_ENTITYID} from "../helpers/Constants.sol " ;
1515import {HookConfig, HookConfigLib} from "../helpers/HookConfigLib.sol " ;
1616import {ModuleEntityLib} from "../helpers/ModuleEntityLib.sol " ;
17-
1817import {SparseCalldataSegmentLib} from "../helpers/SparseCalldataSegmentLib.sol " ;
1918import {ValidationConfigLib} from "../helpers/ValidationConfigLib.sol " ;
2019import {_coalescePreValidation, _coalesceValidation} from "../helpers/ValidationResHelpers.sol " ;
21-
22- import {DIRECT_CALL_VALIDATION_ENTITYID} from "../helpers/Constants.sol " ;
23-
2420import {IExecutionHookModule} from "../interfaces/IExecutionHookModule.sol " ;
2521import {ExecutionManifest} from "../interfaces/IExecutionModule.sol " ;
26- import {IModuleManager, ModuleEntity, ValidationConfig} from "../interfaces/IModuleManager.sol " ;
27- import {Call, IStandardExecutor} from "../interfaces/IStandardExecutor.sol " ;
28-
22+ import {Call, IModularAccount, ModuleEntity, ValidationConfig} from "../interfaces/IModularAccount.sol " ;
2923import {IValidationHookModule} from "../interfaces/IValidationHookModule.sol " ;
3024import {IValidationModule} from "../interfaces/IValidationModule.sol " ;
3125import {AccountExecutor} from "./AccountExecutor.sol " ;
@@ -35,13 +29,13 @@ import {AccountStorageInitializable} from "./AccountStorageInitializable.sol";
3529import {ModuleManagerInternals} from "./ModuleManagerInternals.sol " ;
3630
3731contract UpgradeableModularAccount is
32+ IModularAccount ,
3833 AccountExecutor ,
3934 AccountLoupe ,
4035 AccountStorageInitializable ,
4136 BaseAccount ,
4237 IERC165 ,
4338 IERC1271 ,
44- IStandardExecutor ,
4539 IAccountExecute ,
4640 ModuleManagerInternals ,
4741 UUPSUpgradeable
@@ -152,7 +146,7 @@ contract UpgradeableModularAccount is
152146 _doCachedPostExecHooks (postPermissionHooks);
153147 }
154148
155- /// @inheritdoc IStandardExecutor
149+ /// @inheritdoc IModularAccount
156150 /// @notice May be validated by a global validation.
157151 function execute (address target , uint256 value , bytes calldata data )
158152 external
@@ -164,7 +158,7 @@ contract UpgradeableModularAccount is
164158 result = _exec (target, value, data);
165159 }
166160
167- /// @inheritdoc IStandardExecutor
161+ /// @inheritdoc IModularAccount
168162 /// @notice May be validated by a global validation function.
169163 function executeBatch (Call[] calldata calls )
170164 external
@@ -181,7 +175,7 @@ contract UpgradeableModularAccount is
181175 }
182176 }
183177
184- /// @inheritdoc IStandardExecutor
178+ /// @inheritdoc IModularAccount
185179 function executeWithAuthorization (bytes calldata data , bytes calldata authorization )
186180 external
187181 payable
@@ -214,7 +208,7 @@ contract UpgradeableModularAccount is
214208 return returnData;
215209 }
216210
217- /// @inheritdoc IModuleManager
211+ /// @inheritdoc IModularAccount
218212 /// @notice May be validated by a global validation.
219213 function installExecution (
220214 address module ,
@@ -224,7 +218,7 @@ contract UpgradeableModularAccount is
224218 _installExecution (module, manifest, moduleInstallData);
225219 }
226220
227- /// @inheritdoc IModuleManager
221+ /// @inheritdoc IModularAccount
228222 /// @notice May be validated by a global validation.
229223 function uninstallExecution (
230224 address module ,
@@ -245,7 +239,7 @@ contract UpgradeableModularAccount is
245239 _installValidation (validationConfig, selectors, installData, hooks);
246240 }
247241
248- /// @inheritdoc IModuleManager
242+ /// @inheritdoc IModularAccount
249243 /// @notice May be validated by a global validation.
250244 function installValidation (
251245 ValidationConfig validationConfig ,
@@ -256,7 +250,7 @@ contract UpgradeableModularAccount is
256250 _installValidation (validationConfig, selectors, installData, hooks);
257251 }
258252
259- /// @inheritdoc IModuleManager
253+ /// @inheritdoc IModularAccount
260254 /// @notice May be validated by a global validation.
261255 function uninstallValidation (
262256 ModuleEntity validationFunction ,
@@ -651,15 +645,15 @@ contract UpgradeableModularAccount is
651645
652646 _checkIfValidationAppliesSelector (outerSelector, validationFunction, isGlobal);
653647
654- if (outerSelector == IStandardExecutor .execute.selector ) {
648+ if (outerSelector == IModularAccount .execute.selector ) {
655649 (address target ,,) = abi.decode (callData[4 :], (address , uint256 , bytes ));
656650
657651 if (target == address (this )) {
658652 // There is no point to call `execute` to recurse exactly once - this is equivalent to just having
659653 // the calldata as a top-level call.
660654 revert SelfCallRecursionDepthExceeded ();
661655 }
662- } else if (outerSelector == IStandardExecutor .executeBatch.selector ) {
656+ } else if (outerSelector == IModularAccount .executeBatch.selector ) {
663657 // executeBatch may be used to batch account actions together, by targetting the account itself.
664658 // If this is done, we must ensure all of the inner calls are allowed by the provided validation
665659 // function.
@@ -671,8 +665,8 @@ contract UpgradeableModularAccount is
671665 bytes4 nestedSelector = bytes4 (calls[i].data);
672666
673667 if (
674- nestedSelector == IStandardExecutor .execute.selector
675- || nestedSelector == IStandardExecutor .executeBatch.selector
668+ nestedSelector == IModularAccount .execute.selector
669+ || nestedSelector == IModularAccount .executeBatch.selector
676670 ) {
677671 // To prevent arbitrarily-deep recursive checking, we limit the depth of self-calls to one
678672 // for the purposes of batching.
0 commit comments