From 5b69346b2c2ad31ae324a7209b96d2c178f9f0f5 Mon Sep 17 00:00:00 2001 From: Jay Paik Date: Mon, 7 Oct 2024 17:28:07 -0400 Subject: [PATCH] refactor: organize files --- script/DeployAllowlistModule.s.sol | 2 +- src/account/AccountFactory.sol | 2 +- src/account/ModularAccountView.sol | 2 +- src/account/ModuleManagerInternals.sol | 14 +++++----- src/account/ReferenceModularAccount.sol | 8 +++--- src/account/SemiModularAccount.sol | 2 +- src/{helpers => libraries}/HookConfigLib.sol | 0 .../KnownSelectorsLib.sol} | 2 +- .../ModuleEntityLib.sol | 0 .../SparseCalldataSegmentLib.sol | 2 +- .../ValidationConfigLib.sol | 0 .../AllowlistModule.sol | 0 .../ERC20TokenLimitModule.sol | 8 +++--- .../NativeTokenLimitModule.sol | 10 +++---- test/account/AccountReturnData.t.sol | 2 +- .../AccountStorage.t.sol | 0 test/account/DirectCallsFromModule.t.sol | 6 ++--- test/account/GlobalValidationTest.t.sol | 2 +- test/account/ModularAccountView.t.sol | 4 +-- test/account/MultiValidation.t.sol | 4 +-- test/account/PerHookData.t.sol | 8 +++--- test/account/ReferenceModularAccount.t.sol | 4 +-- test/account/ReplaceModule.t.sol | 13 ++++------ test/account/SelfCallAuthorization.t.sol | 4 +-- test/account/ValidationIntersection.t.sol | 6 ++--- test/libraries/HookConfigLib.t.sol | 4 +-- ...Selectors.t.sol => KnowSelectorsLib.t.sol} | 10 +++---- test/libraries/ModuleEntityLib.t.sol | 2 +- test/libraries/SparseCalldataSegmentLib.t.sol | 2 +- test/libraries/ValidationConfigLib.t.sol | 4 +-- test/mocks/SingleSignerFactoryFixture.sol | 2 +- .../TokenReceiverModule.t.sol | 0 .../permissions}/AllowlistModule.t.sol | 16 ++++++------ .../permissions}/ERC20TokenLimitModule.t.sol | 26 +++++++++---------- .../permissions}/NativeTokenLimitModule.t.sol | 24 ++++++++--------- .../SingleSignerValidationModule.t.sol | 12 ++++----- test/script/DeployAllowlistModule.s.t.sol | 2 +- test/utils/AccountTestBase.sol | 2 +- test/utils/CustomValidationTestBase.sol | 4 +-- 39 files changed, 104 insertions(+), 111 deletions(-) rename src/{helpers => libraries}/HookConfigLib.sol (100%) rename src/{helpers/KnownSelectors.sol => libraries/KnownSelectorsLib.sol} (99%) rename src/{helpers => libraries}/ModuleEntityLib.sol (100%) rename src/{helpers => libraries}/SparseCalldataSegmentLib.sol (98%) rename src/{helpers => libraries}/ValidationConfigLib.sol (100%) rename src/modules/{permissionhooks => permissions}/AllowlistModule.sol (100%) rename src/modules/{ => permissions}/ERC20TokenLimitModule.sol (95%) rename src/modules/{ => permissions}/NativeTokenLimitModule.sol (94%) rename test/{libraries => account}/AccountStorage.t.sol (100%) rename test/libraries/{KnowSelectors.t.sol => KnowSelectorsLib.t.sol} (55%) rename test/{module => modules}/TokenReceiverModule.t.sol (100%) rename test/{module => modules/permissions}/AllowlistModule.t.sol (96%) rename test/{module => modules/permissions}/ERC20TokenLimitModule.t.sol (90%) rename test/{module => modules/permissions}/NativeTokenLimitModule.t.sol (90%) rename test/{module => modules/validation}/SingleSignerValidationModule.t.sol (92%) diff --git a/script/DeployAllowlistModule.s.sol b/script/DeployAllowlistModule.s.sol index f1e870ab..c897cf38 100644 --- a/script/DeployAllowlistModule.s.sol +++ b/script/DeployAllowlistModule.s.sol @@ -5,7 +5,7 @@ import {Script, console} from "forge-std/Script.sol"; import {Create2} from "@openzeppelin/contracts/utils/Create2.sol"; -import {AllowlistModule} from "../src/modules/permissionhooks/AllowlistModule.sol"; +import {AllowlistModule} from "../src/modules/permissions/AllowlistModule.sol"; contract DeployAllowlistModuleScript is Script { address public allowlistModule = vm.envOr("ALLOWLIST_MODULE", address(0)); diff --git a/src/account/AccountFactory.sol b/src/account/AccountFactory.sol index d56f92d8..d6796511 100644 --- a/src/account/AccountFactory.sol +++ b/src/account/AccountFactory.sol @@ -9,7 +9,7 @@ import {Create2} from "@openzeppelin/contracts/utils/Create2.sol"; import {ReferenceModularAccount} from "../account/ReferenceModularAccount.sol"; import {SemiModularAccount} from "../account/SemiModularAccount.sol"; -import {ValidationConfigLib} from "../helpers/ValidationConfigLib.sol"; +import {ValidationConfigLib} from "../libraries/ValidationConfigLib.sol"; import {LibClone} from "solady/utils/LibClone.sol"; diff --git a/src/account/ModularAccountView.sol b/src/account/ModularAccountView.sol index 3e0cf1df..fc73dd3d 100644 --- a/src/account/ModularAccountView.sol +++ b/src/account/ModularAccountView.sol @@ -5,9 +5,9 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeab import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; -import {HookConfigLib} from "../helpers/HookConfigLib.sol"; import {HookConfig, IModularAccount, ModuleEntity} from "../interfaces/IModularAccount.sol"; import {ExecutionDataView, IModularAccountView, ValidationDataView} from "../interfaces/IModularAccountView.sol"; +import {HookConfigLib} from "../libraries/HookConfigLib.sol"; import {ExecutionData, ValidationData, getAccountStorage, toHookConfig} from "./AccountStorage.sol"; abstract contract ModularAccountView is IModularAccountView { diff --git a/src/account/ModuleManagerInternals.sol b/src/account/ModuleManagerInternals.sol index ee6b10d8..b454b5b2 100644 --- a/src/account/ModuleManagerInternals.sol +++ b/src/account/ModuleManagerInternals.sol @@ -6,16 +6,16 @@ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet import {collectReturnData} from "../helpers/CollectReturnData.sol"; import {MAX_PRE_VALIDATION_HOOKS} from "../helpers/Constants.sol"; -import {HookConfigLib} from "../helpers/HookConfigLib.sol"; -import {KnownSelectors} from "../helpers/KnownSelectors.sol"; -import {ModuleEntityLib} from "../helpers/ModuleEntityLib.sol"; -import {ValidationConfigLib} from "../helpers/ValidationConfigLib.sol"; import {IExecutionHookModule} from "../interfaces/IExecutionHookModule.sol"; import {ExecutionManifest, ManifestExecutionHook} from "../interfaces/IExecutionModule.sol"; import {HookConfig, IModularAccount, ModuleEntity, ValidationConfig} from "../interfaces/IModularAccount.sol"; import {IModule} from "../interfaces/IModule.sol"; import {IValidationHookModule} from "../interfaces/IValidationHookModule.sol"; import {IValidationModule} from "../interfaces/IValidationModule.sol"; +import {HookConfigLib} from "../libraries/HookConfigLib.sol"; +import {KnownSelectorsLib} from "../libraries/KnownSelectorsLib.sol"; +import {ModuleEntityLib} from "../libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../libraries/ValidationConfigLib.sol"; import { AccountStorage, @@ -61,12 +61,12 @@ abstract contract ModuleManagerInternals is IModularAccount { // Make sure incoming execution function does not collide with any native functions (data are stored on the // account implementation contract) - if (KnownSelectors.isNativeFunction(selector)) { + if (KnownSelectorsLib.isNativeFunction(selector)) { revert NativeFunctionNotAllowed(selector); } // Make sure incoming execution function is not a function in IModule - if (KnownSelectors.isIModuleFunction(selector)) { + if (KnownSelectorsLib.isIModuleFunction(selector)) { revert IModuleFunctionNotAllowed(selector); } @@ -75,7 +75,7 @@ abstract contract ModuleManagerInternals is IModularAccount { // sneaking in a function with the same selector as e.g. // `validatePaymasterUserOp` and turning the account into their own // personal paymaster. - if (KnownSelectors.isErc4337Function(selector)) { + if (KnownSelectorsLib.isErc4337Function(selector)) { revert Erc4337FunctionNotAllowed(selector); } diff --git a/src/account/ReferenceModularAccount.sol b/src/account/ReferenceModularAccount.sol index 168cca44..88e18a7a 100644 --- a/src/account/ReferenceModularAccount.sol +++ b/src/account/ReferenceModularAccount.sol @@ -13,16 +13,16 @@ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet import {collectReturnData} from "../helpers/CollectReturnData.sol"; import {DIRECT_CALL_VALIDATION_ENTITYID} from "../helpers/Constants.sol"; -import {HookConfig, HookConfigLib} from "../helpers/HookConfigLib.sol"; -import {ModuleEntityLib} from "../helpers/ModuleEntityLib.sol"; -import {SparseCalldataSegmentLib} from "../helpers/SparseCalldataSegmentLib.sol"; -import {ValidationConfigLib} from "../helpers/ValidationConfigLib.sol"; import {_coalescePreValidation, _coalesceValidation} from "../helpers/ValidationResHelpers.sol"; import {IExecutionHookModule} from "../interfaces/IExecutionHookModule.sol"; import {ExecutionManifest} from "../interfaces/IExecutionModule.sol"; import {Call, IModularAccount, ModuleEntity, ValidationConfig} from "../interfaces/IModularAccount.sol"; import {IValidationHookModule} from "../interfaces/IValidationHookModule.sol"; import {IValidationModule} from "../interfaces/IValidationModule.sol"; +import {HookConfig, HookConfigLib} from "../libraries/HookConfigLib.sol"; +import {ModuleEntityLib} from "../libraries/ModuleEntityLib.sol"; +import {SparseCalldataSegmentLib} from "../libraries/SparseCalldataSegmentLib.sol"; +import {ValidationConfigLib} from "../libraries/ValidationConfigLib.sol"; import {AccountExecutor} from "./AccountExecutor.sol"; import {AccountStorage, getAccountStorage, toHookConfig, toSetValue} from "./AccountStorage.sol"; import {AccountStorageInitializable} from "./AccountStorageInitializable.sol"; diff --git a/src/account/SemiModularAccount.sol b/src/account/SemiModularAccount.sol index 8b93ac79..a72a3603 100644 --- a/src/account/SemiModularAccount.sol +++ b/src/account/SemiModularAccount.sol @@ -5,7 +5,7 @@ import {ReferenceModularAccount} from "./ReferenceModularAccount.sol"; import {IEntryPoint} from "@eth-infinitism/account-abstraction/interfaces/IEntryPoint.sol"; import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interfaces/PackedUserOperation.sol"; -import {ModuleEntityLib} from "../helpers/ModuleEntityLib.sol"; +import {ModuleEntityLib} from "../libraries/ModuleEntityLib.sol"; import {IModularAccount, ModuleEntity, ValidationConfig} from "../interfaces/IModularAccount.sol"; diff --git a/src/helpers/HookConfigLib.sol b/src/libraries/HookConfigLib.sol similarity index 100% rename from src/helpers/HookConfigLib.sol rename to src/libraries/HookConfigLib.sol diff --git a/src/helpers/KnownSelectors.sol b/src/libraries/KnownSelectorsLib.sol similarity index 99% rename from src/helpers/KnownSelectors.sol rename to src/libraries/KnownSelectorsLib.sol index d87430c7..48839ecb 100644 --- a/src/helpers/KnownSelectors.sol +++ b/src/libraries/KnownSelectorsLib.sol @@ -17,7 +17,7 @@ import {IValidationModule} from "../interfaces/IValidationModule.sol"; /// @dev Library to help to check if a selector is a know function selector of the modular account or ERC-4337 /// contract. -library KnownSelectors { +library KnownSelectorsLib { function isNativeFunction(bytes4 selector) internal pure returns (bool) { return // check against IAccount methods diff --git a/src/helpers/ModuleEntityLib.sol b/src/libraries/ModuleEntityLib.sol similarity index 100% rename from src/helpers/ModuleEntityLib.sol rename to src/libraries/ModuleEntityLib.sol diff --git a/src/helpers/SparseCalldataSegmentLib.sol b/src/libraries/SparseCalldataSegmentLib.sol similarity index 98% rename from src/helpers/SparseCalldataSegmentLib.sol rename to src/libraries/SparseCalldataSegmentLib.sol index 75b5854d..5c9becc8 100644 --- a/src/helpers/SparseCalldataSegmentLib.sol +++ b/src/libraries/SparseCalldataSegmentLib.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.20; -import {RESERVED_VALIDATION_DATA_INDEX} from "./Constants.sol"; +import {RESERVED_VALIDATION_DATA_INDEX} from "../helpers/Constants.sol"; /// @title Sparse Calldata Segment Library /// @notice Library for working with sparsely-packed calldata segments, identified with an index. diff --git a/src/helpers/ValidationConfigLib.sol b/src/libraries/ValidationConfigLib.sol similarity index 100% rename from src/helpers/ValidationConfigLib.sol rename to src/libraries/ValidationConfigLib.sol diff --git a/src/modules/permissionhooks/AllowlistModule.sol b/src/modules/permissions/AllowlistModule.sol similarity index 100% rename from src/modules/permissionhooks/AllowlistModule.sol rename to src/modules/permissions/AllowlistModule.sol diff --git a/src/modules/ERC20TokenLimitModule.sol b/src/modules/permissions/ERC20TokenLimitModule.sol similarity index 95% rename from src/modules/ERC20TokenLimitModule.sol rename to src/modules/permissions/ERC20TokenLimitModule.sol index 9966ffa9..f21f552e 100644 --- a/src/modules/ERC20TokenLimitModule.sol +++ b/src/modules/permissions/ERC20TokenLimitModule.sol @@ -5,11 +5,11 @@ import {UserOperationLib} from "@eth-infinitism/account-abstraction/core/UserOpe import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interfaces/PackedUserOperation.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {IExecutionHookModule} from "../interfaces/IExecutionHookModule.sol"; -import {Call, IModularAccount} from "../interfaces/IModularAccount.sol"; -import {IModule} from "../interfaces/IModule.sol"; +import {IExecutionHookModule} from "../../interfaces/IExecutionHookModule.sol"; +import {Call, IModularAccount} from "../../interfaces/IModularAccount.sol"; +import {IModule} from "../../interfaces/IModule.sol"; -import {BaseModule, IERC165} from "./BaseModule.sol"; +import {BaseModule, IERC165} from "../BaseModule.sol"; /// @title ERC20 Token Limit Module /// @author ERC-6900 Authors diff --git a/src/modules/NativeTokenLimitModule.sol b/src/modules/permissions/NativeTokenLimitModule.sol similarity index 94% rename from src/modules/NativeTokenLimitModule.sol rename to src/modules/permissions/NativeTokenLimitModule.sol index 5963a0af..b90d59fe 100644 --- a/src/modules/NativeTokenLimitModule.sol +++ b/src/modules/permissions/NativeTokenLimitModule.sol @@ -5,11 +5,11 @@ import {UserOperationLib} from "@eth-infinitism/account-abstraction/core/UserOpe import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interfaces/PackedUserOperation.sol"; import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; -import {IExecutionHookModule} from "../interfaces/IExecutionHookModule.sol"; -import {Call, IModularAccount} from "../interfaces/IModularAccount.sol"; -import {IModule} from "../interfaces/IModule.sol"; -import {IValidationHookModule} from "../interfaces/IValidationHookModule.sol"; -import {BaseModule, IERC165} from "./BaseModule.sol"; +import {IExecutionHookModule} from "../../interfaces/IExecutionHookModule.sol"; +import {Call, IModularAccount} from "../../interfaces/IModularAccount.sol"; +import {IModule} from "../../interfaces/IModule.sol"; +import {IValidationHookModule} from "../../interfaces/IValidationHookModule.sol"; +import {BaseModule, IERC165} from "../BaseModule.sol"; /// @title Native Token Limit Module /// @author ERC-6900 Authors diff --git a/test/account/AccountReturnData.t.sol b/test/account/AccountReturnData.t.sol index f4214872..1a19faab 100644 --- a/test/account/AccountReturnData.t.sol +++ b/test/account/AccountReturnData.t.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.20; import {DIRECT_CALL_VALIDATION_ENTITYID} from "../../src/helpers/Constants.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; import {Call} from "../../src/interfaces/IModularAccount.sol"; import {IModularAccount} from "../../src/interfaces/IModularAccount.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import { RegularResultContract, diff --git a/test/libraries/AccountStorage.t.sol b/test/account/AccountStorage.t.sol similarity index 100% rename from test/libraries/AccountStorage.t.sol rename to test/account/AccountStorage.t.sol diff --git a/test/account/DirectCallsFromModule.t.sol b/test/account/DirectCallsFromModule.t.sol index c8a5d4df..f04febe4 100644 --- a/test/account/DirectCallsFromModule.t.sol +++ b/test/account/DirectCallsFromModule.t.sol @@ -3,10 +3,10 @@ pragma solidity ^0.8.20; import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {ModuleEntity, ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {ValidationConfig, ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; import {Call, IModularAccount} from "../../src/interfaces/IModularAccount.sol"; +import {HookConfigLib} from "../../src/libraries/HookConfigLib.sol"; +import {ModuleEntity, ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfig, ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import {DirectCallModule} from "../mocks/modules/DirectCallModule.sol"; import {AccountTestBase} from "../utils/AccountTestBase.sol"; diff --git a/test/account/GlobalValidationTest.t.sol b/test/account/GlobalValidationTest.t.sol index 916ee791..aa6b496d 100644 --- a/test/account/GlobalValidationTest.t.sol +++ b/test/account/GlobalValidationTest.t.sol @@ -5,7 +5,7 @@ import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interface import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; +import {ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; import {AccountTestBase} from "../utils/AccountTestBase.sol"; diff --git a/test/account/ModularAccountView.t.sol b/test/account/ModularAccountView.t.sol index 3c0a2805..436f439e 100644 --- a/test/account/ModularAccountView.t.sol +++ b/test/account/ModularAccountView.t.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {ModuleEntity, ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; +import {HookConfigLib} from "../../src/libraries/HookConfigLib.sol"; +import {ModuleEntity, ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; import {HookConfig, IModularAccount} from "../../src/interfaces/IModularAccount.sol"; import {ExecutionDataView, ValidationDataView} from "../../src/interfaces/IModularAccountView.sol"; diff --git a/test/account/MultiValidation.t.sol b/test/account/MultiValidation.t.sol index 265eea82..daed4c93 100644 --- a/test/account/MultiValidation.t.sol +++ b/test/account/MultiValidation.t.sol @@ -9,8 +9,8 @@ import {IEntryPoint} from "@eth-infinitism/account-abstraction/interfaces/IEntry import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; +import {ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import {IModularAccount, ModuleEntity} from "../../src/interfaces/IModularAccount.sol"; import {SingleSignerValidationModule} from "../../src/modules/validation/SingleSignerValidationModule.sol"; diff --git a/test/account/PerHookData.t.sol b/test/account/PerHookData.t.sol index b6a47620..ff11b6db 100644 --- a/test/account/PerHookData.t.sol +++ b/test/account/PerHookData.t.sol @@ -6,10 +6,10 @@ import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interface import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {ModuleEntity, ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {SparseCalldataSegmentLib} from "../../src/helpers/SparseCalldataSegmentLib.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; +import {HookConfigLib} from "../../src/libraries/HookConfigLib.sol"; +import {ModuleEntity, ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; +import {SparseCalldataSegmentLib} from "../../src/libraries/SparseCalldataSegmentLib.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import {Counter} from "../mocks/Counter.sol"; import {MockAccessControlHookModule} from "../mocks/modules/MockAccessControlHookModule.sol"; diff --git a/test/account/ReferenceModularAccount.t.sol b/test/account/ReferenceModularAccount.t.sol index d014be8b..6a916de9 100644 --- a/test/account/ReferenceModularAccount.t.sol +++ b/test/account/ReferenceModularAccount.t.sol @@ -12,11 +12,11 @@ import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/Messa import {ModuleManagerInternals} from "../../src/account/ModuleManagerInternals.sol"; import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; import {SemiModularAccount} from "../../src/account/SemiModularAccount.sol"; -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; import {ExecutionManifest} from "../../src/interfaces/IExecutionModule.sol"; import {Call} from "../../src/interfaces/IModularAccount.sol"; import {ExecutionDataView} from "../../src/interfaces/IModularAccountView.sol"; +import {ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import {TokenReceiverModule} from "../../src/modules/TokenReceiverModule.sol"; import {SingleSignerValidationModule} from "../../src/modules/validation/SingleSignerValidationModule.sol"; diff --git a/test/account/ReplaceModule.t.sol b/test/account/ReplaceModule.t.sol index 166b5a32..0f4a098b 100644 --- a/test/account/ReplaceModule.t.sol +++ b/test/account/ReplaceModule.t.sol @@ -2,22 +2,19 @@ pragma solidity ^0.8.20; import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; - -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; - -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; +import {IExecutionHookModule} from "../../src/interfaces/IExecutionHookModule.sol"; import { ExecutionManifest, ManifestExecutionFunction, ManifestExecutionHook } from "../../src/interfaces/IExecutionModule.sol"; - -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {IExecutionHookModule} from "../../src/interfaces/IExecutionHookModule.sol"; - import {Call, IModularAccount, ModuleEntity} from "../../src/interfaces/IModularAccount.sol"; import {IValidationHookModule} from "../../src/interfaces/IValidationHookModule.sol"; +import {HookConfigLib} from "../../src/libraries/HookConfigLib.sol"; +import {ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import {SingleSignerValidationModule} from "../../src/modules/validation/SingleSignerValidationModule.sol"; + import {MockModule} from "../mocks/MockModule.sol"; import {AccountTestBase} from "../utils/AccountTestBase.sol"; diff --git a/test/account/SelfCallAuthorization.t.sol b/test/account/SelfCallAuthorization.t.sol index ca0dfd71..af20a017 100644 --- a/test/account/SelfCallAuthorization.t.sol +++ b/test/account/SelfCallAuthorization.t.sol @@ -7,9 +7,9 @@ import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interface import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {ModuleEntity, ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; import {Call, IModularAccount} from "../../src/interfaces/IModularAccount.sol"; +import {ModuleEntity, ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import {ComprehensiveModule} from "../mocks/modules/ComprehensiveModule.sol"; import {AccountTestBase} from "../utils/AccountTestBase.sol"; diff --git a/test/account/ValidationIntersection.t.sol b/test/account/ValidationIntersection.t.sol index aa297e99..d42bfae7 100644 --- a/test/account/ValidationIntersection.t.sol +++ b/test/account/ValidationIntersection.t.sol @@ -5,9 +5,9 @@ import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interface import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {ModuleEntity, ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; +import {HookConfigLib} from "../../src/libraries/HookConfigLib.sol"; +import {ModuleEntity, ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import { MockBaseUserOpValidationModule, diff --git a/test/libraries/HookConfigLib.t.sol b/test/libraries/HookConfigLib.t.sol index a6f41a37..303526bf 100644 --- a/test/libraries/HookConfigLib.t.sol +++ b/test/libraries/HookConfigLib.t.sol @@ -3,9 +3,9 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; import {HookConfig, ModuleEntity} from "../../src/interfaces/IModularAccount.sol"; +import {HookConfigLib} from "../../src/libraries/HookConfigLib.sol"; +import {ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; contract HookConfigLibTest is Test { using ModuleEntityLib for ModuleEntity; diff --git a/test/libraries/KnowSelectors.t.sol b/test/libraries/KnowSelectorsLib.t.sol similarity index 55% rename from test/libraries/KnowSelectors.t.sol rename to test/libraries/KnowSelectorsLib.t.sol index cb7e630b..ac53a394 100644 --- a/test/libraries/KnowSelectors.t.sol +++ b/test/libraries/KnowSelectorsLib.t.sol @@ -5,19 +5,19 @@ import {IAccount} from "@eth-infinitism/account-abstraction/interfaces/IAccount. import {IPaymaster} from "@eth-infinitism/account-abstraction/interfaces/IPaymaster.sol"; import {Test} from "forge-std/Test.sol"; -import {KnownSelectors} from "../../src/helpers/KnownSelectors.sol"; import {IModule} from "../../src/interfaces/IModule.sol"; +import {KnownSelectorsLib} from "../../src/libraries/KnownSelectorsLib.sol"; -contract KnownSelectorsTest is Test { +contract KnownSelectorsLibTest is Test { function test_isNativeFunction() public { - assertTrue(KnownSelectors.isNativeFunction(IAccount.validateUserOp.selector)); + assertTrue(KnownSelectorsLib.isNativeFunction(IAccount.validateUserOp.selector)); } function test_isErc4337Function() public { - assertTrue(KnownSelectors.isErc4337Function(IPaymaster.validatePaymasterUserOp.selector)); + assertTrue(KnownSelectorsLib.isErc4337Function(IPaymaster.validatePaymasterUserOp.selector)); } function test_isIModuleFunction() public { - assertTrue(KnownSelectors.isIModuleFunction(IModule.moduleId.selector)); + assertTrue(KnownSelectorsLib.isIModuleFunction(IModule.moduleId.selector)); } } diff --git a/test/libraries/ModuleEntityLib.t.sol b/test/libraries/ModuleEntityLib.t.sol index 8a0f9395..a52f6458 100644 --- a/test/libraries/ModuleEntityLib.t.sol +++ b/test/libraries/ModuleEntityLib.t.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; import {ModuleEntity} from "../../src/interfaces/IModularAccount.sol"; +import {ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; contract ModuleEntityLibTest is Test { using ModuleEntityLib for ModuleEntity; diff --git a/test/libraries/SparseCalldataSegmentLib.t.sol b/test/libraries/SparseCalldataSegmentLib.t.sol index 68a485bc..9781c656 100644 --- a/test/libraries/SparseCalldataSegmentLib.t.sol +++ b/test/libraries/SparseCalldataSegmentLib.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {SparseCalldataSegmentLib} from "../../src/helpers/SparseCalldataSegmentLib.sol"; +import {SparseCalldataSegmentLib} from "../../src/libraries/SparseCalldataSegmentLib.sol"; contract SparseCalldataSegmentLibTest is Test { using SparseCalldataSegmentLib for bytes; diff --git a/test/libraries/ValidationConfigLib.t.sol b/test/libraries/ValidationConfigLib.t.sol index 7127d94d..36862421 100644 --- a/test/libraries/ValidationConfigLib.t.sol +++ b/test/libraries/ValidationConfigLib.t.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {ModuleEntity, ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {ValidationConfig, ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; +import {ModuleEntity, ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfig, ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; contract ValidationConfigLibTest is Test { using ModuleEntityLib for ModuleEntity; diff --git a/test/mocks/SingleSignerFactoryFixture.sol b/test/mocks/SingleSignerFactoryFixture.sol index a54f15f6..e15fa776 100644 --- a/test/mocks/SingleSignerFactoryFixture.sol +++ b/test/mocks/SingleSignerFactoryFixture.sol @@ -6,7 +6,7 @@ import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.s import {Create2} from "@openzeppelin/contracts/utils/Create2.sol"; import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import {SingleSignerValidationModule} from "../../src/modules/validation/SingleSignerValidationModule.sol"; import {OptimizedTest} from "../utils/OptimizedTest.sol"; diff --git a/test/module/TokenReceiverModule.t.sol b/test/modules/TokenReceiverModule.t.sol similarity index 100% rename from test/module/TokenReceiverModule.t.sol rename to test/modules/TokenReceiverModule.t.sol diff --git a/test/module/AllowlistModule.t.sol b/test/modules/permissions/AllowlistModule.t.sol similarity index 96% rename from test/module/AllowlistModule.t.sol rename to test/modules/permissions/AllowlistModule.t.sol index fc6a2db3..5c4dd211 100644 --- a/test/module/AllowlistModule.t.sol +++ b/test/modules/permissions/AllowlistModule.t.sol @@ -3,14 +3,14 @@ pragma solidity ^0.8.20; import {IEntryPoint} from "@eth-infinitism/account-abstraction/interfaces/IEntryPoint.sol"; -import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {ModuleEntity, ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {Call} from "../../src/interfaces/IModularAccount.sol"; -import {AllowlistModule} from "../../src/modules/permissionhooks/AllowlistModule.sol"; - -import {Counter} from "../mocks/Counter.sol"; -import {CustomValidationTestBase} from "../utils/CustomValidationTestBase.sol"; +import {ReferenceModularAccount} from "../../../src/account/ReferenceModularAccount.sol"; +import {Call} from "../../../src/interfaces/IModularAccount.sol"; +import {HookConfigLib} from "../../../src/libraries/HookConfigLib.sol"; +import {ModuleEntity, ModuleEntityLib} from "../../../src/libraries/ModuleEntityLib.sol"; +import {AllowlistModule} from "../../../src/modules/permissions/AllowlistModule.sol"; + +import {Counter} from "../../mocks/Counter.sol"; +import {CustomValidationTestBase} from "../../utils/CustomValidationTestBase.sol"; contract AllowlistModuleTest is CustomValidationTestBase { AllowlistModule public allowlistModule; diff --git a/test/module/ERC20TokenLimitModule.t.sol b/test/modules/permissions/ERC20TokenLimitModule.t.sol similarity index 90% rename from test/module/ERC20TokenLimitModule.t.sol rename to test/modules/permissions/ERC20TokenLimitModule.t.sol index d903cd84..0664af19 100644 --- a/test/module/ERC20TokenLimitModule.t.sol +++ b/test/modules/permissions/ERC20TokenLimitModule.t.sol @@ -1,23 +1,21 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.20; -import {MockERC20} from "../mocks/MockERC20.sol"; +import {MockERC20} from "../../mocks/MockERC20.sol"; import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interfaces/PackedUserOperation.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {ModuleEntity} from "../../src/helpers/ModuleEntityLib.sol"; - -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; - -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; -import {ExecutionManifest} from "../../src/interfaces/IExecutionModule.sol"; -import {Call, IModularAccount} from "../../src/interfaces/IModularAccount.sol"; -import {ERC20TokenLimitModule} from "../../src/modules/ERC20TokenLimitModule.sol"; -import {MockModule} from "../mocks/MockModule.sol"; - -import {AccountTestBase} from "../utils/AccountTestBase.sol"; +import {ReferenceModularAccount} from "../../../src/account/ReferenceModularAccount.sol"; +import {ExecutionManifest} from "../../../src/interfaces/IExecutionModule.sol"; +import {Call, IModularAccount} from "../../../src/interfaces/IModularAccount.sol"; +import {HookConfigLib} from "../../../src/libraries/HookConfigLib.sol"; +import {ModuleEntity} from "../../../src/libraries/ModuleEntityLib.sol"; +import {ModuleEntityLib} from "../../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../../src/libraries/ValidationConfigLib.sol"; +import {ERC20TokenLimitModule} from "../../../src/modules/permissions/ERC20TokenLimitModule.sol"; + +import {MockModule} from "../../mocks/MockModule.sol"; +import {AccountTestBase} from "../../utils/AccountTestBase.sol"; contract ERC20TokenLimitModuleTest is AccountTestBase { address public recipient = address(1); diff --git a/test/module/NativeTokenLimitModule.t.sol b/test/modules/permissions/NativeTokenLimitModule.t.sol similarity index 90% rename from test/module/NativeTokenLimitModule.t.sol rename to test/modules/permissions/NativeTokenLimitModule.t.sol index c4bcf927..ef56f8d0 100644 --- a/test/module/NativeTokenLimitModule.t.sol +++ b/test/modules/permissions/NativeTokenLimitModule.t.sol @@ -3,19 +3,17 @@ pragma solidity ^0.8.20; import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interfaces/PackedUserOperation.sol"; -import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {ModuleEntity} from "../../src/helpers/ModuleEntityLib.sol"; - -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; - -import {HookConfigLib} from "../../src/helpers/HookConfigLib.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; -import {ExecutionManifest} from "../../src/interfaces/IExecutionModule.sol"; -import {Call, HookConfig, IModularAccount} from "../../src/interfaces/IModularAccount.sol"; -import {NativeTokenLimitModule} from "../../src/modules/NativeTokenLimitModule.sol"; -import {MockModule} from "../mocks/MockModule.sol"; - -import {AccountTestBase} from "../utils/AccountTestBase.sol"; +import {ReferenceModularAccount} from "../../../src/account/ReferenceModularAccount.sol"; +import {ExecutionManifest} from "../../../src/interfaces/IExecutionModule.sol"; +import {Call, HookConfig, IModularAccount} from "../../../src/interfaces/IModularAccount.sol"; +import {HookConfigLib} from "../../../src/libraries/HookConfigLib.sol"; +import {ModuleEntity} from "../../../src/libraries/ModuleEntityLib.sol"; +import {ModuleEntityLib} from "../../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../../src/libraries/ValidationConfigLib.sol"; +import {NativeTokenLimitModule} from "../../../src/modules/permissions/NativeTokenLimitModule.sol"; + +import {MockModule} from "../../mocks/MockModule.sol"; +import {AccountTestBase} from "../../utils/AccountTestBase.sol"; contract NativeTokenLimitModuleTest is AccountTestBase { address public recipient = address(1); diff --git a/test/module/SingleSignerValidationModule.t.sol b/test/modules/validation/SingleSignerValidationModule.t.sol similarity index 92% rename from test/module/SingleSignerValidationModule.t.sol rename to test/modules/validation/SingleSignerValidationModule.t.sol index e4278127..2e13a328 100644 --- a/test/module/SingleSignerValidationModule.t.sol +++ b/test/modules/validation/SingleSignerValidationModule.t.sol @@ -4,13 +4,13 @@ pragma solidity ^0.8.20; import {PackedUserOperation} from "@eth-infinitism/account-abstraction/interfaces/PackedUserOperation.sol"; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; -import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; +import {ReferenceModularAccount} from "../../../src/account/ReferenceModularAccount.sol"; +import {ModuleEntityLib} from "../../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../../src/libraries/ValidationConfigLib.sol"; -import {ContractOwner} from "../mocks/ContractOwner.sol"; -import {AccountTestBase} from "../utils/AccountTestBase.sol"; -import {TEST_DEFAULT_VALIDATION_ENTITY_ID} from "../utils/TestConstants.sol"; +import {ContractOwner} from "../../mocks/ContractOwner.sol"; +import {AccountTestBase} from "../../utils/AccountTestBase.sol"; +import {TEST_DEFAULT_VALIDATION_ENTITY_ID} from "../../utils/TestConstants.sol"; contract SingleSignerValidationModuleTest is AccountTestBase { using MessageHashUtils for bytes32; diff --git a/test/script/DeployAllowlistModule.s.t.sol b/test/script/DeployAllowlistModule.s.t.sol index 16c3ac4e..f8a7b5d5 100644 --- a/test/script/DeployAllowlistModule.s.t.sol +++ b/test/script/DeployAllowlistModule.s.t.sol @@ -7,7 +7,7 @@ import {Create2} from "@openzeppelin/contracts/utils/Create2.sol"; import {DeployAllowlistModuleScript} from "../../script/DeployAllowlistModule.s.sol"; -import {AllowlistModule} from "../../src/modules/permissionhooks/AllowlistModule.sol"; +import {AllowlistModule} from "../../src/modules/permissions/AllowlistModule.sol"; contract DeployAllowlistModuleTest is Test { DeployAllowlistModuleScript internal _deployScript; diff --git a/test/utils/AccountTestBase.sol b/test/utils/AccountTestBase.sol index b6253311..d35473f8 100644 --- a/test/utils/AccountTestBase.sol +++ b/test/utils/AccountTestBase.sol @@ -7,8 +7,8 @@ import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/Messa import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; import {SemiModularAccount} from "../../src/account/SemiModularAccount.sol"; -import {ModuleEntity, ModuleEntityLib} from "../../src/helpers/ModuleEntityLib.sol"; import {Call, IModularAccount} from "../../src/interfaces/IModularAccount.sol"; +import {ModuleEntity, ModuleEntityLib} from "../../src/libraries/ModuleEntityLib.sol"; import {SingleSignerValidationModule} from "../../src/modules/validation/SingleSignerValidationModule.sol"; import {OptimizedTest} from "./OptimizedTest.sol"; diff --git a/test/utils/CustomValidationTestBase.sol b/test/utils/CustomValidationTestBase.sol index f0b1f309..936f1778 100644 --- a/test/utils/CustomValidationTestBase.sol +++ b/test/utils/CustomValidationTestBase.sol @@ -4,8 +4,8 @@ pragma solidity ^0.8.20; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {ReferenceModularAccount} from "../../src/account/ReferenceModularAccount.sol"; -import {ModuleEntity} from "../../src/helpers/ModuleEntityLib.sol"; -import {ValidationConfigLib} from "../../src/helpers/ValidationConfigLib.sol"; +import {ModuleEntity} from "../../src/libraries/ModuleEntityLib.sol"; +import {ValidationConfigLib} from "../../src/libraries/ValidationConfigLib.sol"; import {AccountTestBase} from "./AccountTestBase.sol";