diff --git a/contracts/access/extensions/AccessControlDefaultAdminRules.sol b/contracts/access/extensions/AccessControlDefaultAdminRules.sol index 137788bc3e4..5b6c802b377 100644 --- a/contracts/access/extensions/AccessControlDefaultAdminRules.sol +++ b/contracts/access/extensions/AccessControlDefaultAdminRules.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (access/extensions/AccessControlDefaultAdminRules.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {IAccessControlDefaultAdminRules} from "./IAccessControlDefaultAdminRules.sol"; import {AccessControl, IAccessControl} from "../AccessControl.sol"; diff --git a/contracts/access/extensions/AccessControlEnumerable.sol b/contracts/access/extensions/AccessControlEnumerable.sol index 26a159426de..530795666b8 100644 --- a/contracts/access/extensions/AccessControlEnumerable.sol +++ b/contracts/access/extensions/AccessControlEnumerable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (access/extensions/AccessControlEnumerable.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IAccessControlEnumerable} from "./IAccessControlEnumerable.sol"; import {AccessControl} from "../AccessControl.sol"; diff --git a/contracts/access/manager/AccessManager.sol b/contracts/access/manager/AccessManager.sol index 12a734d4075..4ee794b324e 100644 --- a/contracts/access/manager/AccessManager.sol +++ b/contracts/access/manager/AccessManager.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (access/manager/AccessManager.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {IAccessManager} from "./IAccessManager.sol"; import {IAccessManaged} from "./IAccessManaged.sol"; diff --git a/contracts/account/Account.sol b/contracts/account/Account.sol index b0ee1057418..24b70cc6e2d 100644 --- a/contracts/account/Account.sol +++ b/contracts/account/Account.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (account/Account.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {PackedUserOperation, IAccount, IEntryPoint} from "../interfaces/draft-IERC4337.sol"; import {ERC4337Utils} from "./utils/draft-ERC4337Utils.sol"; diff --git a/contracts/account/extensions/draft-AccountERC7579.sol b/contracts/account/extensions/draft-AccountERC7579.sol index 17bcd6728ee..6f8ebe5ccae 100644 --- a/contracts/account/extensions/draft-AccountERC7579.sol +++ b/contracts/account/extensions/draft-AccountERC7579.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (account/extensions/draft-AccountERC7579.sol) -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {PackedUserOperation} from "../../interfaces/draft-IERC4337.sol"; import {IERC1271} from "../../interfaces/IERC1271.sol"; diff --git a/contracts/account/extensions/draft-AccountERC7579Hooked.sol b/contracts/account/extensions/draft-AccountERC7579Hooked.sol index 5de0500c2a5..99b156186f2 100644 --- a/contracts/account/extensions/draft-AccountERC7579Hooked.sol +++ b/contracts/account/extensions/draft-AccountERC7579Hooked.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (account/extensions/draft-AccountERC7579Hooked.sol) -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {IERC7579Hook, MODULE_TYPE_HOOK} from "../../interfaces/draft-IERC7579.sol"; import {ERC7579Utils, Mode} from "../../account/utils/draft-ERC7579Utils.sol"; diff --git a/contracts/account/extensions/draft-ERC7821.sol b/contracts/account/extensions/draft-ERC7821.sol index f7e0573f9cf..f0d0a3daf97 100644 --- a/contracts/account/extensions/draft-ERC7821.sol +++ b/contracts/account/extensions/draft-ERC7821.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (account/extensions/draft-ERC7821.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {ERC7579Utils, Mode, CallType, ExecType, ModeSelector} from "../utils/draft-ERC7579Utils.sol"; import {IERC7821} from "../../interfaces/draft-IERC7821.sol"; diff --git a/contracts/account/utils/draft-ERC4337Utils.sol b/contracts/account/utils/draft-ERC4337Utils.sol index 23a50617655..8911363b0de 100644 --- a/contracts/account/utils/draft-ERC4337Utils.sol +++ b/contracts/account/utils/draft-ERC4337Utils.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.3.0) (account/utils/draft-ERC4337Utils.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {IEntryPoint, PackedUserOperation} from "../../interfaces/draft-IERC4337.sol"; import {Math} from "../../utils/math/Math.sol"; diff --git a/contracts/crosschain/CrosschainLinked.sol b/contracts/crosschain/CrosschainLinked.sol index 620ac1f3f2d..31d43f24da8 100644 --- a/contracts/crosschain/CrosschainLinked.sol +++ b/contracts/crosschain/CrosschainLinked.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {IERC7786GatewaySource} from "../interfaces/draft-IERC7786.sol"; import {InteroperableAddress} from "../utils/draft-InteroperableAddress.sol"; diff --git a/contracts/crosschain/bridges/BridgeERC20.sol b/contracts/crosschain/bridges/BridgeERC20.sol index ad53060b3c2..6ce344f1334 100644 --- a/contracts/crosschain/bridges/BridgeERC20.sol +++ b/contracts/crosschain/bridges/BridgeERC20.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {IERC20, SafeERC20} from "../../token/ERC20/utils/SafeERC20.sol"; import {BridgeERC20Core} from "./BridgeERC20Core.sol"; diff --git a/contracts/crosschain/bridges/BridgeERC20Core.sol b/contracts/crosschain/bridges/BridgeERC20Core.sol index b1667a4495c..229aa7d9c16 100644 --- a/contracts/crosschain/bridges/BridgeERC20Core.sol +++ b/contracts/crosschain/bridges/BridgeERC20Core.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {InteroperableAddress} from "../../utils/draft-InteroperableAddress.sol"; import {Context} from "../../utils/Context.sol"; diff --git a/contracts/crosschain/bridges/BridgeERC7802.sol b/contracts/crosschain/bridges/BridgeERC7802.sol index 02109cfb1cf..dc6157a5a42 100644 --- a/contracts/crosschain/bridges/BridgeERC7802.sol +++ b/contracts/crosschain/bridges/BridgeERC7802.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {IERC7802} from "../../interfaces/draft-IERC7802.sol"; import {BridgeERC20Core} from "./BridgeERC20Core.sol"; diff --git a/contracts/governance/Governor.sol b/contracts/governance/Governor.sol index 184d0b95ebc..e22b6d9837b 100644 --- a/contracts/governance/Governor.sol +++ b/contracts/governance/Governor.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/Governor.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IERC721Receiver} from "../token/ERC721/IERC721Receiver.sol"; import {IERC1155Receiver} from "../token/ERC1155/IERC1155Receiver.sol"; diff --git a/contracts/governance/extensions/GovernorCountingFractional.sol b/contracts/governance/extensions/GovernorCountingFractional.sol index 1460d2ddef7..06476688047 100644 --- a/contracts/governance/extensions/GovernorCountingFractional.sol +++ b/contracts/governance/extensions/GovernorCountingFractional.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorCountingFractional.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IGovernor, Governor} from "../Governor.sol"; import {GovernorCountingSimple} from "./GovernorCountingSimple.sol"; diff --git a/contracts/governance/extensions/GovernorCountingOverridable.sol b/contracts/governance/extensions/GovernorCountingOverridable.sol index 45a72ea780c..4e5da29778d 100644 --- a/contracts/governance/extensions/GovernorCountingOverridable.sol +++ b/contracts/governance/extensions/GovernorCountingOverridable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorCountingOverridable.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {SignatureChecker} from "../../utils/cryptography/SignatureChecker.sol"; import {SafeCast} from "../../utils/math/SafeCast.sol"; diff --git a/contracts/governance/extensions/GovernorCountingSimple.sol b/contracts/governance/extensions/GovernorCountingSimple.sol index 3f24a657cee..95fdea5d5db 100644 --- a/contracts/governance/extensions/GovernorCountingSimple.sol +++ b/contracts/governance/extensions/GovernorCountingSimple.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorCountingSimple.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IGovernor, Governor} from "../Governor.sol"; diff --git a/contracts/governance/extensions/GovernorNoncesKeyed.sol b/contracts/governance/extensions/GovernorNoncesKeyed.sol index c506b7e3b4e..0a085161ece 100644 --- a/contracts/governance/extensions/GovernorNoncesKeyed.sol +++ b/contracts/governance/extensions/GovernorNoncesKeyed.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorNoncesKeyed.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Governor} from "../Governor.sol"; import {Nonces} from "../../utils/Nonces.sol"; diff --git a/contracts/governance/extensions/GovernorPreventLateQuorum.sol b/contracts/governance/extensions/GovernorPreventLateQuorum.sol index 581f96e5c5e..694e9d13182 100644 --- a/contracts/governance/extensions/GovernorPreventLateQuorum.sol +++ b/contracts/governance/extensions/GovernorPreventLateQuorum.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorPreventLateQuorum.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Governor} from "../Governor.sol"; import {Math} from "../../utils/math/Math.sol"; diff --git a/contracts/governance/extensions/GovernorProposalGuardian.sol b/contracts/governance/extensions/GovernorProposalGuardian.sol index 618f66c8682..a6d2533c589 100644 --- a/contracts/governance/extensions/GovernorProposalGuardian.sol +++ b/contracts/governance/extensions/GovernorProposalGuardian.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/extensions/GovernorProposalGuardian.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Governor} from "../Governor.sol"; diff --git a/contracts/governance/extensions/GovernorSequentialProposalId.sol b/contracts/governance/extensions/GovernorSequentialProposalId.sol index d6869bbdadc..1d23965c451 100644 --- a/contracts/governance/extensions/GovernorSequentialProposalId.sol +++ b/contracts/governance/extensions/GovernorSequentialProposalId.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorSequentialProposalId.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IGovernor, Governor} from "../Governor.sol"; diff --git a/contracts/governance/extensions/GovernorSettings.sol b/contracts/governance/extensions/GovernorSettings.sol index 5f3cef779e6..cb9b0db6ec0 100644 --- a/contracts/governance/extensions/GovernorSettings.sol +++ b/contracts/governance/extensions/GovernorSettings.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorSettings.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IGovernor, Governor} from "../Governor.sol"; diff --git a/contracts/governance/extensions/GovernorStorage.sol b/contracts/governance/extensions/GovernorStorage.sol index bdf4c6d00ed..3ded2a4bee8 100644 --- a/contracts/governance/extensions/GovernorStorage.sol +++ b/contracts/governance/extensions/GovernorStorage.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/extensions/GovernorStorage.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Governor} from "../Governor.sol"; diff --git a/contracts/governance/extensions/GovernorSuperQuorum.sol b/contracts/governance/extensions/GovernorSuperQuorum.sol index 293f61a1603..3e6954e8f9c 100644 --- a/contracts/governance/extensions/GovernorSuperQuorum.sol +++ b/contracts/governance/extensions/GovernorSuperQuorum.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/extensions/GovernorSuperQuorum.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Governor} from "../Governor.sol"; diff --git a/contracts/governance/extensions/GovernorTimelockAccess.sol b/contracts/governance/extensions/GovernorTimelockAccess.sol index 14823d90d04..4b814a02569 100644 --- a/contracts/governance/extensions/GovernorTimelockAccess.sol +++ b/contracts/governance/extensions/GovernorTimelockAccess.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorTimelockAccess.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IGovernor, Governor} from "../Governor.sol"; import {AuthorityUtils} from "../../access/manager/AuthorityUtils.sol"; diff --git a/contracts/governance/extensions/GovernorTimelockCompound.sol b/contracts/governance/extensions/GovernorTimelockCompound.sol index 8f6183e8b89..71750b4be52 100644 --- a/contracts/governance/extensions/GovernorTimelockCompound.sol +++ b/contracts/governance/extensions/GovernorTimelockCompound.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/extensions/GovernorTimelockCompound.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IGovernor, Governor} from "../Governor.sol"; import {ICompoundTimelock} from "../../vendor/compound/ICompoundTimelock.sol"; diff --git a/contracts/governance/extensions/GovernorTimelockControl.sol b/contracts/governance/extensions/GovernorTimelockControl.sol index 082952ae4ec..ebbd9f3e31b 100644 --- a/contracts/governance/extensions/GovernorTimelockControl.sol +++ b/contracts/governance/extensions/GovernorTimelockControl.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/extensions/GovernorTimelockControl.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IGovernor, Governor} from "../Governor.sol"; import {TimelockController} from "../TimelockController.sol"; diff --git a/contracts/governance/extensions/GovernorVotes.sol b/contracts/governance/extensions/GovernorVotes.sol index 4ad5870a448..b98fb8a86f7 100644 --- a/contracts/governance/extensions/GovernorVotes.sol +++ b/contracts/governance/extensions/GovernorVotes.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (governance/extensions/GovernorVotes.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Governor} from "../Governor.sol"; import {IVotes} from "../utils/IVotes.sol"; diff --git a/contracts/governance/extensions/GovernorVotesQuorumFraction.sol b/contracts/governance/extensions/GovernorVotesQuorumFraction.sol index de67172e49c..bade68c56f5 100644 --- a/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +++ b/contracts/governance/extensions/GovernorVotesQuorumFraction.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/extensions/GovernorVotesQuorumFraction.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {GovernorVotes} from "./GovernorVotes.sol"; import {Math} from "../../utils/math/Math.sol"; diff --git a/contracts/governance/extensions/GovernorVotesSuperQuorumFraction.sol b/contracts/governance/extensions/GovernorVotesSuperQuorumFraction.sol index 53a7049a637..37af8c5c0c3 100644 --- a/contracts/governance/extensions/GovernorVotesSuperQuorumFraction.sol +++ b/contracts/governance/extensions/GovernorVotesSuperQuorumFraction.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/extensions/GovernorVotesSuperQuorumFraction.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Governor} from "../Governor.sol"; import {GovernorSuperQuorum} from "./GovernorSuperQuorum.sol"; diff --git a/contracts/governance/utils/Votes.sol b/contracts/governance/utils/Votes.sol index 1eebb7e23d1..1dbab6939fa 100644 --- a/contracts/governance/utils/Votes.sol +++ b/contracts/governance/utils/Votes.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/utils/Votes.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IERC5805} from "../../interfaces/IERC5805.sol"; import {Context} from "../../utils/Context.sol"; diff --git a/contracts/governance/utils/VotesExtended.sol b/contracts/governance/utils/VotesExtended.sol index 25a72209d73..c06948567ac 100644 --- a/contracts/governance/utils/VotesExtended.sol +++ b/contracts/governance/utils/VotesExtended.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (governance/utils/VotesExtended.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Checkpoints} from "../../utils/structs/Checkpoints.sol"; import {Votes} from "./Votes.sol"; diff --git a/contracts/metatx/ERC2771Forwarder.sol b/contracts/metatx/ERC2771Forwarder.sol index 2be315b0c92..f444a7188b5 100644 --- a/contracts/metatx/ERC2771Forwarder.sol +++ b/contracts/metatx/ERC2771Forwarder.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (metatx/ERC2771Forwarder.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC2771Context} from "./ERC2771Context.sol"; import {ECDSA} from "../utils/cryptography/ECDSA.sol"; diff --git a/contracts/token/ERC1155/ERC1155.sol b/contracts/token/ERC1155/ERC1155.sol index 1271333e439..2a4c4803a8a 100644 --- a/contracts/token/ERC1155/ERC1155.sol +++ b/contracts/token/ERC1155/ERC1155.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC1155/ERC1155.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IERC1155} from "./IERC1155.sol"; import {IERC1155MetadataURI} from "./extensions/IERC1155MetadataURI.sol"; diff --git a/contracts/token/ERC1155/extensions/ERC1155Burnable.sol b/contracts/token/ERC1155/extensions/ERC1155Burnable.sol index 41d36bd7236..794a4b1e93f 100644 --- a/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +++ b/contracts/token/ERC1155/extensions/ERC1155Burnable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC1155/extensions/ERC1155Burnable.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC1155} from "../ERC1155.sol"; diff --git a/contracts/token/ERC1155/extensions/ERC1155Pausable.sol b/contracts/token/ERC1155/extensions/ERC1155Pausable.sol index 03a3d62f008..12d1d8669c1 100644 --- a/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +++ b/contracts/token/ERC1155/extensions/ERC1155Pausable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC1155/extensions/ERC1155Pausable.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC1155} from "../ERC1155.sol"; import {Pausable} from "../../../utils/Pausable.sol"; diff --git a/contracts/token/ERC1155/extensions/ERC1155Supply.sol b/contracts/token/ERC1155/extensions/ERC1155Supply.sol index 01ac96a08d2..12138eecc78 100644 --- a/contracts/token/ERC1155/extensions/ERC1155Supply.sol +++ b/contracts/token/ERC1155/extensions/ERC1155Supply.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC1155/extensions/ERC1155Supply.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC1155} from "../ERC1155.sol"; import {Arrays} from "../../../utils/Arrays.sol"; diff --git a/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol b/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol index 6c7e239a48a..fdc52dc68b0 100644 --- a/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +++ b/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC1155/extensions/ERC1155URIStorage.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC1155} from "../ERC1155.sol"; diff --git a/contracts/token/ERC20/extensions/ERC20Crosschain.sol b/contracts/token/ERC20/extensions/ERC20Crosschain.sol index 12943d71b52..5a8b645b0ed 100644 --- a/contracts/token/ERC20/extensions/ERC20Crosschain.sol +++ b/contracts/token/ERC20/extensions/ERC20Crosschain.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {ERC20} from "../ERC20.sol"; import {BridgeERC20Core} from "../../../crosschain/bridges/BridgeERC20Core.sol"; diff --git a/contracts/token/ERC20/extensions/ERC20Permit.sol b/contracts/token/ERC20/extensions/ERC20Permit.sol index 77e796591fa..678e53a1358 100644 --- a/contracts/token/ERC20/extensions/ERC20Permit.sol +++ b/contracts/token/ERC20/extensions/ERC20Permit.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC20/extensions/ERC20Permit.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IERC20Permit} from "./IERC20Permit.sol"; import {ERC20} from "../ERC20.sol"; diff --git a/contracts/token/ERC20/extensions/ERC20Votes.sol b/contracts/token/ERC20/extensions/ERC20Votes.sol index 227f0d883ba..ecca4c2d4ca 100644 --- a/contracts/token/ERC20/extensions/ERC20Votes.sol +++ b/contracts/token/ERC20/extensions/ERC20Votes.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC20/extensions/ERC20Votes.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC20} from "../ERC20.sol"; import {Votes} from "../../../governance/utils/Votes.sol"; diff --git a/contracts/token/ERC20/extensions/ERC20Wrapper.sol b/contracts/token/ERC20/extensions/ERC20Wrapper.sol index 8916d1ab0ca..9efec93cf1a 100644 --- a/contracts/token/ERC20/extensions/ERC20Wrapper.sol +++ b/contracts/token/ERC20/extensions/ERC20Wrapper.sol @@ -27,7 +27,7 @@ abstract contract ERC20Wrapper is ERC20 { error ERC20InvalidUnderlying(address token); constructor(IERC20 underlyingToken) { - if (underlyingToken == this) { + if (address(underlyingToken) == address(this)) { revert ERC20InvalidUnderlying(address(this)); } _underlying = underlyingToken; diff --git a/contracts/token/ERC20/extensions/ERC4626.sol b/contracts/token/ERC20/extensions/ERC4626.sol index 3cc55de41e4..2cf11d2f6c8 100644 --- a/contracts/token/ERC20/extensions/ERC4626.sol +++ b/contracts/token/ERC20/extensions/ERC4626.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC20/extensions/ERC4626.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IERC20, IERC20Metadata, ERC20} from "../ERC20.sol"; import {SafeERC20} from "../utils/SafeERC20.sol"; diff --git a/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol b/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol index 357daa93789..b070ac9f3c8 100644 --- a/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol +++ b/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.3.0) (token/ERC20/extensions/draft-ERC20TemporaryApproval.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IERC20, ERC20} from "../ERC20.sol"; import {IERC7674} from "../../../interfaces/draft-IERC7674.sol"; diff --git a/contracts/token/ERC721/ERC721.sol b/contracts/token/ERC721/ERC721.sol index 5c5344e606d..50a01ab0dcd 100644 --- a/contracts/token/ERC721/ERC721.sol +++ b/contracts/token/ERC721/ERC721.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/ERC721.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IERC721} from "./IERC721.sol"; import {IERC721Metadata} from "./extensions/IERC721Metadata.sol"; diff --git a/contracts/token/ERC721/extensions/ERC721Burnable.sol b/contracts/token/ERC721/extensions/ERC721Burnable.sol index c47be18fd47..729e293b4f7 100644 --- a/contracts/token/ERC721/extensions/ERC721Burnable.sol +++ b/contracts/token/ERC721/extensions/ERC721Burnable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/extensions/ERC721Burnable.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC721} from "../ERC721.sol"; import {Context} from "../../../utils/Context.sol"; diff --git a/contracts/token/ERC721/extensions/ERC721Consecutive.sol b/contracts/token/ERC721/extensions/ERC721Consecutive.sol index a391923e8dc..626666de464 100644 --- a/contracts/token/ERC721/extensions/ERC721Consecutive.sol +++ b/contracts/token/ERC721/extensions/ERC721Consecutive.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/extensions/ERC721Consecutive.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC721} from "../ERC721.sol"; import {IERC2309} from "../../../interfaces/IERC2309.sol"; diff --git a/contracts/token/ERC721/extensions/ERC721Enumerable.sol b/contracts/token/ERC721/extensions/ERC721Enumerable.sol index d258541d486..78d67f08918 100644 --- a/contracts/token/ERC721/extensions/ERC721Enumerable.sol +++ b/contracts/token/ERC721/extensions/ERC721Enumerable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/extensions/ERC721Enumerable.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC721} from "../ERC721.sol"; import {IERC721Enumerable} from "./IERC721Enumerable.sol"; diff --git a/contracts/token/ERC721/extensions/ERC721Pausable.sol b/contracts/token/ERC721/extensions/ERC721Pausable.sol index 746febcba02..c30d44efdfa 100644 --- a/contracts/token/ERC721/extensions/ERC721Pausable.sol +++ b/contracts/token/ERC721/extensions/ERC721Pausable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/extensions/ERC721Pausable.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC721} from "../ERC721.sol"; import {Pausable} from "../../../utils/Pausable.sol"; diff --git a/contracts/token/ERC721/extensions/ERC721Royalty.sol b/contracts/token/ERC721/extensions/ERC721Royalty.sol index ff915ab6e9e..1f6839cad49 100644 --- a/contracts/token/ERC721/extensions/ERC721Royalty.sol +++ b/contracts/token/ERC721/extensions/ERC721Royalty.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/extensions/ERC721Royalty.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC721} from "../ERC721.sol"; import {IERC165} from "../../../utils/introspection/ERC165.sol"; diff --git a/contracts/token/ERC721/extensions/ERC721URIStorage.sol b/contracts/token/ERC721/extensions/ERC721URIStorage.sol index 59d2bd1e0dc..8fb51fc1215 100644 --- a/contracts/token/ERC721/extensions/ERC721URIStorage.sol +++ b/contracts/token/ERC721/extensions/ERC721URIStorage.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/extensions/ERC721URIStorage.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC721} from "../ERC721.sol"; import {IERC721Metadata} from "./IERC721Metadata.sol"; diff --git a/contracts/token/ERC721/extensions/ERC721Votes.sol b/contracts/token/ERC721/extensions/ERC721Votes.sol index 8a4a2c2ccf6..c4027a72b35 100644 --- a/contracts/token/ERC721/extensions/ERC721Votes.sol +++ b/contracts/token/ERC721/extensions/ERC721Votes.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/extensions/ERC721Votes.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ERC721} from "../ERC721.sol"; import {Votes} from "../../../governance/utils/Votes.sol"; diff --git a/contracts/token/ERC721/extensions/ERC721Wrapper.sol b/contracts/token/ERC721/extensions/ERC721Wrapper.sol index 07a97628435..4587f5e531b 100644 --- a/contracts/token/ERC721/extensions/ERC721Wrapper.sol +++ b/contracts/token/ERC721/extensions/ERC721Wrapper.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (token/ERC721/extensions/ERC721Wrapper.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {IERC721, ERC721} from "../ERC721.sol"; import {IERC721Receiver} from "../IERC721Receiver.sol"; diff --git a/contracts/utils/Arrays.sol b/contracts/utils/Arrays.sol index 16049d01a53..e57aa3e9510 100644 --- a/contracts/utils/Arrays.sol +++ b/contracts/utils/Arrays.sol @@ -2,7 +2,7 @@ // OpenZeppelin Contracts (last updated v5.5.0) (utils/Arrays.sol) // This file was procedurally generated from scripts/generate/templates/Arrays.js. -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Comparators} from "./Comparators.sol"; import {SlotDerivation} from "./SlotDerivation.sol"; diff --git a/contracts/utils/Bytes.sol b/contracts/utils/Bytes.sol index c3460740f10..06220152106 100644 --- a/contracts/utils/Bytes.sol +++ b/contracts/utils/Bytes.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/Bytes.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Math} from "./math/Math.sol"; diff --git a/contracts/utils/CAIP10.sol b/contracts/utils/CAIP10.sol index 84b35da046f..c4c301d890e 100644 --- a/contracts/utils/CAIP10.sol +++ b/contracts/utils/CAIP10.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.2.0) (utils/CAIP10.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Bytes} from "./Bytes.sol"; import {Strings} from "./Strings.sol"; diff --git a/contracts/utils/CAIP2.sol b/contracts/utils/CAIP2.sol index d06dd6da7f2..40594754ae1 100644 --- a/contracts/utils/CAIP2.sol +++ b/contracts/utils/CAIP2.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.2.0) (utils/CAIP2.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Bytes} from "./Bytes.sol"; import {Strings} from "./Strings.sol"; diff --git a/contracts/utils/Memory.sol b/contracts/utils/Memory.sol index bd21666b1d5..3d463270e83 100644 --- a/contracts/utils/Memory.sol +++ b/contracts/utils/Memory.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/Memory.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Panic} from "./Panic.sol"; import {Math} from "./math/Math.sol"; diff --git a/contracts/utils/RLP.sol b/contracts/utils/RLP.sol index 8fa6c31bef3..d6511bec2b3 100644 --- a/contracts/utils/RLP.sol +++ b/contracts/utils/RLP.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/RLP.sol) -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {Math} from "./math/Math.sol"; import {Accumulators} from "./structs/Accumulators.sol"; diff --git a/contracts/utils/Strings.sol b/contracts/utils/Strings.sol index 2fcd286d6e8..57ede22eb36 100644 --- a/contracts/utils/Strings.sol +++ b/contracts/utils/Strings.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/Strings.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Math} from "./math/Math.sol"; import {SafeCast} from "./math/SafeCast.sol"; diff --git a/contracts/utils/cryptography/EIP712.sol b/contracts/utils/cryptography/EIP712.sol index 2bc45a4b2c7..5fec70b815c 100644 --- a/contracts/utils/cryptography/EIP712.sol +++ b/contracts/utils/cryptography/EIP712.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/EIP712.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {MessageHashUtils} from "./MessageHashUtils.sol"; import {ShortStrings, ShortString} from "../ShortStrings.sol"; diff --git a/contracts/utils/cryptography/MessageHashUtils.sol b/contracts/utils/cryptography/MessageHashUtils.sol index 3b373383195..15ae00371d4 100644 --- a/contracts/utils/cryptography/MessageHashUtils.sol +++ b/contracts/utils/cryptography/MessageHashUtils.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/MessageHashUtils.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Strings} from "../Strings.sol"; diff --git a/contracts/utils/cryptography/P256.sol b/contracts/utils/cryptography/P256.sol index 81d79adc427..bbffe0128bb 100644 --- a/contracts/utils/cryptography/P256.sol +++ b/contracts/utils/cryptography/P256.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.3.0) (utils/cryptography/P256.sol) -pragma solidity ^0.8.20; + +pragma solidity ^0.8.31; import {Math} from "../math/Math.sol"; import {Errors} from "../Errors.sol"; diff --git a/contracts/utils/cryptography/RSA.sol b/contracts/utils/cryptography/RSA.sol index 4e04ce5cc56..be3bde783ec 100644 --- a/contracts/utils/cryptography/RSA.sol +++ b/contracts/utils/cryptography/RSA.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (utils/cryptography/RSA.sol) -pragma solidity ^0.8.20; + +pragma solidity ^0.8.31; import {Math} from "../math/Math.sol"; diff --git a/contracts/utils/cryptography/SignatureChecker.sol b/contracts/utils/cryptography/SignatureChecker.sol index ab47f96316c..2952269b79b 100644 --- a/contracts/utils/cryptography/SignatureChecker.sol +++ b/contracts/utils/cryptography/SignatureChecker.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/SignatureChecker.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {ECDSA} from "./ECDSA.sol"; import {IERC1271} from "../../interfaces/IERC1271.sol"; diff --git a/contracts/utils/cryptography/TrieProof.sol b/contracts/utils/cryptography/TrieProof.sol index 676e9f9c340..3c31648ffb6 100644 --- a/contracts/utils/cryptography/TrieProof.sol +++ b/contracts/utils/cryptography/TrieProof.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; +pragma solidity ^0.8.31; import {Bytes} from "../Bytes.sol"; import {Memory} from "../Memory.sol"; diff --git a/contracts/utils/cryptography/WebAuthn.sol b/contracts/utils/cryptography/WebAuthn.sol index aa0c474eebc..d173a509267 100644 --- a/contracts/utils/cryptography/WebAuthn.sol +++ b/contracts/utils/cryptography/WebAuthn.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/WebAuthn.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {P256} from "./P256.sol"; import {Base64} from "../Base64.sol"; diff --git a/contracts/utils/cryptography/signers/MultiSignerERC7913.sol b/contracts/utils/cryptography/signers/MultiSignerERC7913.sol index f485409bf28..76e6e718e4c 100644 --- a/contracts/utils/cryptography/signers/MultiSignerERC7913.sol +++ b/contracts/utils/cryptography/signers/MultiSignerERC7913.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (utils/cryptography/signers/MultiSignerERC7913.sol) -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {AbstractSigner} from "./AbstractSigner.sol"; import {SignatureChecker} from "../SignatureChecker.sol"; diff --git a/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol b/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol index 653272f9dfe..e8367803ae2 100644 --- a/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol +++ b/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (utils/cryptography/signers/MultiSignerERC7913Weighted.sol) -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {SafeCast} from "../../math/SafeCast.sol"; import {MultiSignerERC7913} from "./MultiSignerERC7913.sol"; diff --git a/contracts/utils/cryptography/signers/SignerERC7913.sol b/contracts/utils/cryptography/signers/SignerERC7913.sol index d0f567a3a76..c3f96c4d3f8 100644 --- a/contracts/utils/cryptography/signers/SignerERC7913.sol +++ b/contracts/utils/cryptography/signers/SignerERC7913.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (utils/cryptography/signers/SignerERC7913.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {AbstractSigner} from "./AbstractSigner.sol"; import {SignatureChecker} from "../SignatureChecker.sol"; diff --git a/contracts/utils/cryptography/signers/SignerP256.sol b/contracts/utils/cryptography/signers/SignerP256.sol index 131b5c1f1d4..1550f5ae99d 100644 --- a/contracts/utils/cryptography/signers/SignerP256.sol +++ b/contracts/utils/cryptography/signers/SignerP256.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (utils/cryptography/signers/SignerP256.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {AbstractSigner} from "./AbstractSigner.sol"; import {P256} from "../P256.sol"; diff --git a/contracts/utils/cryptography/signers/SignerRSA.sol b/contracts/utils/cryptography/signers/SignerRSA.sol index 7ca18ead447..de5137c5bd7 100644 --- a/contracts/utils/cryptography/signers/SignerRSA.sol +++ b/contracts/utils/cryptography/signers/SignerRSA.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.4.0) (utils/cryptography/signers/SignerRSA.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {AbstractSigner} from "./AbstractSigner.sol"; import {RSA} from "../RSA.sol"; diff --git a/contracts/utils/cryptography/signers/SignerWebAuthn.sol b/contracts/utils/cryptography/signers/SignerWebAuthn.sol index 1c1b95d8f41..034587405a8 100644 --- a/contracts/utils/cryptography/signers/SignerWebAuthn.sol +++ b/contracts/utils/cryptography/signers/SignerWebAuthn.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/signers/SignerWebAuthn.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {SignerP256} from "./SignerP256.sol"; import {WebAuthn} from "../WebAuthn.sol"; diff --git a/contracts/utils/cryptography/signers/draft-ERC7739.sol b/contracts/utils/cryptography/signers/draft-ERC7739.sol index 455246469a0..8c6d7a8b8fa 100644 --- a/contracts/utils/cryptography/signers/draft-ERC7739.sol +++ b/contracts/utils/cryptography/signers/draft-ERC7739.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/signers/draft-ERC7739.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {AbstractSigner} from "./AbstractSigner.sol"; import {EIP712} from "../EIP712.sol"; diff --git a/contracts/utils/cryptography/verifiers/ERC7913P256Verifier.sol b/contracts/utils/cryptography/verifiers/ERC7913P256Verifier.sol index bd37d64258e..3c9cf70062d 100644 --- a/contracts/utils/cryptography/verifiers/ERC7913P256Verifier.sol +++ b/contracts/utils/cryptography/verifiers/ERC7913P256Verifier.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/verifiers/ERC7913P256Verifier.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {P256} from "../P256.sol"; import {IERC7913SignatureVerifier} from "../../../interfaces/IERC7913.sol"; diff --git a/contracts/utils/cryptography/verifiers/ERC7913RSAVerifier.sol b/contracts/utils/cryptography/verifiers/ERC7913RSAVerifier.sol index 815958eb22f..17870226983 100644 --- a/contracts/utils/cryptography/verifiers/ERC7913RSAVerifier.sol +++ b/contracts/utils/cryptography/verifiers/ERC7913RSAVerifier.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/verifiers/ERC7913RSAVerifier.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {RSA} from "../RSA.sol"; import {IERC7913SignatureVerifier} from "../../../interfaces/IERC7913.sol"; diff --git a/contracts/utils/cryptography/verifiers/ERC7913WebAuthnVerifier.sol b/contracts/utils/cryptography/verifiers/ERC7913WebAuthnVerifier.sol index a9d789ba6d8..8b21ed0a1ab 100644 --- a/contracts/utils/cryptography/verifiers/ERC7913WebAuthnVerifier.sol +++ b/contracts/utils/cryptography/verifiers/ERC7913WebAuthnVerifier.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/cryptography/verifiers/ERC7913WebAuthnVerifier.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {WebAuthn} from "../WebAuthn.sol"; import {IERC7913SignatureVerifier} from "../../../interfaces/IERC7913.sol"; diff --git a/contracts/utils/draft-InteroperableAddress.sol b/contracts/utils/draft-InteroperableAddress.sol index d00cc6d100a..e9574b1b10b 100644 --- a/contracts/utils/draft-InteroperableAddress.sol +++ b/contracts/utils/draft-InteroperableAddress.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/draft-InteroperableAddress.sol) -pragma solidity ^0.8.26; +pragma solidity ^0.8.31; import {Math} from "./math/Math.sol"; import {SafeCast} from "./math/SafeCast.sol"; diff --git a/contracts/utils/math/Math.sol b/contracts/utils/math/Math.sol index d3e8e96aad3..cfe966ebf89 100644 --- a/contracts/utils/math/Math.sol +++ b/contracts/utils/math/Math.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/math/Math.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Panic} from "../Panic.sol"; import {SafeCast} from "./SafeCast.sol"; @@ -613,50 +613,22 @@ library Math { } /** - * @dev Return the log in base 2 of a positive value rounded towards zero. - * Returns 0 if given 0. + * @dev Counts the number of leading zero bits in a uint256. */ - function log2(uint256 x) internal pure returns (uint256 r) { - // If value has upper 128 bits set, log2 result is at least 128 - r = SafeCast.toUint(x > 0xffffffffffffffffffffffffffffffff) << 7; - // If upper 64 bits of 128-bit half set, add 64 to result - r |= SafeCast.toUint((x >> r) > 0xffffffffffffffff) << 6; - // If upper 32 bits of 64-bit half set, add 32 to result - r |= SafeCast.toUint((x >> r) > 0xffffffff) << 5; - // If upper 16 bits of 32-bit half set, add 16 to result - r |= SafeCast.toUint((x >> r) > 0xffff) << 4; - // If upper 8 bits of 16-bit half set, add 8 to result - r |= SafeCast.toUint((x >> r) > 0xff) << 3; - // If upper 4 bits of 8-bit half set, add 4 to result - r |= SafeCast.toUint((x >> r) > 0xf) << 2; - - // Shifts value right by the current result and use it as an index into this lookup table: - // - // | x (4 bits) | index | table[index] = MSB position | - // |------------|---------|-----------------------------| - // | 0000 | 0 | table[0] = 0 | - // | 0001 | 1 | table[1] = 0 | - // | 0010 | 2 | table[2] = 1 | - // | 0011 | 3 | table[3] = 1 | - // | 0100 | 4 | table[4] = 2 | - // | 0101 | 5 | table[5] = 2 | - // | 0110 | 6 | table[6] = 2 | - // | 0111 | 7 | table[7] = 2 | - // | 1000 | 8 | table[8] = 3 | - // | 1001 | 9 | table[9] = 3 | - // | 1010 | 10 | table[10] = 3 | - // | 1011 | 11 | table[11] = 3 | - // | 1100 | 12 | table[12] = 3 | - // | 1101 | 13 | table[13] = 3 | - // | 1110 | 14 | table[14] = 3 | - // | 1111 | 15 | table[15] = 3 | - // - // The lookup table is represented as a 32-byte value with the MSB positions for 0-15 in the first 16 bytes (most significant half). + function clz(uint256 value) internal pure returns (uint256 result) { assembly ("memory-safe") { - r := or(r, byte(shr(r, x), 0x0000010102020202030303030303030300000000000000000000000000000000)) + result := clz(value) } } + /** + * @dev Return the log in base 2 of a positive value rounded towards zero. + * Returns 0 if given 0. + */ + function log2(uint256 value) internal pure returns (uint256) { + return saturatingSub(255, clz(value)); + } + /** * @dev Return the log in base 2, following the selected rounding direction, of a positive value. * Returns 0 if given 0. @@ -723,17 +695,8 @@ library Math { * * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string. */ - function log256(uint256 x) internal pure returns (uint256 r) { - // If value has upper 128 bits set, log2 result is at least 128 - r = SafeCast.toUint(x > 0xffffffffffffffffffffffffffffffff) << 7; - // If upper 64 bits of 128-bit half set, add 64 to result - r |= SafeCast.toUint((x >> r) > 0xffffffffffffffff) << 6; - // If upper 32 bits of 64-bit half set, add 32 to result - r |= SafeCast.toUint((x >> r) > 0xffffffff) << 5; - // If upper 16 bits of 32-bit half set, add 16 to result - r |= SafeCast.toUint((x >> r) > 0xffff) << 4; - // Add 1 if upper 8 bits of 16-bit half set, and divide accumulated result by 8 - return (r >> 3) | SafeCast.toUint((x >> r) > 0xff); + function log256(uint256 value) internal pure returns (uint256) { + return log2(value) / 8; } /** @@ -753,11 +716,4 @@ library Math { function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) { return uint8(rounding) % 2 == 1; } - - /** - * @dev Counts the number of leading zero bits in a uint256. - */ - function clz(uint256 x) internal pure returns (uint256) { - return ternary(x == 0, 256, 255 - log2(x)); - } } diff --git a/contracts/utils/structs/Accumulators.sol b/contracts/utils/structs/Accumulators.sol index 696d930c14d..6cb9c013558 100644 --- a/contracts/utils/structs/Accumulators.sol +++ b/contracts/utils/structs/Accumulators.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/structs/Accumulators.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Memory} from "../Memory.sol"; diff --git a/contracts/utils/structs/Checkpoints.sol b/contracts/utils/structs/Checkpoints.sol index 6f67317ae64..df3d5f56e01 100644 --- a/contracts/utils/structs/Checkpoints.sol +++ b/contracts/utils/structs/Checkpoints.sol @@ -2,7 +2,7 @@ // OpenZeppelin Contracts (last updated v5.5.0) (utils/structs/Checkpoints.sol) // This file was procedurally generated from scripts/generate/templates/Checkpoints.js. -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Math} from "../math/Math.sol"; diff --git a/contracts/utils/structs/CircularBuffer.sol b/contracts/utils/structs/CircularBuffer.sol index 8b36239f5f4..a0be4a9bde3 100644 --- a/contracts/utils/structs/CircularBuffer.sol +++ b/contracts/utils/structs/CircularBuffer.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/structs/CircularBuffer.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Math} from "../math/Math.sol"; import {Arrays} from "../Arrays.sol"; diff --git a/contracts/utils/structs/EnumerableMap.sol b/contracts/utils/structs/EnumerableMap.sol index 77bfc32d292..c49f2394ecb 100644 --- a/contracts/utils/structs/EnumerableMap.sol +++ b/contracts/utils/structs/EnumerableMap.sol @@ -2,7 +2,7 @@ // OpenZeppelin Contracts (last updated v5.5.0) (utils/structs/EnumerableMap.sol) // This file was procedurally generated from scripts/generate/templates/EnumerableMap.js. -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {EnumerableSet} from "./EnumerableSet.sol"; diff --git a/contracts/utils/structs/EnumerableSet.sol b/contracts/utils/structs/EnumerableSet.sol index 8863e9d3fc2..1367767031e 100644 --- a/contracts/utils/structs/EnumerableSet.sol +++ b/contracts/utils/structs/EnumerableSet.sol @@ -2,7 +2,7 @@ // OpenZeppelin Contracts (last updated v5.5.0) (utils/structs/EnumerableSet.sol) // This file was procedurally generated from scripts/generate/templates/EnumerableSet.js. -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Arrays} from "../Arrays.sol"; import {Math} from "../math/Math.sol"; diff --git a/contracts/utils/structs/Heap.sol b/contracts/utils/structs/Heap.sol index 34fede1686a..bb0a3b12c16 100644 --- a/contracts/utils/structs/Heap.sol +++ b/contracts/utils/structs/Heap.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/structs/Heap.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Math} from "../math/Math.sol"; import {Comparators} from "../Comparators.sol"; diff --git a/contracts/utils/structs/MerkleTree.sol b/contracts/utils/structs/MerkleTree.sol index 792b9963a6a..debdf8f051f 100644 --- a/contracts/utils/structs/MerkleTree.sol +++ b/contracts/utils/structs/MerkleTree.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/structs/MerkleTree.sol) -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Hashes} from "../cryptography/Hashes.sol"; import {Arrays} from "../Arrays.sol"; diff --git a/contracts/utils/types/Time.sol b/contracts/utils/types/Time.sol index 8402e53bdf1..f2a779b28a9 100644 --- a/contracts/utils/types/Time.sol +++ b/contracts/utils/types/Time.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.5.0) (utils/types/Time.sol) -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Math} from "../math/Math.sol"; import {SafeCast} from "../math/SafeCast.sol"; diff --git a/foundry.toml b/foundry.toml index b4d2de7ac87..3d9b8421ebc 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,6 +1,6 @@ [profile.default] -solc_version = '0.8.27' -evm_version = 'prague' +solc_version = '0.8.31' +evm_version = 'osaka' optimizer = true optimizer_runs = 200 src = 'contracts' diff --git a/hardhat.config.js b/hardhat.config.js index ca04c6c098b..c32c7977a99 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -1,5 +1,5 @@ /// ENVVAR -// - COMPILER: compiler version (default: 0.8.27) +// - COMPILER: compiler version (default: 0.8.31) // - SRC: contracts folder to compile (default: contracts) // - RUNS: number of optimization runs (default: 200) // - IR: enable IR compilation (default: false) @@ -18,7 +18,7 @@ const { argv } = require('yargs/yargs')() compiler: { alias: 'compileVersion', type: 'string', - default: '0.8.27', + default: '0.8.31', }, src: { alias: 'source', @@ -38,7 +38,7 @@ const { argv } = require('yargs/yargs')() evm: { alias: 'evmVersion', type: 'string', - default: 'prague', + default: 'osaka', }, // Extra modules coverage: { @@ -103,7 +103,6 @@ module.exports = { // we rely on the `code-size` compiler warning, that will cause a compilation error. allowUnlimitedContractSize: true, initialBaseFeePerGas: argv.coverage ? 0 : undefined, - enableRip7212: true, }, }, exposed: { diff --git a/package-lock.json b/package-lock.json index 73099e6e7a1..df9c08c8e58 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "glob": "^13.0.0", "globals": "^16.0.0", "graphlib": "^2.1.8", - "hardhat": "^2.24.3", + "hardhat": "^2.28.0", "hardhat-exposed": "^0.3.15", "hardhat-gas-reporter": "^2.1.0", "hardhat-ignore-warnings": "^0.2.11", @@ -1828,92 +1828,92 @@ } }, "node_modules/@nomicfoundation/edr": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.11.3.tgz", - "integrity": "sha512-kqILRkAd455Sd6v8mfP3C1/0tCOynJWY+Ir+k/9Boocu2kObCrsFgG+ZWB7fSBVdd9cPVSNrnhWS+V+PEo637g==", + "version": "0.12.0-next.17", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.12.0-next.17.tgz", + "integrity": "sha512-Y8Kwqd5JpBmI/Kst6NJ/bZ81FeJea9J6WEwoSRTZnEvwfqW9dk9PI8zJs2UJpOACL1fXEPvN+doETbxT9EhwXA==", "dev": true, "license": "MIT", "dependencies": { - "@nomicfoundation/edr-darwin-arm64": "0.11.3", - "@nomicfoundation/edr-darwin-x64": "0.11.3", - "@nomicfoundation/edr-linux-arm64-gnu": "0.11.3", - "@nomicfoundation/edr-linux-arm64-musl": "0.11.3", - "@nomicfoundation/edr-linux-x64-gnu": "0.11.3", - "@nomicfoundation/edr-linux-x64-musl": "0.11.3", - "@nomicfoundation/edr-win32-x64-msvc": "0.11.3" + "@nomicfoundation/edr-darwin-arm64": "0.12.0-next.17", + "@nomicfoundation/edr-darwin-x64": "0.12.0-next.17", + "@nomicfoundation/edr-linux-arm64-gnu": "0.12.0-next.17", + "@nomicfoundation/edr-linux-arm64-musl": "0.12.0-next.17", + "@nomicfoundation/edr-linux-x64-gnu": "0.12.0-next.17", + "@nomicfoundation/edr-linux-x64-musl": "0.12.0-next.17", + "@nomicfoundation/edr-win32-x64-msvc": "0.12.0-next.17" }, "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@nomicfoundation/edr-darwin-arm64": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.11.3.tgz", - "integrity": "sha512-w0tksbdtSxz9nuzHKsfx4c2mwaD0+l5qKL2R290QdnN9gi9AV62p9DHkOgfBdyg6/a6ZlnQqnISi7C9avk/6VA==", + "version": "0.12.0-next.17", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.12.0-next.17.tgz", + "integrity": "sha512-gI9/9ysLeAid0+VSTBeutxOJ0/Rrh00niGkGL9+4lR577igDY+v55XGN0oBMST49ILS0f12J6ZY90LG8sxPXmQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@nomicfoundation/edr-darwin-x64": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.11.3.tgz", - "integrity": "sha512-QR4jAFrPbOcrO7O2z2ESg+eUeIZPe2bPIlQYgiJ04ltbSGW27FblOzdd5+S3RoOD/dsZGKAvvy6dadBEl0NgoA==", + "version": "0.12.0-next.17", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.12.0-next.17.tgz", + "integrity": "sha512-zSZtwf584RkIyb8awELDt7ctskogH0p4pmqOC4vhykc8ODOv2XLuG1IgeE4WgYhWGZOufbCtgLfpJQrWqN6mmw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.11.3.tgz", - "integrity": "sha512-Ktjv89RZZiUmOFPspuSBVJ61mBZQ2+HuLmV67InNlh9TSUec/iDjGIwAn59dx0bF/LOSrM7qg5od3KKac4LJDQ==", + "version": "0.12.0-next.17", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.12.0-next.17.tgz", + "integrity": "sha512-WjdfgV6B7gT5Q0NXtSIWyeK8gzaJX5HK6/jclYVHarWuEtS1LFgePYgMjK8rmm7IRTkM9RsE/PCuQEP1nrSsuA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@nomicfoundation/edr-linux-arm64-musl": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.11.3.tgz", - "integrity": "sha512-B3sLJx1rL2E9pfdD4mApiwOZSrX0a/KQSBWdlq1uAhFKqkl00yZaY4LejgZndsJAa4iKGQJlGnw4HCGeVt0+jA==", + "version": "0.12.0-next.17", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.12.0-next.17.tgz", + "integrity": "sha512-26rObKhhCDb9JkZbToyr7JVZo4tSVAFvzoJSJVmvpOl0LOHrfFsgVQu2n/8cNkwMAqulPubKL2E0jdnmEoZjWA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@nomicfoundation/edr-linux-x64-gnu": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.11.3.tgz", - "integrity": "sha512-D/4cFKDXH6UYyKPu6J3Y8TzW11UzeQI0+wS9QcJzjlrrfKj0ENW7g9VihD1O2FvXkdkTjcCZYb6ai8MMTCsaVw==", + "version": "0.12.0-next.17", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.12.0-next.17.tgz", + "integrity": "sha512-dPkHScIf/CU6h6k3k4HNUnQyQcVSLKanviHCAcs5HkviiJPxvVtOMMvtNBxoIvKZRxGFxf2eutcqQW4ZV1wRQQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@nomicfoundation/edr-linux-x64-musl": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.11.3.tgz", - "integrity": "sha512-ergXuIb4nIvmf+TqyiDX5tsE49311DrBky6+jNLgsGDTBaN1GS3OFwFS8I6Ri/GGn6xOaT8sKu3q7/m+WdlFzg==", + "version": "0.12.0-next.17", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.12.0-next.17.tgz", + "integrity": "sha512-5Ixe/bpyWZxC3AjIb8EomAOK44ajemBVx/lZRHZiWSBlwQpbSWriYAtKjKcReQQPwuYVjnFpAD2AtuCvseIjHw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@nomicfoundation/edr-win32-x64-msvc": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.11.3.tgz", - "integrity": "sha512-snvEf+WB3OV0wj2A7kQ+ZQqBquMcrozSLXcdnMdEl7Tmn+KDCbmFKBt3Tk0X3qOU4RKQpLPnTxdM07TJNVtung==", + "version": "0.12.0-next.17", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.12.0-next.17.tgz", + "integrity": "sha512-29YlvdgofSdXG1mUzIuH4kMXu1lmVc1hvYWUGWEH59L+LaakdhfJ/Wu5izeclKkrTh729Amtk/Hk1m29kFOO8A==", "dev": true, "license": "MIT", "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/@nomicfoundation/hardhat-chai-matchers": { @@ -5520,16 +5520,16 @@ } }, "node_modules/hardhat": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.26.0.tgz", - "integrity": "sha512-hwEUBvMJzl3Iuru5bfMOEDeF2d7cbMNNF46rkwdo8AeW2GDT4VxFLyYWTi6PTLrZiftHPDiKDlAdAiGvsR9FYA==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.28.0.tgz", + "integrity": "sha512-A3yBISI18EcnY2IR7Ny2xZF33Q3qH01yrWapeWbyGOiJm/386SasWjbHRHYgUlZ3YWJETIMh7wYfMUaXrofTDQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@ethereumjs/util": "^9.1.0", "@ethersproject/abi": "^5.1.2", - "@nomicfoundation/edr": "^0.11.3", + "@nomicfoundation/edr": "0.12.0-next.17", "@nomicfoundation/solidity-analyzer": "^0.1.0", "@sentry/node": "^5.18.1", "adm-zip": "^0.4.16", @@ -5550,7 +5550,7 @@ "json-stream-stringify": "^3.1.4", "keccak": "^3.0.2", "lodash": "^4.17.11", - "micro-eth-signer": "^0.16.0", + "micro-eth-signer": "^0.14.0", "mnemonist": "^0.38.0", "mocha": "^10.0.0", "p-map": "^4.0.0", @@ -7375,28 +7375,25 @@ } }, "node_modules/micro-eth-signer": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/micro-eth-signer/-/micro-eth-signer-0.16.0.tgz", - "integrity": "sha512-rsSJcMGfY+kt3ROlL3U6y5BcjkK2H0zDKUQV6soo1JvjrctKKe+X7rKB0YIuwhWjlhJIoVHLuRYF+GXyyuVXxQ==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/micro-eth-signer/-/micro-eth-signer-0.14.0.tgz", + "integrity": "sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw==", "dev": true, "license": "MIT", "dependencies": { - "@noble/curves": "~1.9.2", - "@noble/hashes": "2.0.0-beta.1", - "micro-packed": "~0.7.3" - }, - "engines": { - "node": ">= 20.19.0" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "micro-packed": "~0.7.2" } }, "node_modules/micro-eth-signer/node_modules/@noble/curves": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.4.tgz", - "integrity": "sha512-2bKONnuM53lINoDrSmK8qP8W271ms7pygDhZt4SiLOoLwBtoHqeCFi6RG42V8zd3mLHuJFhU/Bmaqo4nX0/kBw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.2.tgz", + "integrity": "sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==", "dev": true, "license": "MIT", "dependencies": { - "@noble/hashes": "1.8.0" + "@noble/hashes": "1.7.2" }, "engines": { "node": "^14.21.3 || >=16" @@ -7405,27 +7402,14 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/micro-eth-signer/node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/micro-eth-signer/node_modules/@noble/hashes": { - "version": "2.0.0-beta.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.0-beta.1.tgz", - "integrity": "sha512-xnnogJ6ccNZ55lLgWdjhBqKUdFoznjpFr3oy23n5Qm7h+ZMtt8v4zWvHg9zRW6jcETweplD5F4iUqb0SSPC+Dw==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.2.tgz", + "integrity": "sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 20.19.0" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" diff --git a/package.json b/package.json index 6f2d411dd5b..478e5780348 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "glob": "^13.0.0", "globals": "^16.0.0", "graphlib": "^2.1.8", - "hardhat": "^2.24.3", + "hardhat": "^2.28.0", "hardhat-exposed": "^0.3.15", "hardhat-gas-reporter": "^2.1.0", "hardhat-ignore-warnings": "^0.2.11", diff --git a/scripts/generate/templates/Arrays.js b/scripts/generate/templates/Arrays.js index 6c6f5cff98c..83627713e7b 100644 --- a/scripts/generate/templates/Arrays.js +++ b/scripts/generate/templates/Arrays.js @@ -3,7 +3,7 @@ const { capitalize } = require('../../helpers'); const { TYPES } = require('./Arrays.opts'); const header = `\ -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Comparators} from "./Comparators.sol"; import {SlotDerivation} from "./SlotDerivation.sol"; diff --git a/scripts/generate/templates/Checkpoints.js b/scripts/generate/templates/Checkpoints.js index 1ead8df6f29..16563c6bddf 100644 --- a/scripts/generate/templates/Checkpoints.js +++ b/scripts/generate/templates/Checkpoints.js @@ -3,7 +3,7 @@ const { OPTS } = require('./Checkpoints.opts'); // TEMPLATE const header = `\ -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Math} from "../math/Math.sol"; diff --git a/scripts/generate/templates/Checkpoints.t.js b/scripts/generate/templates/Checkpoints.t.js index 23d9466d28f..e140f08c069 100644 --- a/scripts/generate/templates/Checkpoints.t.js +++ b/scripts/generate/templates/Checkpoints.t.js @@ -4,7 +4,7 @@ const { OPTS } = require('./Checkpoints.opts.js'); // TEMPLATE const header = `\ -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; diff --git a/scripts/generate/templates/EnumerableMap.js b/scripts/generate/templates/EnumerableMap.js index 107e29e8ed7..6dc5a929803 100644 --- a/scripts/generate/templates/EnumerableMap.js +++ b/scripts/generate/templates/EnumerableMap.js @@ -3,7 +3,7 @@ const { fromBytes32, toBytes32 } = require('./conversion'); const { MAP_TYPES } = require('./Enumerable.opts'); const header = `\ -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {EnumerableSet} from "./EnumerableSet.sol"; diff --git a/scripts/generate/templates/EnumerableSet.js b/scripts/generate/templates/EnumerableSet.js index 2c5a54227a8..adaffd06093 100644 --- a/scripts/generate/templates/EnumerableSet.js +++ b/scripts/generate/templates/EnumerableSet.js @@ -3,7 +3,7 @@ const { fromBytes32, toBytes32 } = require('./conversion'); const { SET_TYPES } = require('./Enumerable.opts'); const header = `\ -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Arrays} from "../Arrays.sol"; import {Math} from "../math/Math.sol"; diff --git a/scripts/solc-versions.js b/scripts/solc-versions.js index cd27a3621e7..c06888d8486 100644 --- a/scripts/solc-versions.js +++ b/scripts/solc-versions.js @@ -3,7 +3,7 @@ const semver = require('semver'); const { range } = require('./helpers'); module.exports = { - versions: ['0.4.26', '0.5.16', '0.6.12', '0.7.6', '0.8.30'] + versions: ['0.4.26', '0.5.16', '0.6.12', '0.7.6', '0.8.33'] .map(semver.parse) .flatMap(({ major, minor, patch }) => range(patch + 1).map(p => `${major}.${minor}.${p}`)), compile: (source, version) => diff --git a/test/account/AccountEIP7702.t.sol b/test/account/AccountEIP7702.t.sol index 88323fc7fc9..872f447e539 100644 --- a/test/account/AccountEIP7702.t.sol +++ b/test/account/AccountEIP7702.t.sol @@ -1,5 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; + +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {AccountEIP7702Mock} from "@openzeppelin/contracts/mocks/account/AccountMock.sol"; diff --git a/test/governance/Governor.t.sol b/test/governance/Governor.t.sol index 66b684d26e4..217d62501aa 100644 --- a/test/governance/Governor.t.sol +++ b/test/governance/Governor.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; diff --git a/test/governance/extensions/GovernorSuperQuorumGreaterThanQuorum.t.sol b/test/governance/extensions/GovernorSuperQuorumGreaterThanQuorum.t.sol index 25fd846830d..35bf5fc14f1 100644 --- a/test/governance/extensions/GovernorSuperQuorumGreaterThanQuorum.t.sol +++ b/test/governance/extensions/GovernorSuperQuorumGreaterThanQuorum.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import { diff --git a/test/metatx/ERC2771Forwarder.t.sol b/test/metatx/ERC2771Forwarder.t.sol index 224367377ff..2bec895e0f9 100644 --- a/test/metatx/ERC2771Forwarder.t.sol +++ b/test/metatx/ERC2771Forwarder.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {ERC2771Forwarder} from "@openzeppelin/contracts/metatx/ERC2771Forwarder.sol"; diff --git a/test/token/ERC20/extensions/ERC4626.t.sol b/test/token/ERC20/extensions/ERC4626.t.sol index 72b0daca1c0..3889d9a7021 100644 --- a/test/token/ERC20/extensions/ERC4626.t.sol +++ b/test/token/ERC20/extensions/ERC4626.t.sol @@ -1,5 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; + +pragma solidity ^0.8.31; import {ERC4626Test} from "erc4626-tests/ERC4626.test.sol"; diff --git a/test/token/ERC721/extensions/ERC721Consecutive.t.sol b/test/token/ERC721/extensions/ERC721Consecutive.t.sol index 177ca5fb2ea..e6ebbad88dc 100644 --- a/test/token/ERC721/extensions/ERC721Consecutive.t.sol +++ b/test/token/ERC721/extensions/ERC721Consecutive.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; // solhint-disable func-name-mixedcase diff --git a/test/utils/Arrays.t.sol b/test/utils/Arrays.t.sol index 3fc63fabbcd..0aecb742412 100644 --- a/test/utils/Arrays.t.sol +++ b/test/utils/Arrays.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {SymTest} from "halmos-cheatcodes/SymTest.sol"; diff --git a/test/utils/Bytes.t.sol b/test/utils/Bytes.t.sol index 553d1b61ac5..8569319bd47 100644 --- a/test/utils/Bytes.t.sol +++ b/test/utils/Bytes.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; diff --git a/test/utils/Memory.t.sol b/test/utils/Memory.t.sol index cb8b8b390f1..5215b174cf8 100644 --- a/test/utils/Memory.t.sol +++ b/test/utils/Memory.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {Bytes} from "@openzeppelin/contracts/utils/Bytes.sol"; diff --git a/test/utils/RLP.t.sol b/test/utils/RLP.t.sol index 3a4db866616..243b5052680 100644 --- a/test/utils/RLP.t.sol +++ b/test/utils/RLP.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {RLP} from "@openzeppelin/contracts/utils/RLP.sol"; diff --git a/test/utils/Strings.t.sol b/test/utils/Strings.t.sol index fe3c90bd115..f5b71fb483e 100644 --- a/test/utils/Strings.t.sol +++ b/test/utils/Strings.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; diff --git a/test/utils/cryptography/MessageHashUtils.t.sol b/test/utils/cryptography/MessageHashUtils.t.sol index 4259c8839a4..9f2f6c3ea91 100644 --- a/test/utils/cryptography/MessageHashUtils.t.sol +++ b/test/utils/cryptography/MessageHashUtils.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; diff --git a/test/utils/cryptography/P256.t.sol b/test/utils/cryptography/P256.t.sol index ee11b43edef..a5c965d9466 100644 --- a/test/utils/cryptography/P256.t.sol +++ b/test/utils/cryptography/P256.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; @@ -16,6 +16,7 @@ contract P256Test is Test { (bytes32 r, bytes32 s) = vm.signP256(privateKey, digest); s = _ensureLowerS(s); assertTrue(P256.verify(digest, r, s, bytes32(x), bytes32(y))); + assertTrue(P256.verifyNative(digest, r, s, bytes32(x), bytes32(y))); assertTrue(P256.verifySolidity(digest, r, s, bytes32(x), bytes32(y))); } @@ -31,22 +32,6 @@ contract P256Test is Test { assertTrue((qx0 == bytes32(x) && qy0 == bytes32(y)) || (qx1 == bytes32(x) && qy1 == bytes32(y))); } - function testVerifyNativeUnsupportedRIP7212(bytes32 digest, uint256 seed) public { - // By default, the precompile at address 0x100 is not supported. - - uint256 privateKey = _asPrivateKey(seed); - - (uint256 x, uint256 y) = vm.publicKeyP256(privateKey); - (bytes32 r, bytes32 s) = vm.signP256(privateKey, digest); - s = _ensureLowerS(s); - - (bool success, bytes memory returndata) = address(this).call( - abi.encodeCall(P256Test.verifyNative, (digest, r, s, bytes32(x), bytes32(y))) - ); - assertFalse(success); - assertEq(returndata, abi.encodeWithSelector(Errors.MissingPrecompile.selector, address(0x100))); - } - function _asPrivateKey(uint256 seed) private pure returns (uint256) { return bound(seed, 1, P256.N - 1); } diff --git a/test/utils/cryptography/RSA.test.js b/test/utils/cryptography/RSA.test.js index bdf33911fe0..7ddf4d3a238 100644 --- a/test/utils/cryptography/RSA.test.js +++ b/test/utils/cryptography/RSA.test.js @@ -31,7 +31,7 @@ describe('RSA', function () { it(`signature length ${length} ${test.extra} ${result ? 'works' : 'fails'}`, async function () { const data = '0x' + test.Msg; const sig = '0x' + test.S; - const exp = '0x' + test.e; + const exp = ethers.stripZerosLeft('0x' + test.e); // strip zeros to reduce gas cost of the precompile const mod = '0x' + test.n; expect(await this.mock.$pkcs1Sha256(bytes32(ethers.sha256(data)), sig, exp, mod)).to.equal(result); diff --git a/test/utils/cryptography/WebAuthn.t.sol b/test/utils/cryptography/WebAuthn.t.sol index c36b28b7bad..7efdb5998e6 100644 --- a/test/utils/cryptography/WebAuthn.t.sol +++ b/test/utils/cryptography/WebAuthn.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {P256} from "@openzeppelin/contracts/utils/cryptography/P256.sol"; diff --git a/test/utils/draft-InteroperableAddress.t.sol b/test/utils/draft-InteroperableAddress.t.sol index 8fdf400d14b..a78d4b8fedc 100644 --- a/test/utils/draft-InteroperableAddress.t.sol +++ b/test/utils/draft-InteroperableAddress.t.sol @@ -1,5 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.26; + +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {InteroperableAddress} from "../../contracts/utils/draft-InteroperableAddress.sol"; diff --git a/test/utils/math/Math.t.sol b/test/utils/math/Math.t.sol index 4284e44a64b..e96ec22bef6 100644 --- a/test/utils/math/Math.t.sol +++ b/test/utils/math/Math.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test, stdError} from "forge-std/Test.sol"; diff --git a/test/utils/structs/Accumulators.t.sol b/test/utils/structs/Accumulators.t.sol index 83c64e9f17f..4d0e5e49bbd 100644 --- a/test/utils/structs/Accumulators.t.sol +++ b/test/utils/structs/Accumulators.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {Accumulators} from "@openzeppelin/contracts/utils/structs/Accumulators.sol"; diff --git a/test/utils/structs/Checkpoints.t.sol b/test/utils/structs/Checkpoints.t.sol index 6ca7faa4642..4260dbd38ef 100644 --- a/test/utils/structs/Checkpoints.t.sol +++ b/test/utils/structs/Checkpoints.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // This file was procedurally generated from scripts/generate/templates/Checkpoints.t.js. -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; diff --git a/test/utils/structs/Heap.t.sol b/test/utils/structs/Heap.t.sol index ba7d7701209..92050ac3d3e 100644 --- a/test/utils/structs/Heap.t.sol +++ b/test/utils/structs/Heap.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.31; import {Test} from "forge-std/Test.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";