Browse Source

Minimize Solidity pragma versions for interface compatibility (#5727)

Arr00 4 months ago
parent
commit
13d9086d0b
65 changed files with 66 additions and 66 deletions
  1. 1 1
      contracts/access/IAccessControl.sol
  2. 1 1
      contracts/access/extensions/IAccessControlDefaultAdminRules.sol
  3. 1 1
      contracts/access/extensions/IAccessControlEnumerable.sol
  4. 1 1
      contracts/access/manager/IAccessManaged.sol
  5. 1 1
      contracts/access/manager/IAccessManager.sol
  6. 1 1
      contracts/access/manager/IAuthority.sol
  7. 1 1
      contracts/account/extensions/AccountERC7579.sol
  8. 1 1
      contracts/account/extensions/AccountERC7579Hooked.sol
  9. 1 1
      contracts/governance/IGovernor.sol
  10. 1 1
      contracts/governance/utils/IVotes.sol
  11. 1 1
      contracts/interfaces/IERC1155.sol
  12. 1 1
      contracts/interfaces/IERC1155MetadataURI.sol
  13. 1 1
      contracts/interfaces/IERC1155Receiver.sol
  14. 2 2
      contracts/interfaces/IERC1271.sol
  15. 1 1
      contracts/interfaces/IERC1363.sol
  16. 1 1
      contracts/interfaces/IERC1363Receiver.sol
  17. 1 1
      contracts/interfaces/IERC1363Spender.sol
  18. 1 1
      contracts/interfaces/IERC165.sol
  19. 1 1
      contracts/interfaces/IERC1820Implementer.sol
  20. 1 1
      contracts/interfaces/IERC1820Registry.sol
  21. 1 1
      contracts/interfaces/IERC1967.sol
  22. 1 1
      contracts/interfaces/IERC20.sol
  23. 1 1
      contracts/interfaces/IERC20Metadata.sol
  24. 1 1
      contracts/interfaces/IERC2309.sol
  25. 1 1
      contracts/interfaces/IERC2612.sol
  26. 1 1
      contracts/interfaces/IERC2981.sol
  27. 1 1
      contracts/interfaces/IERC3156.sol
  28. 1 1
      contracts/interfaces/IERC3156FlashBorrower.sol
  29. 1 1
      contracts/interfaces/IERC3156FlashLender.sol
  30. 1 1
      contracts/interfaces/IERC4626.sol
  31. 1 1
      contracts/interfaces/IERC4906.sol
  32. 1 1
      contracts/interfaces/IERC5267.sol
  33. 1 1
      contracts/interfaces/IERC5313.sol
  34. 1 1
      contracts/interfaces/IERC5805.sol
  35. 1 1
      contracts/interfaces/IERC6372.sol
  36. 1 1
      contracts/interfaces/IERC721.sol
  37. 1 1
      contracts/interfaces/IERC721Enumerable.sol
  38. 1 1
      contracts/interfaces/IERC721Metadata.sol
  39. 1 1
      contracts/interfaces/IERC721Receiver.sol
  40. 1 1
      contracts/interfaces/IERC777.sol
  41. 1 1
      contracts/interfaces/IERC777Recipient.sol
  42. 1 1
      contracts/interfaces/IERC777Sender.sol
  43. 1 1
      contracts/interfaces/IERC7821.sol
  44. 1 1
      contracts/interfaces/IERC7913.sol
  45. 1 1
      contracts/interfaces/draft-IERC1822.sol
  46. 1 1
      contracts/interfaces/draft-IERC4337.sol
  47. 1 1
      contracts/interfaces/draft-IERC6093.sol
  48. 1 1
      contracts/interfaces/draft-IERC6909.sol
  49. 1 1
      contracts/interfaces/draft-IERC7579.sol
  50. 1 1
      contracts/interfaces/draft-IERC7674.sol
  51. 1 1
      contracts/proxy/ERC1967/ERC1967Utils.sol
  52. 1 1
      contracts/proxy/beacon/IBeacon.sol
  53. 1 1
      contracts/token/ERC1155/IERC1155.sol
  54. 1 1
      contracts/token/ERC1155/IERC1155Receiver.sol
  55. 1 1
      contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol
  56. 1 1
      contracts/token/ERC20/IERC20.sol
  57. 1 1
      contracts/token/ERC20/extensions/IERC20Metadata.sol
  58. 1 1
      contracts/token/ERC20/extensions/IERC20Permit.sol
  59. 1 1
      contracts/token/ERC721/IERC721.sol
  60. 1 1
      contracts/token/ERC721/IERC721Receiver.sol
  61. 1 1
      contracts/token/ERC721/extensions/IERC721Enumerable.sol
  62. 1 1
      contracts/token/ERC721/extensions/IERC721Metadata.sol
  63. 1 1
      contracts/utils/cryptography/signers/MultiSignerERC7913.sol
  64. 1 1
      contracts/utils/introspection/IERC165.sol
  65. 1 1
      contracts/vendor/compound/ICompoundTimelock.sol

+ 1 - 1
contracts/access/IAccessControl.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.3.0) (access/IAccessControl.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 /**
  * @dev External interface of AccessControl declared to support ERC-165 detection.

+ 1 - 1
contracts/access/extensions/IAccessControlDefaultAdminRules.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (access/extensions/IAccessControlDefaultAdminRules.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 import {IAccessControl} from "../IAccessControl.sol";
 

+ 1 - 1
contracts/access/extensions/IAccessControlEnumerable.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (access/extensions/IAccessControlEnumerable.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 import {IAccessControl} from "../IAccessControl.sol";
 

+ 1 - 1
contracts/access/manager/IAccessManaged.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (access/manager/IAccessManaged.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 interface IAccessManaged {
     /**

+ 1 - 1
contracts/access/manager/IAccessManager.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (access/manager/IAccessManager.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 interface IAccessManager {
     /**

+ 1 - 1
contracts/access/manager/IAuthority.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (access/manager/IAuthority.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 /**
  * @dev Standard interface for permissioning originally defined in Dappsys.

+ 1 - 1
contracts/account/extensions/AccountERC7579.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity ^0.8.27;
+pragma solidity ^0.8.26;
 
 import {PackedUserOperation} from "../../interfaces/draft-IERC4337.sol";
 import {IERC1271} from "../../interfaces/IERC1271.sol";

+ 1 - 1
contracts/account/extensions/AccountERC7579Hooked.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity ^0.8.27;
+pragma solidity ^0.8.26;
 
 import {IERC7579Hook, MODULE_TYPE_HOOK} from "../../interfaces/draft-IERC7579.sol";
 import {ERC7579Utils, Mode} from "../../account/utils/draft-ERC7579Utils.sol";

+ 1 - 1
contracts/governance/IGovernor.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.3.0) (governance/IGovernor.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 import {IERC165} from "../interfaces/IERC165.sol";
 import {IERC6372} from "../interfaces/IERC6372.sol";

+ 1 - 1
contracts/governance/utils/IVotes.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (governance/utils/IVotes.sol)
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 /**
  * @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.

+ 1 - 1
contracts/interfaces/IERC1155.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1155.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC1155} from "../token/ERC1155/IERC1155.sol";

+ 1 - 1
contracts/interfaces/IERC1155MetadataURI.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1155MetadataURI.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC1155MetadataURI} from "../token/ERC1155/extensions/IERC1155MetadataURI.sol";

+ 1 - 1
contracts/interfaces/IERC1155Receiver.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1155Receiver.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC1155Receiver} from "../token/ERC1155/IERC1155Receiver.sol";

+ 2 - 2
contracts/interfaces/IERC1271.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.3.0) (interfaces/IERC1271.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @dev Interface of the ERC-1271 standard signature validation method for
@@ -13,5 +13,5 @@ interface IERC1271 {
      * @param hash      Hash of the data to be signed
      * @param signature Signature byte array associated with `hash`
      */
-    function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue);
+    function isValidSignature(bytes32 hash, bytes calldata signature) external view returns (bytes4 magicValue);
 }

