diff --git a/contracts/access/manager/AccessManaged.sol b/contracts/access/manager/AccessManaged.sol index 352a54def..c1cfee86d 100644 --- a/contracts/access/manager/AccessManaged.sol +++ b/contracts/access/manager/AccessManaged.sol @@ -3,7 +3,6 @@ pragma solidity ^0.8.20; -import {IAuthority} from "./IAuthority.sol"; import {AuthorityUtils} from "./AuthorityUtils.sol"; import {IAccessManager} from "./IAccessManager.sol"; import {IAccessManaged} from "./IAccessManaged.sol"; diff --git a/contracts/access/manager/IAccessManager.sol b/contracts/access/manager/IAccessManager.sol index ebcd1d614..4b89ddb3c 100644 --- a/contracts/access/manager/IAccessManager.sol +++ b/contracts/access/manager/IAccessManager.sol @@ -3,8 +3,6 @@ pragma solidity ^0.8.20; -import {Time} from "../../utils/types/Time.sol"; - interface IAccessManager { /** * @dev A delayed operation was scheduled. diff --git a/contracts/governance/extensions/GovernorSuperQuorum.sol b/contracts/governance/extensions/GovernorSuperQuorum.sol index f10e8e13f..16d4004f1 100644 --- a/contracts/governance/extensions/GovernorSuperQuorum.sol +++ b/contracts/governance/extensions/GovernorSuperQuorum.sol @@ -3,8 +3,6 @@ pragma solidity ^0.8.20; import {Governor} from "../Governor.sol"; -import {SafeCast} from "../../utils/math/SafeCast.sol"; -import {Checkpoints} from "../../utils/structs/Checkpoints.sol"; /** * @dev Extension of {Governor} with a super quorum. Proposals that meet the super quorum (and have a majority of for diff --git a/contracts/governance/extensions/GovernorTimelockControl.sol b/contracts/governance/extensions/GovernorTimelockControl.sol index 5158fe958..53613f4bd 100644 --- a/contracts/governance/extensions/GovernorTimelockControl.sol +++ b/contracts/governance/extensions/GovernorTimelockControl.sol @@ -5,7 +5,6 @@ pragma solidity ^0.8.20; import {IGovernor, Governor} from "../Governor.sol"; import {TimelockController} from "../TimelockController.sol"; -import {IERC165} from "../../interfaces/IERC165.sol"; import {SafeCast} from "../../utils/math/SafeCast.sol"; /** diff --git a/contracts/governance/extensions/GovernorVotes.sol b/contracts/governance/extensions/GovernorVotes.sol index 9aeaf1214..748115433 100644 --- a/contracts/governance/extensions/GovernorVotes.sol +++ b/contracts/governance/extensions/GovernorVotes.sol @@ -6,7 +6,6 @@ pragma solidity ^0.8.20; import {Governor} from "../Governor.sol"; import {IVotes} from "../utils/IVotes.sol"; import {IERC5805} from "../../interfaces/IERC5805.sol"; -import {SafeCast} from "../../utils/math/SafeCast.sol"; import {Time} from "../../utils/types/Time.sol"; /** diff --git a/contracts/mocks/AccessManagerMock.sol b/contracts/mocks/AccessManagerMock.sol index 952c76119..4b5be350f 100644 --- a/contracts/mocks/AccessManagerMock.sol +++ b/contracts/mocks/AccessManagerMock.sol @@ -3,7 +3,6 @@ pragma solidity ^0.8.20; import {AccessManager} from "../access/manager/AccessManager.sol"; -import {StorageSlot} from "../utils/StorageSlot.sol"; contract AccessManagerMock is AccessManager { event CalledRestricted(address caller); diff --git a/contracts/mocks/docs/governance/MyGovernor.sol b/contracts/mocks/docs/governance/MyGovernor.sol index d898fc715..339f48d39 100644 --- a/contracts/mocks/docs/governance/MyGovernor.sol +++ b/contracts/mocks/docs/governance/MyGovernor.sol @@ -1,14 +1,13 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; -import {IGovernor, Governor} from "../../../governance/Governor.sol"; +import {Governor} from "../../../governance/Governor.sol"; import {GovernorCountingSimple} from "../../../governance/extensions/GovernorCountingSimple.sol"; import {GovernorVotes} from "../../../governance/extensions/GovernorVotes.sol"; import {GovernorVotesQuorumFraction} from "../../../governance/extensions/GovernorVotesQuorumFraction.sol"; import {GovernorTimelockControl} from "../../../governance/extensions/GovernorTimelockControl.sol"; import {TimelockController} from "../../../governance/TimelockController.sol"; import {IVotes} from "../../../governance/utils/IVotes.sol"; -import {IERC165} from "../../../interfaces/IERC165.sol"; contract MyGovernor is Governor, diff --git a/contracts/mocks/governance/GovernorCountingOverridableMock.sol b/contracts/mocks/governance/GovernorCountingOverridableMock.sol index bae09d933..96d8f15fe 100644 --- a/contracts/mocks/governance/GovernorCountingOverridableMock.sol +++ b/contracts/mocks/governance/GovernorCountingOverridableMock.sol @@ -5,7 +5,7 @@ pragma solidity ^0.8.20; import {Governor} from "../../governance/Governor.sol"; import {GovernorSettings} from "../../governance/extensions/GovernorSettings.sol"; import {GovernorVotesQuorumFraction} from "../../governance/extensions/GovernorVotesQuorumFraction.sol"; -import {GovernorCountingOverridable, VotesExtended} from "../../governance/extensions/GovernorCountingOverridable.sol"; +import {GovernorCountingOverridable} from "../../governance/extensions/GovernorCountingOverridable.sol"; abstract contract GovernorCountingOverridableMock is GovernorSettings, diff --git a/contracts/mocks/governance/GovernorStorageMock.sol b/contracts/mocks/governance/GovernorStorageMock.sol index 26e0e10b5..48d8af308 100644 --- a/contracts/mocks/governance/GovernorStorageMock.sol +++ b/contracts/mocks/governance/GovernorStorageMock.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import {IGovernor, Governor} from "../../governance/Governor.sol"; +import {Governor} from "../../governance/Governor.sol"; import {GovernorTimelockControl} from "../../governance/extensions/GovernorTimelockControl.sol"; import {GovernorSettings} from "../../governance/extensions/GovernorSettings.sol"; import {GovernorCountingSimple} from "../../governance/extensions/GovernorCountingSimple.sol"; diff --git a/contracts/mocks/governance/GovernorTimelockAccessMock.sol b/contracts/mocks/governance/GovernorTimelockAccessMock.sol index 3d1bbeeef..f1b81b6ca 100644 --- a/contracts/mocks/governance/GovernorTimelockAccessMock.sol +++ b/contracts/mocks/governance/GovernorTimelockAccessMock.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import {IGovernor, Governor} from "../../governance/Governor.sol"; +import {Governor} from "../../governance/Governor.sol"; import {GovernorTimelockAccess} from "../../governance/extensions/GovernorTimelockAccess.sol"; import {GovernorSettings} from "../../governance/extensions/GovernorSettings.sol"; import {GovernorCountingSimple} from "../../governance/extensions/GovernorCountingSimple.sol"; diff --git a/contracts/mocks/governance/GovernorTimelockCompoundMock.sol b/contracts/mocks/governance/GovernorTimelockCompoundMock.sol index 03ef62510..98c2baf71 100644 --- a/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +++ b/contracts/mocks/governance/GovernorTimelockCompoundMock.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import {IGovernor, Governor} from "../../governance/Governor.sol"; +import {Governor} from "../../governance/Governor.sol"; import {GovernorTimelockCompound} from "../../governance/extensions/GovernorTimelockCompound.sol"; import {GovernorSettings} from "../../governance/extensions/GovernorSettings.sol"; import {GovernorCountingSimple} from "../../governance/extensions/GovernorCountingSimple.sol"; diff --git a/contracts/mocks/governance/GovernorTimelockControlMock.sol b/contracts/mocks/governance/GovernorTimelockControlMock.sol index edaccc0b7..69f9402d1 100644 --- a/contracts/mocks/governance/GovernorTimelockControlMock.sol +++ b/contracts/mocks/governance/GovernorTimelockControlMock.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; -import {IGovernor, Governor} from "../../governance/Governor.sol"; +import {Governor} from "../../governance/Governor.sol"; import {GovernorTimelockControl} from "../../governance/extensions/GovernorTimelockControl.sol"; import {GovernorSettings} from "../../governance/extensions/GovernorSettings.sol"; import {GovernorCountingSimple} from "../../governance/extensions/GovernorCountingSimple.sol"; diff --git a/contracts/mocks/token/ERC1363ForceApproveMock.sol b/contracts/mocks/token/ERC1363ForceApproveMock.sol index d911a0ace..6bd957e31 100644 --- a/contracts/mocks/token/ERC1363ForceApproveMock.sol +++ b/contracts/mocks/token/ERC1363ForceApproveMock.sol @@ -2,8 +2,7 @@ pragma solidity ^0.8.20; -import {IERC20} from "../../interfaces/IERC20.sol"; -import {ERC20, ERC1363} from "../../token/ERC20/extensions/ERC1363.sol"; +import {ERC1363} from "../../token/ERC20/extensions/ERC1363.sol"; // contract that replicate USDT approval behavior in approveAndCall abstract contract ERC1363ForceApproveMock is ERC1363 { diff --git a/contracts/mocks/token/ERC1363NoReturnMock.sol b/contracts/mocks/token/ERC1363NoReturnMock.sol index 748d23413..45136edcd 100644 --- a/contracts/mocks/token/ERC1363NoReturnMock.sol +++ b/contracts/mocks/token/ERC1363NoReturnMock.sol @@ -2,7 +2,6 @@ pragma solidity ^0.8.20; -import {IERC20, ERC20} from "../../token/ERC20/ERC20.sol"; import {ERC1363} from "../../token/ERC20/extensions/ERC1363.sol"; abstract contract ERC1363NoReturnMock is ERC1363 { diff --git a/solhint.config.js b/solhint.config.js index c7baa22d1..07e75264b 100644 --- a/solhint.config.js +++ b/solhint.config.js @@ -5,6 +5,7 @@ const rules = [ 'const-name-snakecase', 'contract-name-capwords', 'event-name-capwords', + 'max-states-count', 'explicit-types', 'func-name-mixedcase', 'func-param-name-mixedcase', @@ -17,6 +18,8 @@ const rules = [ 'use-forbidden-name', 'var-name-mixedcase', 'visibility-modifier-order', + 'interface-starts-with-i', + 'duplicated-imports', ...customRules.map(r => `openzeppelin/${r.ruleId}`), ]; diff --git a/test/utils/cryptography/P256.t.sol b/test/utils/cryptography/P256.t.sol index 768f9087f..ee11b43ed 100644 --- a/test/utils/cryptography/P256.t.sol +++ b/test/utils/cryptography/P256.t.sol @@ -5,7 +5,6 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; import {P256} from "@openzeppelin/contracts/utils/cryptography/P256.sol"; -import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; import {Errors} from "@openzeppelin/contracts/utils/Errors.sol"; contract P256Test is Test {