@@ -0,0 +1,5 @@
+---
+'openzeppelin-solidity': major
+
+Bump minimum compiler version required to 0.8.19
@@ -36,7 +36,7 @@ An alternative to npm is to use the GitHub repository (`openzeppelin/openzeppeli
Once installed, you can use the contracts in the library by importing them:
```solidity
-pragma solidity ^0.8.0;
+pragma solidity ^0.8.19;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: MIT
import "../patched/access/AccessControlDefaultAdminRules.sol";
import "../patched/access/AccessControl.sol";
import "../patched/utils/structs/DoubleEndedQueue.sol";
import "../patched/token/ERC20/ERC20.sol";
import "../patched/token/ERC20/extensions/ERC20Permit.sol";
import "../patched/token/ERC20/extensions/ERC20Wrapper.sol";
@@ -2,7 +2,7 @@
import "../patched/interfaces/IERC3156FlashBorrower.sol";
contract ERC3156FlashBorrowerHarness is IERC3156FlashBorrower {
bytes32 somethingToReturn;
import "../patched/token/ERC721/ERC721.sol";
import "../patched/interfaces/IERC721Receiver.sol";
import "../patched/utils/structs/EnumerableMap.sol";
import "../patched/utils/structs/EnumerableSet.sol";
@@ -1,5 +1,5 @@
-pragma solidity ^0.8.2;
import "../patched/proxy/utils/Initializable.sol";
import "../patched/access/Ownable2Step.sol";
import "../patched/access/Ownable.sol";
import "../patched/security/Pausable.sol";
@@ -1,4 +1,4 @@
import "../patched/governance/TimelockController.sol";
@@ -1,7 +1,7 @@
// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)
import "./IAccessControl.sol";
import "../utils/Context.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControlDefaultAdminRules.sol)
import "./AccessControl.sol";
import "./IAccessControlDefaultAdminRules.sol";
// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)
import "./IAccessControlEnumerable.sol";
// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)
/**
* @dev External interface of AccessControl declared to support ERC165 detection.
// OpenZeppelin Contracts (last updated v4.9.0) (access/IAccessControlDefaultAdminRules.sol)
// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)
import "./Ownable.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (finance/VestingWallet.sol)
import "../token/ERC20/utils/SafeERC20.sol";
import "../utils/Address.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/Governor.sol)
import "../token/ERC721/IERC721Receiver.sol";
import "../token/ERC1155/IERC1155Receiver.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/IGovernor.sol)
import "../interfaces/IERC165.sol";
import "../interfaces/IERC6372.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/TimelockController.sol)
import "../access/AccessControl.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/compatibility/GovernorCompatibilityBravo.sol)
import "../../utils/math/SafeCast.sol";
import "../extensions/IGovernorTimelock.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/compatibility/IGovernorCompatibilityBravo.sol)
import "../IGovernor.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorCountingSimple.sol)
import "../Governor.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorPreventLateQuorum.sol)
import "../../utils/math/Math.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorSettings.sol)
// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorTimelockCompound.sol)
import "./IGovernorTimelock.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorTimelockControl.sol)
// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorVotes.sol)
import "../../interfaces/IERC5805.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorVotesQuorumFraction.sol)
import "./GovernorVotes.sol";
// OpenZeppelin Contracts v4.4.1 (governance/extensions/IGovernorTimelock.sol)
// OpenZeppelin Contracts (last updated v4.9.0) (governance/utils/IVotes.sol)
* @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.
// OpenZeppelin Contracts (last updated v4.9.0) (governance/utils/Votes.sol)
import "../../utils/Context.sol";
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155.sol)
import "../token/ERC1155/IERC1155.sol";
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155MetadataURI.sol)
import "../token/ERC1155/extensions/IERC1155MetadataURI.sol";
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155Receiver.sol)
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1271.sol)
* @dev Interface of the ERC1271 standard signature validation method for
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363.sol)
import "./IERC20.sol";
import "./IERC165.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363Receiver.sol)
* @dev Interface for any contract that wants to support {IERC1363-transferAndCall}
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363Spender.sol)
* @dev Interface for any contract that wants to support {IERC1363-approveAndCall}
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC165.sol)
import "../utils/introspection/IERC165.sol";
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC1820Implementer.sol)
* @dev Interface for an ERC1820 implementer, as defined in the
// OpenZeppelin Contracts (last updated v4.8.0) (utils/introspection/IERC1820Registry.sol)
* @dev Interface of the global ERC1820 Registry, as defined in the
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1967.sol)
* @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)
import "../token/ERC20/IERC20.sol";
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20Metadata.sol)
import "../token/ERC20/extensions/IERC20Metadata.sol";
// OpenZeppelin Contracts (last updated v4.8.0) (interfaces/IERC2309.sol)
* @dev ERC-2309: ERC-721 Consecutive Transfer Extension.
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC2612.sol)
import "../token/ERC20/extensions/IERC20Permit.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC2981.sol)
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156.sol)
import "./IERC3156FlashBorrower.sol";
import "./IERC3156FlashLender.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC3156FlashBorrower.sol)
* @dev Interface of the ERC3156 FlashBorrower, as defined in
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156FlashLender.sol)
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC4626.sol)
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC4906.sol)
import "./IERC721.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5267.sol)
interface IERC5267 {
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5313.sol)
* @dev Interface for the Light Contract Ownership Standard.
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5805.sol)
import "../governance/utils/IVotes.sol";
import "./IERC6372.sol";
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC6372.sol)
interface IERC6372 {
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol)
import "../token/ERC721/IERC721.sol";
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Enumerable.sol)
import "../token/ERC721/extensions/IERC721Enumerable.sol";
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Metadata.sol)
import "../token/ERC721/extensions/IERC721Metadata.sol";
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Receiver.sol)
* @dev Interface of the ERC777Token standard as defined in the EIP.
* @dev Interface of the ERC777TokensRecipient standard as defined in the EIP.
* @dev Interface of the ERC777TokensSender standard as defined in the EIP.
// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)
* @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
// OpenZeppelin Contracts (last updated v4.7.0) (metatx/ERC2771Context.sol)
-pragma solidity ^0.8.9;
// OpenZeppelin Contracts (last updated v4.9.0) (metatx/MinimalForwarder.sol)
import "../utils/cryptography/ECDSA.sol";
import "../utils/cryptography/EIP712.sol";
import "../utils/Arrays.sol";
contract CallReceiverMock {
event MockFunctionCalled();
abstract contract Impl {
function version() public pure virtual returns (string memory);
import "../access/Ownable.sol";
import "../interfaces/IERC1271.sol";
import "../../utils/introspection/IERC165.sol";
contract ERC165MaliciousData {
function supportsInterface(bytes4) public pure returns (bool) {
contract ERC165MissingData {
function supportsInterface(bytes4 interfaceId) public view {} // missing return
contract ERC165NotSupported {}
import "./ContextMock.sol";
import "../metatx/ERC2771Context.sol";
import "../interfaces/IERC3156.sol";
contract EtherReceiverMock {
bool private _acceptEther;
import "../proxy/utils/Initializable.sol";
import "./token/ERC20MulticallMock.sol";
import "../security/Pausable.sol";
import "../security/ReentrancyGuard.sol";
import "./ReentrancyAttack.sol";
import "../utils/StorageSlot.sol";