+ 1 - 1
contracts/interfaces/IERC1363.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1363.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC20} from "./IERC20.sol";
 import {IERC165} from "./IERC165.sol";

+ 1 - 1
contracts/interfaces/IERC1363Receiver.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1363Receiver.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @title IERC1363Receiver

+ 1 - 1
contracts/interfaces/IERC1363Spender.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1363Spender.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @title IERC1363Spender

+ 1 - 1
contracts/interfaces/IERC165.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 import {IERC165} from "../utils/introspection/IERC165.sol";

+ 1 - 1
contracts/interfaces/IERC1820Implementer.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1820Implementer.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 /**
  * @dev Interface for an ERC-1820 implementer, as defined in the

+ 1 - 1
contracts/interfaces/IERC1820Registry.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1820Registry.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @dev Interface of the global ERC-1820 Registry, as defined in the

+ 1 - 1
contracts/interfaces/IERC1967.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1967.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.11;
 
 /**
  * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.

+ 1 - 1
contracts/interfaces/IERC20.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 import {IERC20} from "../token/ERC20/IERC20.sol";

+ 1 - 1
contracts/interfaces/IERC20Metadata.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20Metadata.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC20Metadata} from "../token/ERC20/extensions/IERC20Metadata.sol";

+ 1 - 1
contracts/interfaces/IERC2309.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC2309.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.11;
 
 /**
  * @dev ERC-2309: ERC-721 Consecutive Transfer Extension.

+ 1 - 1
contracts/interfaces/IERC2612.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC2612.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC20Permit} from "../token/ERC20/extensions/IERC20Permit.sol";
 

+ 1 - 1
contracts/interfaces/IERC2981.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC2981.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC165} from "../utils/introspection/IERC165.sol";
 

+ 1 - 1
contracts/interfaces/IERC3156.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC3156.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 import {IERC3156FlashBorrower} from "./IERC3156FlashBorrower.sol";
 import {IERC3156FlashLender} from "./IERC3156FlashLender.sol";

+ 1 - 1
contracts/interfaces/IERC3156FlashBorrower.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC3156FlashBorrower.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @dev Interface of the ERC-3156 FlashBorrower, as defined in

+ 1 - 1
contracts/interfaces/IERC3156FlashLender.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC3156FlashLender.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 import {IERC3156FlashBorrower} from "./IERC3156FlashBorrower.sol";
 

+ 1 - 1
contracts/interfaces/IERC4626.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.3.0) (interfaces/IERC4626.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC20} from "../token/ERC20/IERC20.sol";
 import {IERC20Metadata} from "../token/ERC20/extensions/IERC20Metadata.sol";

+ 1 - 1
contracts/interfaces/IERC4906.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC4906.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC165} from "./IERC165.sol";
 import {IERC721} from "./IERC721.sol";

+ 1 - 1
contracts/interfaces/IERC5267.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5267.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 interface IERC5267 {
     /**

+ 1 - 1
contracts/interfaces/IERC5313.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5313.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 /**
  * @dev Interface for the Light Contract Ownership Standard.

+ 1 - 1
contracts/interfaces/IERC5805.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5805.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 import {IVotes} from "../governance/utils/IVotes.sol";
 import {IERC6372} from "./IERC6372.sol";

+ 1 - 1
contracts/interfaces/IERC6372.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC6372.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 interface IERC6372 {
     /**

+ 1 - 1
contracts/interfaces/IERC721.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC721} from "../token/ERC721/IERC721.sol";

+ 1 - 1
contracts/interfaces/IERC721Enumerable.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721Enumerable.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC721Enumerable} from "../token/ERC721/extensions/IERC721Enumerable.sol";

+ 1 - 1
contracts/interfaces/IERC721Metadata.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721Metadata.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC721Metadata} from "../token/ERC721/extensions/IERC721Metadata.sol";

+ 1 - 1
contracts/interfaces/IERC721Receiver.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721Receiver.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 import {IERC721Receiver} from "../token/ERC721/IERC721Receiver.sol";

+ 1 - 1
contracts/interfaces/IERC777.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC777.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @dev Interface of the ERC-777 Token standard as defined in the ERC.

+ 1 - 1
contracts/interfaces/IERC777Recipient.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC777Recipient.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @dev Interface of the ERC-777 Tokens Recipient standard as defined in the ERC.

+ 1 - 1
contracts/interfaces/IERC777Sender.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC777Sender.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @dev Interface of the ERC-777 Tokens Sender standard as defined in the ERC.

+ 1 - 1
contracts/interfaces/IERC7821.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity ^0.8.0;
+pragma solidity >=0.5.0;
 
 /**
  * @dev Interface for minimal batch executor.

+ 1 - 1
contracts/interfaces/IERC7913.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity ^0.8.0;
+pragma solidity >=0.5.0;
 
 /**
  * @dev Signature verifier interface.

+ 1 - 1
contracts/interfaces/draft-IERC1822.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC1822.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 /**
  * @dev ERC-1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified

+ 1 - 1
contracts/interfaces/draft-IERC4337.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.3.0) (interfaces/draft-IERC4337.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 /**
  * @dev A https://github.com/ethereum/ercs/blob/master/ERCS/erc-4337.md#useroperation[user operation] is composed of the following elements:

+ 1 - 1
contracts/interfaces/draft-IERC6093.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 /**
  * @dev Standard ERC-20 Errors

+ 1 - 1
contracts/interfaces/draft-IERC6909.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.3.0) (interfaces/draft-IERC6909.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC165} from "../utils/introspection/IERC165.sol";
 

+ 1 - 1
contracts/interfaces/draft-IERC7579.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.3.0) (interfaces/draft-IERC7579.sol)
-pragma solidity ^0.8.20;
+pragma solidity >=0.8.4;
 
 import {PackedUserOperation} from "./draft-IERC4337.sol";
 

+ 1 - 1
contracts/interfaces/draft-IERC7674.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC7674.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC20} from "./IERC20.sol";
 

+ 1 - 1
contracts/proxy/ERC1967/ERC1967Utils.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.2.0) (proxy/ERC1967/ERC1967Utils.sol)
 
-pragma solidity ^0.8.22;
+pragma solidity ^0.8.21;
 
 import {IBeacon} from "../beacon/IBeacon.sol";
 import {IERC1967} from "../../interfaces/IERC1967.sol";

+ 1 - 1
contracts/proxy/beacon/IBeacon.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 /**
  * @dev This is the interface that {BeaconProxy} expects of its beacon.

+ 1 - 1
contracts/token/ERC1155/IERC1155.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.3.0) (token/ERC1155/IERC1155.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC165} from "../../utils/introspection/IERC165.sol";
 

+ 1 - 1
contracts/token/ERC1155/IERC1155Receiver.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC1155/IERC1155Receiver.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC165} from "../../utils/introspection/IERC165.sol";
 

+ 1 - 1
contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC1155/extensions/IERC1155MetadataURI.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC1155} from "../IERC1155.sol";
 

+ 1 - 1
contracts/token/ERC20/IERC20.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 /**
  * @dev Interface of the ERC-20 standard as defined in the ERC.

+ 1 - 1
contracts/token/ERC20/extensions/IERC20Metadata.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC20} from "../IERC20.sol";
 

+ 1 - 1
contracts/token/ERC20/extensions/IERC20Permit.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Permit.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 /**
  * @dev Interface of the ERC-20 Permit extension allowing approvals to be made via signatures, as defined in

+ 1 - 1
contracts/token/ERC721/IERC721.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/IERC721.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC165} from "../../utils/introspection/IERC165.sol";
 

+ 1 - 1
contracts/token/ERC721/IERC721Receiver.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/IERC721Receiver.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.5.0;
 
 /**
  * @title ERC-721 token receiver interface

+ 1 - 1
contracts/token/ERC721/extensions/IERC721Enumerable.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Enumerable.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC721} from "../IERC721.sol";
 

+ 1 - 1
contracts/token/ERC721/extensions/IERC721Metadata.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.2;
 
 import {IERC721} from "../IERC721.sol";
 

+ 1 - 1
contracts/utils/cryptography/signers/MultiSignerERC7913.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity ^0.8.27;
+pragma solidity ^0.8.26;
 
 import {AbstractSigner} from "./AbstractSigner.sol";
 import {SignatureChecker} from "../SignatureChecker.sol";

+ 1 - 1
contracts/utils/introspection/IERC165.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.4.16;
 
 /**
  * @dev Interface of the ERC-165 standard, as defined in the

+ 1 - 1
contracts/vendor/compound/ICompoundTimelock.sol

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: MIT
 // OpenZeppelin Contracts (last updated v5.0.0) (vendor/compound/ICompoundTimelock.sol)
 
-pragma solidity ^0.8.20;
+pragma solidity >=0.6.9;
 
 /**
  * https://github.com/compound-finance/compound-protocol/blob/master/contracts/Timelock.sol[Compound timelock] interface