diff --git a/.gitmodules b/.gitmodules index b7a56c37..6ae82c09 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,22 +4,22 @@ [submodule "lib/solidity-bytes-utils"] path = lib/solidity-bytes-utils url = https://github.com/GNSPS/solidity-bytes-utils -[submodule "lib/openzeppelin-contracts-4.9.3"] - path = lib/openzeppelin-contracts-4.9.3 - url = https://github.com/OpenZeppelin/openzeppelin-contracts -[submodule "lib/openzeppelin-contracts-upgradeable-4.9.3"] - path = lib/openzeppelin-contracts-upgradeable-4.9.3 - url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable [submodule "lib/immutable-seaport-1.5.0+im1.3"] path = lib/immutable-seaport-1.5.0+im1.3 url = https://github.com/immutable/seaport [submodule "lib/immutable-seaport-core-1.5.0+im1"] path = lib/immutable-seaport-core-1.5.0+im1 url = https://github.com/immutable/seaport-core -[submodule "lib/openzeppelin-contracts-5.0.2"] - path = lib/openzeppelin-contracts-5.0.2 - url = https://github.com/OpenZeppelin/openzeppelin-contracts [submodule "lib/axelar-gmp-sdk-solidity"] path = lib/axelar-gmp-sdk-solidity url = https://github.com/axelarnetwork/axelar-gmp-sdk-solidity +[submodule "lib/openzeppelin-contracts-5.6.1"] + path = lib/openzeppelin-contracts-5.6.1 + url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "lib/openzeppelin-contracts-4.9.6"] + path = lib/openzeppelin-contracts-4.9.6 + url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "lib/openzeppelin-contracts-upgradeable-4.9.6"] + path = lib/openzeppelin-contracts-upgradeable-4.9.6 + url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable diff --git a/DEPS.md b/DEPS.md index 24d9411a..501c1f74 100644 --- a/DEPS.md +++ b/DEPS.md @@ -7,13 +7,13 @@ The instructions below were used to install the dependencies. ``` forge install https://github.com/axelarnetwork/axelar-gmp-sdk-solidity --no-commit -forge install openzeppelin-contracts-4.9.3=OpenZeppelin/openzeppelin-contracts@4.9.3 --no-commit -forge install openzeppelin-contracts-upgradeable-4.9.3=OpenZeppelin/openzeppelin-contracts-upgradeable@4.9.3 --no-commit -forge install openzeppelin-contracts-5.0.2=OpenZeppelin/openzeppelin-contracts@5.0.2 --no-commit + +forge install openzeppelin-contracts-4.9.6=OpenZeppelin/openzeppelin-contracts@v4.9.6 +forge install openzeppelin-contracts-upgradeable-4.9.6=OpenZeppelin/openzeppelin-contracts-upgradeable@v4.9.6 + +forge install openzeppelin-contracts-5.6.1=OpenZeppelin/openzeppelin-contracts@v5.6.1 forge install immutable-seaport-1.5.0+im1.3=immutable/seaport@1.5.0+im1.3 --no-commit forge install immutable-seaport-core-1.5.0+im1=immutable/seaport-core@1.5.0+im1 --no-commit -forge install immutable-seaport-1.6.0+im1=immutable/seaport@1.6.0+im1 --no-commit -forge install immutable-seaport-core-1.6.0+im1=immutable/seaport-core@1.6.0+im1 --no-commit ``` diff --git a/README.md b/README.md index 239323e2..77767603 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,8 @@ Installing this package pulls **runtime dependencies from npm** — the publishe Solidity imports use paths such as `@imtbl/contracts/contracts/...` (see [package.json](./package.json) `exports`). Sources under `contracts/` depend on libraries that **you must supply** via your toolchain — for example: -- **`@openzeppelin/contracts`** — listed as a **peer dependency** (`^4.9.3 || ^5.0.0`); align with presets that mix v4 and v5 remappings used in this repo. -- **`@openzeppelin/contracts-upgradeable`** — for upgradeable presets (typically v4.9.x path `openzeppelin-contracts-upgradeable-4.9.3`). +- **`@openzeppelin/contracts`** — listed as a **peer dependency** (`^4.9.6 || ^5.6.1`); align with presets that mix v4 and v5 remappings used in this repo. +- **`@openzeppelin/contracts-upgradeable`** — for upgradeable presets (typically v4.9.x path `openzeppelin-contracts-upgradeable-4.9.6`). - **`@axelar-network/axelar-gmp-sdk-solidity`** — for deploy / GMP-related contracts (e.g. `OwnableCreate3Deployer`). - **Immutable Seaport forks** — Seaport-related files expect remappings compatible with Immutable’s Seaport branches (see [remappings.txt](./remappings.txt) and [`.gitmodules`](./.gitmodules) for the git URLs and aliases used in this repo: `seaport`, `seaport-core`, `seaport-types`, `seaport-16`, `seaport-core-16`, `seaport-types-16`). @@ -48,7 +48,7 @@ Solidity imports use paths such as `@imtbl/contracts/contracts/...` (see [packag Once `@imtbl/contracts` is installed, use the Solidity files from the package by importing them: ```solidity -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import "@imtbl/contracts/contracts/token/erc721/preset/ImmutableERC721.sol"; diff --git a/contracts/access/IMintingAccessControl.sol b/contracts/access/IMintingAccessControl.sol index 0acecd67..1f1df80f 100644 --- a/contracts/access/IMintingAccessControl.sol +++ b/contracts/access/IMintingAccessControl.sol @@ -1,8 +1,8 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {IAccessControlEnumerable} from "@openzeppelin/contracts/access/IAccessControlEnumerable.sol"; +import {IAccessControlEnumerable} from "openzeppelin-contracts-4/access/IAccessControlEnumerable.sol"; interface IMintingAccessControl is IAccessControlEnumerable { /** diff --git a/contracts/access/MintingAccessControl.sol b/contracts/access/MintingAccessControl.sol index 750f493d..9c79cd64 100644 --- a/contracts/access/MintingAccessControl.sol +++ b/contracts/access/MintingAccessControl.sol @@ -1,8 +1,8 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; +import {AccessControlEnumerable} from "openzeppelin-contracts-4/access/AccessControlEnumerable.sol"; abstract contract MintingAccessControl is AccessControlEnumerable { /// @notice Role to mint tokens diff --git a/contracts/allowlist/IOperatorAllowlist.sol b/contracts/allowlist/IOperatorAllowlist.sol index d92c92c7..5bf9ef75 100644 --- a/contracts/allowlist/IOperatorAllowlist.sol +++ b/contracts/allowlist/IOperatorAllowlist.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; /** * @notice Required interface of an OperatorAllowlist compliant contract diff --git a/contracts/allowlist/IWalletProxy.sol b/contracts/allowlist/IWalletProxy.sol index 25f7a830..d5090c5c 100644 --- a/contracts/allowlist/IWalletProxy.sol +++ b/contracts/allowlist/IWalletProxy.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; // Interface to retrieve the implementation stored inside the Proxy contract /// Interface for Passport Wallet's proxy contract. diff --git a/contracts/allowlist/OperatorAllowlistEnforced.sol b/contracts/allowlist/OperatorAllowlistEnforced.sol index 47978906..a6d402eb 100644 --- a/contracts/allowlist/OperatorAllowlistEnforced.sol +++ b/contracts/allowlist/OperatorAllowlistEnforced.sol @@ -1,10 +1,10 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 // slither-disable-start calls-loop -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IOperatorAllowlist} from "./IOperatorAllowlist.sol"; -import {IERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; +import {IERC165} from "openzeppelin-contracts-5/utils/introspection/ERC165.sol"; import {OperatorAllowlistEnforcementErrors} from "./OperatorAllowlistEnforcementErrors.sol"; // Disable this code size warning as there is no plan to change this logic. diff --git a/contracts/allowlist/OperatorAllowlistEnforcementErrors.sol b/contracts/allowlist/OperatorAllowlistEnforcementErrors.sol index ec4dead4..a66aa812 100644 --- a/contracts/allowlist/OperatorAllowlistEnforcementErrors.sol +++ b/contracts/allowlist/OperatorAllowlistEnforcementErrors.sol @@ -1,5 +1,5 @@ //SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; interface OperatorAllowlistEnforcementErrors { /// @dev Error thrown when the operatorAllowlist address does not implement the IOperatorAllowlist interface diff --git a/contracts/allowlist/OperatorAllowlistUpgradeable.sol b/contracts/allowlist/OperatorAllowlistUpgradeable.sol index 2c283cc1..9278d0fd 100644 --- a/contracts/allowlist/OperatorAllowlistUpgradeable.sol +++ b/contracts/allowlist/OperatorAllowlistUpgradeable.sol @@ -1,14 +1,14 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/proxy/utils/UUPSUpgradeable.sol"; +import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4/proxy/utils/UUPSUpgradeable.sol"; import { AccessControlEnumerableUpgradeable -} from "openzeppelin-contracts-upgradeable-4.9.3/access/AccessControlEnumerableUpgradeable.sol"; +} from "openzeppelin-contracts-upgradeable-4/access/AccessControlEnumerableUpgradeable.sol"; // Introspection -import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; +import {ERC165} from "openzeppelin-contracts-4/utils/introspection/ERC165.sol"; // Interfaces import {IOperatorAllowlist} from "./IOperatorAllowlist.sol"; diff --git a/contracts/deployer/AccessControlledDeployer.sol b/contracts/deployer/AccessControlledDeployer.sol index 48c90dc3..b6fe4161 100644 --- a/contracts/deployer/AccessControlledDeployer.sol +++ b/contracts/deployer/AccessControlledDeployer.sol @@ -1,11 +1,11 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IDeployer} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IDeployer.sol"; -import {Pausable} from "@openzeppelin/contracts/security/Pausable.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; +import {Pausable} from "openzeppelin-contracts-5/utils/Pausable.sol"; +import {Ownable} from "openzeppelin-contracts-5/access/Ownable.sol"; +import {AccessControlEnumerable} from "openzeppelin-contracts-5/access/extensions/AccessControlEnumerable.sol"; /** * @title AccessControlledDeployer diff --git a/contracts/deployer/create/OwnableCreateDeploy.sol b/contracts/deployer/create/OwnableCreateDeploy.sol index 25ef28a8..6d78d96a 100644 --- a/contracts/deployer/create/OwnableCreateDeploy.sol +++ b/contracts/deployer/create/OwnableCreateDeploy.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2024 // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; /** * @title OwnableCreateDeploy Contract diff --git a/contracts/deployer/create3/OwnableCreate3.sol b/contracts/deployer/create3/OwnableCreate3.sol index ad88b747..3e66b470 100644 --- a/contracts/deployer/create3/OwnableCreate3.sol +++ b/contracts/deployer/create3/OwnableCreate3.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2024 // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IDeploy} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IDeploy.sol"; import {ContractAddress} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/ContractAddress.sol"; diff --git a/contracts/deployer/create3/OwnableCreate3Address.sol b/contracts/deployer/create3/OwnableCreate3Address.sol index 2b88bcbb..790ff444 100644 --- a/contracts/deployer/create3/OwnableCreate3Address.sol +++ b/contracts/deployer/create3/OwnableCreate3Address.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2024 // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {OwnableCreateDeploy} from "../create/OwnableCreateDeploy.sol"; diff --git a/contracts/deployer/create3/OwnableCreate3Deployer.sol b/contracts/deployer/create3/OwnableCreate3Deployer.sol index 9775a444..538d13ec 100644 --- a/contracts/deployer/create3/OwnableCreate3Deployer.sol +++ b/contracts/deployer/create3/OwnableCreate3Deployer.sol @@ -1,8 +1,8 @@ // Copyright Immutable Pty Ltd 2018 - 2023 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {Ownable} from "openzeppelin-contracts-5/access/Ownable.sol"; import {Deployer} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/deploy/Deployer.sol"; import {OwnableCreate3} from "./OwnableCreate3.sol"; @@ -24,8 +24,7 @@ import {OwnableCreate3} from "./OwnableCreate3.sol"; * The intermediary contract is an instance of the {OwnableCreateDeploy} contract and can only be called by this contract. */ contract OwnableCreate3Deployer is Ownable, OwnableCreate3, Deployer { - constructor(address owner) Ownable() { - transferOwnership(owner); + constructor(address owner) Ownable(owner) { } /** diff --git a/contracts/multicall/GuardedMulticaller2.sol b/contracts/multicall/GuardedMulticaller2.sol index 1bfae010..43c33e79 100644 --- a/contracts/multicall/GuardedMulticaller2.sol +++ b/contracts/multicall/GuardedMulticaller2.sol @@ -1,29 +1,21 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -// Signature Validation -import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol"; - -// Access Control -import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; - -// Reentrancy Guard -import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard.sol"; - -// EIP-712 Typed Structs -import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol"; +import {SignatureChecker} from "openzeppelin-contracts-5/utils/cryptography/SignatureChecker.sol"; +import {AccessControlEnumerable} from "openzeppelin-contracts-5/access/extensions/AccessControlEnumerable.sol"; +import {ReentrancyGuard} from "openzeppelin-contracts-5/utils/ReentrancyGuard.sol"; +import {EIP712} from "openzeppelin-contracts-5/utils/cryptography/EIP712.sol"; /** * * @title GuardedMulticaller2 contract - * @author Immutable * @notice This contract is used to batch calls to other contracts. * @dev This contract is not designed to be upgradeable. If an issue is found with this contract, * a new version will be deployed. All approvals granted to this contract will be revoked before * a new version is deployed. Approvals will be granted to the new contract. */ -contract GuardedMulticaller2 is AccessControl, ReentrancyGuard, EIP712 { +contract GuardedMulticaller2 is AccessControlEnumerable, ReentrancyGuard, EIP712 { /// @dev Struct for call data struct Call { address target; diff --git a/contracts/payment-splitter/PaymentSplitter.sol b/contracts/payment-splitter/PaymentSplitter.sol index 508e38e9..1eedb25c 100644 --- a/contracts/payment-splitter/PaymentSplitter.sol +++ b/contracts/payment-splitter/PaymentSplitter.sol @@ -1,12 +1,12 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {SafeERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {Address} from "@openzeppelin/contracts/utils/Address.sol"; -import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; +import {SafeERC20, IERC20} from "openzeppelin-contracts-5/token/ERC20/utils/SafeERC20.sol"; +import {Address} from "openzeppelin-contracts-5/utils/Address.sol"; +import {AccessControlEnumerable} from "openzeppelin-contracts-5/access/extensions/AccessControlEnumerable.sol"; import {IPaymentSplitterErrors} from "./PaymentSplitterErrors.sol"; -import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard.sol"; +import {ReentrancyGuard} from "openzeppelin-contracts-5/utils/ReentrancyGuard.sol"; /** * @title PaymentSplitter diff --git a/contracts/payment-splitter/PaymentSplitterErrors.sol b/contracts/payment-splitter/PaymentSplitterErrors.sol index 2038d8e3..13a71d82 100644 --- a/contracts/payment-splitter/PaymentSplitterErrors.sol +++ b/contracts/payment-splitter/PaymentSplitterErrors.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 //SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; interface IPaymentSplitterErrors { /// @dev caller tried to add payees with shares of unequal length diff --git a/contracts/staking/IStakeHolder.sol b/contracts/staking/IStakeHolder.sol index 3ba8990b..ac7c36b7 100644 --- a/contracts/staking/IStakeHolder.sol +++ b/contracts/staking/IStakeHolder.sol @@ -1,10 +1,10 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import { IAccessControlEnumerableUpgradeable -} from "openzeppelin-contracts-upgradeable-4.9.3/access/IAccessControlEnumerableUpgradeable.sol"; +} from "openzeppelin-contracts-upgradeable-4/access/IAccessControlEnumerableUpgradeable.sol"; /** * @title IStakeHolder: Interface for staking system. diff --git a/contracts/staking/IStakeHolderV2.sol b/contracts/staking/IStakeHolderV2.sol index f982ac98..476372b1 100644 --- a/contracts/staking/IStakeHolderV2.sol +++ b/contracts/staking/IStakeHolderV2.sol @@ -1,6 +1,6 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "./IStakeHolder.sol"; diff --git a/contracts/staking/IWIMX.sol b/contracts/staking/IWIMX.sol index 2759b7ab..7fd86ad0 100644 --- a/contracts/staking/IWIMX.sol +++ b/contracts/staking/IWIMX.sol @@ -1,8 +1,8 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20} from "openzeppelin-contracts-5/token/ERC20/IERC20.sol"; /* * @notice Interface for the Wrapped IMX (wIMX) contract. diff --git a/contracts/staking/StakeHolderBase.sol b/contracts/staking/StakeHolderBase.sol index 59dbe097..45bf8ec6 100644 --- a/contracts/staking/StakeHolderBase.sol +++ b/contracts/staking/StakeHolderBase.sol @@ -1,14 +1,14 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/proxy/utils/UUPSUpgradeable.sol"; +import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4/proxy/utils/UUPSUpgradeable.sol"; import { AccessControlEnumerableUpgradeable -} from "openzeppelin-contracts-upgradeable-4.9.3/access/AccessControlEnumerableUpgradeable.sol"; +} from "openzeppelin-contracts-upgradeable-4/access/AccessControlEnumerableUpgradeable.sol"; import { ReentrancyGuardUpgradeable -} from "openzeppelin-contracts-upgradeable-4.9.3/security/ReentrancyGuardUpgradeable.sol"; +} from "openzeppelin-contracts-upgradeable-4/security/ReentrancyGuardUpgradeable.sol"; import {IStakeHolder} from "./IStakeHolder.sol"; /** diff --git a/contracts/staking/StakeHolderBaseV2.sol b/contracts/staking/StakeHolderBaseV2.sol index dcda8454..bd077ddf 100644 --- a/contracts/staking/StakeHolderBaseV2.sol +++ b/contracts/staking/StakeHolderBaseV2.sol @@ -1,6 +1,6 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderBase} from "./StakeHolderBase.sol"; import {IStakeHolderV2, IStakeHolder} from "./IStakeHolderV2.sol"; diff --git a/contracts/staking/StakeHolderNative.sol b/contracts/staking/StakeHolderNative.sol index b7c33078..1563ee0b 100644 --- a/contracts/staking/StakeHolderNative.sol +++ b/contracts/staking/StakeHolderNative.sol @@ -1,6 +1,6 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder, StakeHolderBase} from "./StakeHolderBase.sol"; diff --git a/contracts/staking/StakeHolderNativeV2.sol b/contracts/staking/StakeHolderNativeV2.sol index c60e3e81..ac9534af 100644 --- a/contracts/staking/StakeHolderNativeV2.sol +++ b/contracts/staking/StakeHolderNativeV2.sol @@ -1,6 +1,6 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder, StakeHolderBase, StakeHolderBaseV2} from "./StakeHolderBaseV2.sol"; diff --git a/contracts/staking/StakeHolderWIMX.sol b/contracts/staking/StakeHolderWIMX.sol index 1b92ac6f..fa203408 100644 --- a/contracts/staking/StakeHolderWIMX.sol +++ b/contracts/staking/StakeHolderWIMX.sol @@ -1,6 +1,6 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder, StakeHolderBase, StakeHolderNative} from "./StakeHolderNative.sol"; import {IWIMX} from "./IWIMX.sol"; diff --git a/contracts/staking/StakeHolderWIMXV2.sol b/contracts/staking/StakeHolderWIMXV2.sol index 4c11e727..b0bcc189 100644 --- a/contracts/staking/StakeHolderWIMXV2.sol +++ b/contracts/staking/StakeHolderWIMXV2.sol @@ -1,6 +1,6 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder, StakeHolderBase, StakeHolderNativeV2} from "./StakeHolderNativeV2.sol"; import {IWIMX} from "./IWIMX.sol"; diff --git a/contracts/staking/WIMX.sol b/contracts/staking/WIMX.sol index 763b5ce4..19f5fd0b 100644 --- a/contracts/staking/WIMX.sol +++ b/contracts/staking/WIMX.sol @@ -1,9 +1,9 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IWIMX} from "./IWIMX.sol"; -import {Address} from "@openzeppelin/contracts/utils/Address.sol"; +import {Address} from "openzeppelin-contracts-5/utils/Address.sol"; /** * @notice WIMX is a wrapped IMX contract that allows users to wrap their native IMX. diff --git a/contracts/token/erc1155/abstract/ERC1155Permit.sol b/contracts/token/erc1155/abstract/ERC1155Permit.sol index aa82232a..949ceea9 100644 --- a/contracts/token/erc1155/abstract/ERC1155Permit.sol +++ b/contracts/token/erc1155/abstract/ERC1155Permit.sol @@ -1,10 +1,10 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {ERC1155Burnable, ERC1155} from "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol"; -import {EIP712, ECDSA} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol"; -import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol"; +import {ERC1155Burnable, ERC1155} from "openzeppelin-contracts-4/token/ERC1155/extensions/ERC1155Burnable.sol"; +import {EIP712, ECDSA} from "openzeppelin-contracts-4/utils/cryptography/EIP712.sol"; +import {IERC1271} from "openzeppelin-contracts-4/interfaces/IERC1271.sol"; import {BytesLib} from "solidity-bytes-utils/contracts/BytesLib.sol"; import {IERC1155Permit} from "./IERC1155Permit.sol"; import {IImmutableERC1155Errors} from "../interfaces/IImmutableERC1155Errors.sol"; diff --git a/contracts/token/erc1155/abstract/IERC1155Permit.sol b/contracts/token/erc1155/abstract/IERC1155Permit.sol index 5f63651e..fff290a5 100644 --- a/contracts/token/erc1155/abstract/IERC1155Permit.sol +++ b/contracts/token/erc1155/abstract/IERC1155Permit.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol) -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; interface IERC1155Permit { function permit(address owner, address spender, bool approved, uint256 deadline, bytes memory sig) external; diff --git a/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol b/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol index 479bcb0c..a92adfbd 100644 --- a/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol +++ b/contracts/token/erc1155/abstract/ImmutableERC1155Base.sol @@ -1,11 +1,11 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {ERC1155Permit, ERC1155} from "../../../token/erc1155/abstract/ERC1155Permit.sol"; +import {ERC1155Permit, ERC1155} from "./ERC1155Permit.sol"; // Allowlist -import {ERC2981} from "@openzeppelin/contracts/token/common/ERC2981.sol"; +import {ERC2981} from "openzeppelin-contracts-4/token/common/ERC2981.sol"; import {OperatorAllowlistEnforced} from "../../../allowlist/OperatorAllowlistEnforced.sol"; import {AccessControlEnumerable, MintingAccessControl} from "../../../access/MintingAccessControl.sol"; diff --git a/contracts/token/erc1155/interfaces/IImmutableERC1155Errors.sol b/contracts/token/erc1155/interfaces/IImmutableERC1155Errors.sol index 06f92c92..aff2dd58 100644 --- a/contracts/token/erc1155/interfaces/IImmutableERC1155Errors.sol +++ b/contracts/token/erc1155/interfaces/IImmutableERC1155Errors.sol @@ -1,5 +1,5 @@ //SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; interface IImmutableERC1155Errors { /// @dev Deadline exceeded for permit diff --git a/contracts/token/erc1155/preset/ImmutableERC1155.sol b/contracts/token/erc1155/preset/ImmutableERC1155.sol index 037e0d26..c46ae667 100644 --- a/contracts/token/erc1155/preset/ImmutableERC1155.sol +++ b/contracts/token/erc1155/preset/ImmutableERC1155.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ImmutableERC1155Base} from "../abstract/ImmutableERC1155Base.sol"; diff --git a/contracts/token/erc20/preset/Errors.sol b/contracts/token/erc20/preset/IImmutableERC20Errors.sol similarity index 76% rename from contracts/token/erc20/preset/Errors.sol rename to contracts/token/erc20/preset/IImmutableERC20Errors.sol index 3b54caf8..91a3f7c5 100644 --- a/contracts/token/erc20/preset/Errors.sol +++ b/contracts/token/erc20/preset/IImmutableERC20Errors.sol @@ -1,5 +1,5 @@ //SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; interface IImmutableERC20Errors { error RenounceOwnershipNotAllowed(); diff --git a/contracts/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.sol b/contracts/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.sol index af2f41d3..653592fe 100644 --- a/contracts/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.sol +++ b/contracts/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.sol @@ -1,10 +1,10 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; -import {IImmutableERC20Errors} from "./Errors.sol"; +import {Ownable} from "openzeppelin-contracts-4/access/Ownable.sol"; +import {ERC20} from "openzeppelin-contracts-4/token/ERC20/ERC20.sol"; +import {IImmutableERC20Errors} from "./IImmutableERC20Errors.sol"; /** * @notice ERC 20 contract that mints a fixed total supply of tokens when the contract diff --git a/contracts/token/erc20/preset/ImmutableERC20MinterBurnerPermit.sol b/contracts/token/erc20/preset/ImmutableERC20MinterBurnerPermit.sol index bb30b37b..5ca061cf 100644 --- a/contracts/token/erc20/preset/ImmutableERC20MinterBurnerPermit.sol +++ b/contracts/token/erc20/preset/ImmutableERC20MinterBurnerPermit.sol @@ -1,13 +1,13 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {ERC20Permit, ERC20} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol"; -import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; -import {ERC20Capped} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol"; -import {AccessControl, IAccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; +import {ERC20Permit, ERC20} from "openzeppelin-contracts-4/token/ERC20/extensions/ERC20Permit.sol"; +import {ERC20Burnable} from "openzeppelin-contracts-4/token/ERC20/extensions/ERC20Burnable.sol"; +import {ERC20Capped} from "openzeppelin-contracts-4/token/ERC20/extensions/ERC20Capped.sol"; +import {AccessControl, IAccessControl} from "openzeppelin-contracts-4/access/AccessControl.sol"; import {MintingAccessControl} from "../../../access/MintingAccessControl.sol"; -import {IImmutableERC20Errors} from "./Errors.sol"; +import {IImmutableERC20Errors} from "./IImmutableERC20Errors.sol"; /** * @notice ERC 20 contract that wraps Open Zeppelin's ERC 20 contract. diff --git a/contracts/token/erc721/abstract/ERC721HybridPermitV2.sol b/contracts/token/erc721/abstract/ERC721HybridPermitV2.sol index 0ddc1e60..3da59c91 100644 --- a/contracts/token/erc721/abstract/ERC721HybridPermitV2.sol +++ b/contracts/token/erc721/abstract/ERC721HybridPermitV2.sol @@ -1,11 +1,11 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol"; -import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol"; -import {IERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; +import {ECDSA} from "openzeppelin-contracts-4/utils/cryptography/ECDSA.sol"; +import {EIP712} from "openzeppelin-contracts-4/utils/cryptography/EIP712.sol"; +import {IERC1271} from "openzeppelin-contracts-4/interfaces/IERC1271.sol"; +import {IERC165} from "openzeppelin-contracts-4/utils/introspection/ERC165.sol"; import {BytesLib} from "solidity-bytes-utils/contracts/BytesLib.sol"; import {IERC4494} from "./IERC4494.sol"; import {ERC721HybridV2} from "./ERC721HybridV2.sol"; diff --git a/contracts/token/erc721/abstract/ERC721HybridV2.sol b/contracts/token/erc721/abstract/ERC721HybridV2.sol index 59cbd73e..1a5cb187 100644 --- a/contracts/token/erc721/abstract/ERC721HybridV2.sol +++ b/contracts/token/erc721/abstract/ERC721HybridV2.sol @@ -1,9 +1,9 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {IERC721, ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; -import {BitMaps} from "@openzeppelin/contracts/utils/structs/BitMaps.sol"; +import {IERC721, ERC721} from "openzeppelin-contracts-4/token/ERC721/ERC721.sol"; +import {BitMaps} from "openzeppelin-contracts-4/utils/structs/BitMaps.sol"; import {ERC721PsiV2, ERC721PsiBurnableV2} from "../erc721psi/ERC721PsiBurnableV2.sol"; import {IImmutableERC721Errors} from "../interfaces/IImmutableERC721Errors.sol"; import {IImmutableERC721Structs} from "../interfaces/IImmutableERC721Structs.sol"; diff --git a/contracts/token/erc721/abstract/ERC721Permit.sol b/contracts/token/erc721/abstract/ERC721Permit.sol index ebb125af..ff727895 100644 --- a/contracts/token/erc721/abstract/ERC721Permit.sol +++ b/contracts/token/erc721/abstract/ERC721Permit.sol @@ -1,14 +1,13 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol"; -import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol"; +import {ECDSA} from "openzeppelin-contracts-4/utils/cryptography/ECDSA.sol"; +import {EIP712} from "openzeppelin-contracts-4/utils/cryptography/EIP712.sol"; +import {IERC1271} from "openzeppelin-contracts-4/interfaces/IERC1271.sol"; import {BytesLib} from "solidity-bytes-utils/contracts/BytesLib.sol"; import {IERC4494} from "./IERC4494.sol"; -import {ERC721, ERC721Burnable, IERC165} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol"; -// Errors +import {ERC721, ERC721Burnable, IERC165} from "openzeppelin-contracts-4/token/ERC721/extensions/ERC721Burnable.sol"; import {IImmutableERC721Errors} from "../interfaces/IImmutableERC721Errors.sol"; /** diff --git a/contracts/token/erc721/abstract/IERC4494.sol b/contracts/token/erc721/abstract/IERC4494.sol index 457b03bd..ccd2f55a 100644 --- a/contracts/token/erc721/abstract/IERC4494.sol +++ b/contracts/token/erc721/abstract/IERC4494.sol @@ -1,8 +1,8 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {IERC165} from "@openzeppelin/contracts/interfaces/IERC165.sol"; +import {IERC165} from "openzeppelin-contracts-4/interfaces/IERC165.sol"; /// /// @dev Interface for token permits for ERC721 diff --git a/contracts/token/erc721/abstract/ImmutableERC721Base.sol b/contracts/token/erc721/abstract/ImmutableERC721Base.sol index 83d23067..7503afc0 100644 --- a/contracts/token/erc721/abstract/ImmutableERC721Base.sol +++ b/contracts/token/erc721/abstract/ImmutableERC721Base.sol @@ -1,16 +1,16 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; // Token import {ERC721Permit, ERC721, ERC721Burnable} from "./ERC721Permit.sol"; // Allowlist -import {ERC2981} from "@openzeppelin/contracts/token/common/ERC2981.sol"; +import {ERC2981} from "openzeppelin-contracts-4/token/common/ERC2981.sol"; import {OperatorAllowlistEnforced} from "../../../allowlist/OperatorAllowlistEnforced.sol"; // Utils -import {BitMaps} from "@openzeppelin/contracts/utils/structs/BitMaps.sol"; +import {BitMaps} from "openzeppelin-contracts-4/utils/structs/BitMaps.sol"; import {AccessControlEnumerable, MintingAccessControl} from "../../../access/MintingAccessControl.sol"; // forge-lint: disable-start(pascal-case-struct) diff --git a/contracts/token/erc721/abstract/ImmutableERC721HybridBaseV2.sol b/contracts/token/erc721/abstract/ImmutableERC721HybridBaseV2.sol index c23e466c..97399286 100644 --- a/contracts/token/erc721/abstract/ImmutableERC721HybridBaseV2.sol +++ b/contracts/token/erc721/abstract/ImmutableERC721HybridBaseV2.sol @@ -1,10 +1,10 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {ERC721, IERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import {ERC721, IERC721} from "openzeppelin-contracts-4/token/ERC721/ERC721.sol"; import {AccessControlEnumerable, MintingAccessControl} from "../../../access/MintingAccessControl.sol"; -import {ERC2981} from "@openzeppelin/contracts/token/common/ERC2981.sol"; +import {ERC2981} from "openzeppelin-contracts-4/token/common/ERC2981.sol"; import {OperatorAllowlistEnforced} from "../../../allowlist/OperatorAllowlistEnforced.sol"; import {ERC721HybridPermitV2} from "./ERC721HybridPermitV2.sol"; import {ERC721HybridV2} from "./ERC721HybridV2.sol"; diff --git a/contracts/token/erc721/erc721psi/ERC721PsiBurnableV2.sol b/contracts/token/erc721/erc721psi/ERC721PsiBurnableV2.sol index 6ccaded5..246ac25b 100644 --- a/contracts/token/erc721/erc721psi/ERC721PsiBurnableV2.sol +++ b/contracts/token/erc721/erc721psi/ERC721PsiBurnableV2.sol @@ -3,7 +3,7 @@ /** * Inspired by ERC721Psi: https://github.com/estarriolvetch/ERC721Psi */ -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721PsiV2} from "./ERC721PsiV2.sol"; diff --git a/contracts/token/erc721/erc721psi/ERC721PsiV2.sol b/contracts/token/erc721/erc721psi/ERC721PsiV2.sol index 51c4153d..2a013033 100644 --- a/contracts/token/erc721/erc721psi/ERC721PsiV2.sol +++ b/contracts/token/erc721/erc721psi/ERC721PsiV2.sol @@ -3,15 +3,15 @@ /** * Inspired by ERC721Psi: https://github.com/estarriolvetch/ERC721Psi */ -pragma solidity >=0.8.19 <0.8.29; - -import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import {IERC721Metadata} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol"; -import {Context} from "@openzeppelin/contracts/utils/Context.sol"; -import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; -import {IERC165, ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; -import {Address} from "@openzeppelin/contracts/utils/Address.sol"; +pragma solidity >=0.8.19 <=0.8.27; + +import {IERC721} from "openzeppelin-contracts-4/token/ERC721/IERC721.sol"; +import {IERC721Receiver} from "openzeppelin-contracts-4/token/ERC721/IERC721Receiver.sol"; +import {IERC721Metadata} from "openzeppelin-contracts-4/token/ERC721/extensions/IERC721Metadata.sol"; +import {Context} from "openzeppelin-contracts-4/utils/Context.sol"; +import {Strings} from "openzeppelin-contracts-4/utils/Strings.sol"; +import {IERC165, ERC165} from "openzeppelin-contracts-4/utils/introspection/ERC165.sol"; +import {Address} from "openzeppelin-contracts-4/utils/Address.sol"; abstract contract ERC721PsiV2 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; diff --git a/contracts/token/erc721/interfaces/IImmutableERC721.sol b/contracts/token/erc721/interfaces/IImmutableERC721.sol index 3e9ce28a..d4682e8b 100644 --- a/contracts/token/erc721/interfaces/IImmutableERC721.sol +++ b/contracts/token/erc721/interfaces/IImmutableERC721.sol @@ -1,10 +1,10 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; -import {IERC721Metadata} from "@openzeppelin/contracts/interfaces/IERC721Metadata.sol"; -import {IERC2981} from "@openzeppelin/contracts/interfaces/IERC2981.sol"; -import {IERC5267} from "@openzeppelin/contracts/interfaces/IERC5267.sol"; +import {IERC721Metadata} from "openzeppelin-contracts-4/interfaces/IERC721Metadata.sol"; +import {IERC2981} from "openzeppelin-contracts-4/interfaces/IERC2981.sol"; +import {IERC5267} from "openzeppelin-contracts-4/interfaces/IERC5267.sol"; import {IERC4494} from "../abstract/IERC4494.sol"; import {IMintingAccessControl} from "../../../access/IMintingAccessControl.sol"; diff --git a/contracts/token/erc721/interfaces/IImmutableERC721ByQuantity.sol b/contracts/token/erc721/interfaces/IImmutableERC721ByQuantity.sol index a2f9b7f3..833c39a4 100644 --- a/contracts/token/erc721/interfaces/IImmutableERC721ByQuantity.sol +++ b/contracts/token/erc721/interfaces/IImmutableERC721ByQuantity.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IImmutableERC721} from "./IImmutableERC721.sol"; diff --git a/contracts/token/erc721/interfaces/IImmutableERC721ByQuantityV2.sol b/contracts/token/erc721/interfaces/IImmutableERC721ByQuantityV2.sol index be13004e..5b1adeca 100644 --- a/contracts/token/erc721/interfaces/IImmutableERC721ByQuantityV2.sol +++ b/contracts/token/erc721/interfaces/IImmutableERC721ByQuantityV2.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IImmutableERC721ByQuantity} from "./IImmutableERC721ByQuantity.sol"; diff --git a/contracts/token/erc721/interfaces/IImmutableERC721Errors.sol b/contracts/token/erc721/interfaces/IImmutableERC721Errors.sol index 9301b659..9bdbbc2a 100644 --- a/contracts/token/erc721/interfaces/IImmutableERC721Errors.sol +++ b/contracts/token/erc721/interfaces/IImmutableERC721Errors.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; interface IImmutableERC721Errors { /// @dev Caller tried to mint an already burned token diff --git a/contracts/token/erc721/interfaces/IImmutableERC721Structs.sol b/contracts/token/erc721/interfaces/IImmutableERC721Structs.sol index 89656b4a..b7e1b5b2 100644 --- a/contracts/token/erc721/interfaces/IImmutableERC721Structs.sol +++ b/contracts/token/erc721/interfaces/IImmutableERC721Structs.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; // forge-lint: disable-start(pascal-case-struct) diff --git a/contracts/token/erc721/preset/ImmutableERC721MintByID.sol b/contracts/token/erc721/preset/ImmutableERC721MintByID.sol index e313659b..f6778691 100644 --- a/contracts/token/erc721/preset/ImmutableERC721MintByID.sol +++ b/contracts/token/erc721/preset/ImmutableERC721MintByID.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ImmutableERC721Base} from "../abstract/ImmutableERC721Base.sol"; diff --git a/contracts/token/erc721/preset/ImmutableERC721V2.sol b/contracts/token/erc721/preset/ImmutableERC721V2.sol index 88966d20..597f6746 100644 --- a/contracts/token/erc721/preset/ImmutableERC721V2.sol +++ b/contracts/token/erc721/preset/ImmutableERC721V2.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ImmutableERC721HybridBaseV2} from "../abstract/ImmutableERC721HybridBaseV2.sol"; diff --git a/contracts/trading/seaport/ImmutableSeaport.sol b/contracts/trading/seaport/ImmutableSeaport.sol index 0dc3c144..45e636dc 100644 --- a/contracts/trading/seaport/ImmutableSeaport.sol +++ b/contracts/trading/seaport/ImmutableSeaport.sol @@ -13,7 +13,7 @@ import { Order } from "seaport-types/src/lib/ConsiderationStructs.sol"; import {OrderType} from "seaport-types/src/lib/ConsiderationEnums.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {Ownable} from "openzeppelin-contracts-4/access/Ownable.sol"; import {ImmutableSeaportEvents} from "./interfaces/ImmutableSeaportEvents.sol"; /** diff --git a/contracts/trading/seaport/zones/immutable-signed-zone/v1/ImmutableSignedZone.sol b/contracts/trading/seaport/zones/immutable-signed-zone/v1/ImmutableSignedZone.sol index 416ac131..dd2cf8c2 100644 --- a/contracts/trading/seaport/zones/immutable-signed-zone/v1/ImmutableSignedZone.sol +++ b/contracts/trading/seaport/zones/immutable-signed-zone/v1/ImmutableSignedZone.sol @@ -10,9 +10,9 @@ import {SIP7Interface} from "./interfaces/SIP7Interface.sol"; import {SIP7EventsAndErrors} from "./interfaces/SIP7EventsAndErrors.sol"; import {SIP6EventsAndErrors} from "./interfaces/SIP6EventsAndErrors.sol"; import {SIP5Interface} from "./interfaces/SIP5Interface.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; +import {Ownable} from "openzeppelin-contracts-4/access/Ownable.sol"; +import {ECDSA} from "openzeppelin-contracts-4/utils/cryptography/ECDSA.sol"; +import {ERC165} from "openzeppelin-contracts-4/utils/introspection/ERC165.sol"; /** * @title ImmutableSignedZone diff --git a/contracts/trading/seaport/zones/immutable-signed-zone/v2/ImmutableSignedZoneV2.sol b/contracts/trading/seaport/zones/immutable-signed-zone/v2/ImmutableSignedZoneV2.sol index 9f82e55e..86ff1528 100644 --- a/contracts/trading/seaport/zones/immutable-signed-zone/v2/ImmutableSignedZoneV2.sol +++ b/contracts/trading/seaport/zones/immutable-signed-zone/v2/ImmutableSignedZoneV2.sol @@ -1,13 +1,13 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.20; +pragma solidity >=0.8.19 <=0.8.27; -import {AccessControlEnumerable} from "openzeppelin-contracts-5.0.2/access/extensions/AccessControlEnumerable.sol"; -import {ECDSA} from "openzeppelin-contracts-5.0.2/utils/cryptography/ECDSA.sol"; -import {MessageHashUtils} from "openzeppelin-contracts-5.0.2/utils/cryptography/MessageHashUtils.sol"; -import {ERC165} from "openzeppelin-contracts-5.0.2/utils/introspection/ERC165.sol"; -import {Math} from "openzeppelin-contracts-5.0.2/utils/math/Math.sol"; +import {AccessControlEnumerable} from "openzeppelin-contracts-5/access/extensions/AccessControlEnumerable.sol"; +import {ECDSA} from "openzeppelin-contracts-5/utils/cryptography/ECDSA.sol"; +import {MessageHashUtils} from "openzeppelin-contracts-5/utils/cryptography/MessageHashUtils.sol"; +import {ERC165} from "openzeppelin-contracts-5/utils/introspection/ERC165.sol"; +import {Math} from "openzeppelin-contracts-5/utils/math/Math.sol"; import {ZoneInterface} from "seaport/contracts/interfaces/ZoneInterface.sol"; import {ZoneParameters, Schema, ReceivedItem} from "seaport-types/src/lib/ConsiderationStructs.sol"; import {ZoneAccessControl} from "./ZoneAccessControl.sol"; diff --git a/contracts/trading/seaport/zones/immutable-signed-zone/v2/ZoneAccessControl.sol b/contracts/trading/seaport/zones/immutable-signed-zone/v2/ZoneAccessControl.sol index 638fc086..2748def2 100644 --- a/contracts/trading/seaport/zones/immutable-signed-zone/v2/ZoneAccessControl.sol +++ b/contracts/trading/seaport/zones/immutable-signed-zone/v2/ZoneAccessControl.sol @@ -1,14 +1,14 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.20; +pragma solidity >=0.8.19 <=0.8.27; -import {AccessControl} from "openzeppelin-contracts-5.0.2/access/AccessControl.sol"; -import {IAccessControl} from "openzeppelin-contracts-5.0.2/access/IAccessControl.sol"; -import {AccessControlEnumerable} from "openzeppelin-contracts-5.0.2/access/extensions/AccessControlEnumerable.sol"; +import {AccessControl} from "openzeppelin-contracts-5/access/AccessControl.sol"; +import {IAccessControl} from "openzeppelin-contracts-5/access/IAccessControl.sol"; +import {AccessControlEnumerable} from "openzeppelin-contracts-5/access/extensions/AccessControlEnumerable.sol"; import { ZoneAccessControlEventsAndErrors -} from "../../../../../../contracts/trading/seaport/zones/immutable-signed-zone/v2/interfaces/ZoneAccessControlEventsAndErrors.sol"; +} from "./interfaces/ZoneAccessControlEventsAndErrors.sol"; /** * @notice ZoneAccessControl encapsulates access control functionality for the zone. diff --git a/foundry.lock b/foundry.lock index 3a7137b9..21f3ba67 100644 --- a/foundry.lock +++ b/foundry.lock @@ -23,22 +23,22 @@ "rev": "33e9030f308500b422926a1be12d7a1e4d6adc06" } }, - "lib/openzeppelin-contracts-4.9.3": { + "lib/openzeppelin-contracts-4.9.6": { "tag": { - "name": "v4.9.3", - "rev": "fd81a96f01cc42ef1c9a5399364968d0e07e9e90" + "name": "v4.9.6", + "rev": "dc44c9f1a4c3b10af99492eed84f83ed244203f6" } }, - "lib/openzeppelin-contracts-5.0.2": { + "lib/openzeppelin-contracts-5.6.1": { "tag": { - "name": "v5.0.2", - "rev": "dbb6104ce834628e473d2173bbc9d47f81a9eec3" + "name": "v5.6.1", + "rev": "5fd1781b1454fd1ef8e722282f86f9293cacf256" } }, - "lib/openzeppelin-contracts-upgradeable-4.9.3": { + "lib/openzeppelin-contracts-upgradeable-4.9.6": { "tag": { - "name": "v4.9.3", - "rev": "3d4c0d5741b131c231e558d7a6213392ab3672a5" + "name": "v4.9.6", + "rev": "2d081f24cac1a867f6f73d512f2022e1fa987854" } }, "lib/solidity-bytes-utils": { diff --git a/lib/openzeppelin-contracts-4.9.3 b/lib/openzeppelin-contracts-4.9.3 deleted file mode 160000 index fd81a96f..00000000 --- a/lib/openzeppelin-contracts-4.9.3 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fd81a96f01cc42ef1c9a5399364968d0e07e9e90 diff --git a/lib/openzeppelin-contracts-4.9.6 b/lib/openzeppelin-contracts-4.9.6 new file mode 160000 index 00000000..dc44c9f1 --- /dev/null +++ b/lib/openzeppelin-contracts-4.9.6 @@ -0,0 +1 @@ +Subproject commit dc44c9f1a4c3b10af99492eed84f83ed244203f6 diff --git a/lib/openzeppelin-contracts-5.0.2 b/lib/openzeppelin-contracts-5.0.2 deleted file mode 160000 index dbb6104c..00000000 --- a/lib/openzeppelin-contracts-5.0.2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit dbb6104ce834628e473d2173bbc9d47f81a9eec3 diff --git a/lib/openzeppelin-contracts-5.6.1 b/lib/openzeppelin-contracts-5.6.1 new file mode 160000 index 00000000..5fd1781b --- /dev/null +++ b/lib/openzeppelin-contracts-5.6.1 @@ -0,0 +1 @@ +Subproject commit 5fd1781b1454fd1ef8e722282f86f9293cacf256 diff --git a/lib/openzeppelin-contracts-upgradeable-4.9.3 b/lib/openzeppelin-contracts-upgradeable-4.9.3 deleted file mode 160000 index 3d4c0d57..00000000 --- a/lib/openzeppelin-contracts-upgradeable-4.9.3 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3d4c0d5741b131c231e558d7a6213392ab3672a5 diff --git a/lib/openzeppelin-contracts-upgradeable-4.9.6 b/lib/openzeppelin-contracts-upgradeable-4.9.6 new file mode 160000 index 00000000..2d081f24 --- /dev/null +++ b/lib/openzeppelin-contracts-upgradeable-4.9.6 @@ -0,0 +1 @@ +Subproject commit 2d081f24cac1a867f6f73d512f2022e1fa987854 diff --git a/perfTest/token/erc721/ERC721ByQuantityPerf.t.sol b/perfTest/token/erc721/ERC721ByQuantityPerf.t.sol index c0e7a630..382a7f95 100644 --- a/perfTest/token/erc721/ERC721ByQuantityPerf.t.sol +++ b/perfTest/token/erc721/ERC721ByQuantityPerf.t.sol @@ -1,7 +1,7 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ERC721PerfTest} from "./ERC721Perf.t.sol"; diff --git a/perfTest/token/erc721/ERC721Perf.t.sol b/perfTest/token/erc721/ERC721Perf.t.sol index 36c4e826..5875218d 100644 --- a/perfTest/token/erc721/ERC721Perf.t.sol +++ b/perfTest/token/erc721/ERC721Perf.t.sol @@ -1,7 +1,7 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ERC721BaseTest} from "../../../test/token/erc721/ERC721Base.t.sol"; diff --git a/perfTest/token/erc721/ImmutableERC721ByIdPerf.t.sol b/perfTest/token/erc721/ImmutableERC721ByIdPerf.t.sol index db88eb66..e3729c03 100644 --- a/perfTest/token/erc721/ImmutableERC721ByIdPerf.t.sol +++ b/perfTest/token/erc721/ImmutableERC721ByIdPerf.t.sol @@ -1,7 +1,7 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ERC721PerfTest} from "./ERC721Perf.t.sol"; diff --git a/perfTest/token/erc721/ImmutableERC721ByIdPerfPrefill.t.sol b/perfTest/token/erc721/ImmutableERC721ByIdPerfPrefill.t.sol index a32ba41b..106dd9a8 100644 --- a/perfTest/token/erc721/ImmutableERC721ByIdPerfPrefill.t.sol +++ b/perfTest/token/erc721/ImmutableERC721ByIdPerfPrefill.t.sol @@ -1,7 +1,7 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ImmutableERC721ByIdPerfTest} from "./ImmutableERC721ByIdPerf.t.sol"; import {ImmutableERC721} from "../../../contracts/token/erc721/preset/ImmutableERC721.sol"; diff --git a/perfTest/token/erc721/ImmutableERC721V2ByQuantityPerf.t.sol b/perfTest/token/erc721/ImmutableERC721V2ByQuantityPerf.t.sol index 3bee17b5..39f33e3d 100644 --- a/perfTest/token/erc721/ImmutableERC721V2ByQuantityPerf.t.sol +++ b/perfTest/token/erc721/ImmutableERC721V2ByQuantityPerf.t.sol @@ -1,7 +1,7 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ERC721ByQuantityPerfTest} from "./ERC721ByQuantityPerf.t.sol"; diff --git a/perfTest/token/erc721/ImmutableERC721V2ByQuantityPerfPrefill.t.sol b/perfTest/token/erc721/ImmutableERC721V2ByQuantityPerfPrefill.t.sol index 92c7f59c..b4be7db0 100644 --- a/perfTest/token/erc721/ImmutableERC721V2ByQuantityPerfPrefill.t.sol +++ b/perfTest/token/erc721/ImmutableERC721V2ByQuantityPerfPrefill.t.sol @@ -1,7 +1,7 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ImmutableERC721V2ByQuantityPerfTest} from "./ImmutableERC721V2ByQuantityPerf.t.sol"; diff --git a/remappings.txt b/remappings.txt index e4a7b711..c89a2cd4 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,16 +1,10 @@ forge-std/=lib/forge-std/src/ -@openzeppelin/contracts/=lib/openzeppelin-contracts-4.9.3/contracts/ -openzeppelin-contracts-5.0.2/=lib/openzeppelin-contracts-5.0.2/contracts/ -openzeppelin-contracts-upgradeable-4.9.3/=lib/openzeppelin-contracts-upgradeable-4.9.3/contracts/ -openzeppelin-contracts-4.9.3/=lib/openzeppelin-contracts-4.9.3/contracts/ -solidity-bits/=lib/solidity-bits/ +@openzeppelin/contracts/=lib/openzeppelin-contracts-4.9.6/contracts/ +openzeppelin-contracts-5=lib/openzeppelin-contracts-5.6.1/contracts/ +openzeppelin-contracts-upgradeable-4/=lib/openzeppelin-contracts-upgradeable-4.9.6/contracts/ +openzeppelin-contracts-4/=lib/openzeppelin-contracts-4.9.6/contracts/ solidity-bytes-utils/=lib/solidity-bytes-utils/ seaport/contracts/=lib/immutable-seaport-1.5.0+im1.3/contracts/ seaport-core/=lib/immutable-seaport-core-1.5.0+im1/ seaport-types/=lib/immutable-seaport-1.5.0+im1.3/lib/seaport-types/ @axelar-network/axelar-gmp-sdk-solidity=lib/axelar-gmp-sdk-solidity -seaport-16/contracts/=lib/immutable-seaport-1.6.0+im4/contracts/ -seaport-core-16/=lib/immutable-seaport-core-1.6.0+im2/ -seaport-sol-16/=lib/immutable-seaport-1.6.0+im4/lib/seaport-sol/ -seaport-types-16/=lib/immutable-seaport-1.6.0+im4/lib/seaport-types/ -@limitbreak/creator-token-standards/=lib/creator-token-standards/ diff --git a/script/staking/ChangeDistributor.t.sol b/script/staking/ChangeDistributor.t.sol index 633ea443..8d860763 100644 --- a/script/staking/ChangeDistributor.t.sol +++ b/script/staking/ChangeDistributor.t.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; -import {TimelockController} from "openzeppelin-contracts-4.9.3/governance/TimelockController.sol"; -import {IAccessControlUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/access/IAccessControlUpgradeable.sol"; +import {TimelockController} from "openzeppelin-contracts-4/governance/TimelockController.sol"; +import {IAccessControlUpgradeable} from "openzeppelin-contracts-upgradeable-4/access/IAccessControlUpgradeable.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; diff --git a/script/staking/StakeHolderScriptWIMX.t.sol b/script/staking/StakeHolderScriptWIMX.t.sol index 44b1c7aa..57b2ce16 100644 --- a/script/staking/StakeHolderScriptWIMX.t.sol +++ b/script/staking/StakeHolderScriptWIMX.t.sol @@ -4,9 +4,9 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; import {console} from "forge-std/console.sol"; -import {ERC1967Proxy} from "openzeppelin-contracts-4.9.3/proxy/ERC1967/ERC1967Proxy.sol"; -import {TimelockController} from "openzeppelin-contracts-4.9.3/governance/TimelockController.sol"; -import {IERC20} from "openzeppelin-contracts-4.9.3/token/ERC20/IERC20.sol"; +import {ERC1967Proxy} from "openzeppelin-contracts-5/proxy/ERC1967/ERC1967Proxy.sol"; +import {TimelockController} from "openzeppelin-contracts-5/governance/TimelockController.sol"; +import {IERC20} from "openzeppelin-contracts-5/token/ERC20/IERC20.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderWIMXV2} from "../../contracts/staking/StakeHolderWIMXV2.sol"; diff --git a/script/staking/UpgradeToWIMXV2.t.sol b/script/staking/UpgradeToWIMXV2.t.sol index 4566d32c..06e956e6 100644 --- a/script/staking/UpgradeToWIMXV2.t.sol +++ b/script/staking/UpgradeToWIMXV2.t.sol @@ -4,8 +4,8 @@ pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; import {console} from "forge-std/console.sol"; -import {TimelockController} from "openzeppelin-contracts-4.9.3/governance/TimelockController.sol"; -import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/proxy/utils/UUPSUpgradeable.sol"; +import {TimelockController} from "openzeppelin-contracts-5/governance/TimelockController.sol"; +import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4/proxy/utils/UUPSUpgradeable.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderBase} from "../../contracts/staking/StakeHolderBase.sol"; diff --git a/script/trading/seaport/DeployImmutableSignedZoneV2.s.sol b/script/trading/seaport/DeployImmutableSignedZoneV2.s.sol index 4b597bef..ea4f1779 100644 --- a/script/trading/seaport/DeployImmutableSignedZoneV2.s.sol +++ b/script/trading/seaport/DeployImmutableSignedZoneV2.s.sol @@ -1,6 +1,6 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache-2 -pragma solidity 0.8.20; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import { diff --git a/script/trading/seaport/DeployImmutableSignedZoneV2Dev.s.sol b/script/trading/seaport/DeployImmutableSignedZoneV2Dev.s.sol index 9c889036..1c5bd1e4 100644 --- a/script/trading/seaport/DeployImmutableSignedZoneV2Dev.s.sol +++ b/script/trading/seaport/DeployImmutableSignedZoneV2Dev.s.sol @@ -1,13 +1,12 @@ // Copyright (c) Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache-2 +pragma solidity >=0.8.19 <=0.8.27; import {Script} from "forge-std/Script.sol"; import { ImmutableSignedZoneV2 } from "../../../contracts/trading/seaport/zones/immutable-signed-zone/v2/ImmutableSignedZoneV2.sol"; -pragma solidity 0.8.20; - // Deploy ImmutableSignedZoneV2 to dev environment (without create3) contract DeployImmutableSignedZoneV2Dev is Script { function run() external { diff --git a/test/allowlist/AllowlistImmutableERC721MintByIDTransferApprovals.t.sol b/test/allowlist/AllowlistImmutableERC721MintByIDTransferApprovals.t.sol index 7c2a6b1a..ea6d7ba4 100644 --- a/test/allowlist/AllowlistImmutableERC721MintByIDTransferApprovals.t.sol +++ b/test/allowlist/AllowlistImmutableERC721MintByIDTransferApprovals.t.sol @@ -1,4 +1,4 @@ -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; diff --git a/test/allowlist/AllowlistImmutableERC721TransferApprovals.t.sol b/test/allowlist/AllowlistImmutableERC721TransferApprovals.t.sol index 9dddc0ad..68ff3c90 100644 --- a/test/allowlist/AllowlistImmutableERC721TransferApprovals.t.sol +++ b/test/allowlist/AllowlistImmutableERC721TransferApprovals.t.sol @@ -1,4 +1,4 @@ -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; diff --git a/test/allowlist/MockOAL.sol b/test/allowlist/MockOAL.sol index ed16f82e..c08f072c 100644 --- a/test/allowlist/MockOAL.sol +++ b/test/allowlist/MockOAL.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {OperatorAllowlistUpgradeable} from "../../contracts/allowlist/OperatorAllowlistUpgradeable.sol"; diff --git a/test/allowlist/OperatorAllowlistUpgradeable.t.sol b/test/allowlist/OperatorAllowlistUpgradeable.t.sol index fbef7a33..c6f2c26d 100644 --- a/test/allowlist/OperatorAllowlistUpgradeable.t.sol +++ b/test/allowlist/OperatorAllowlistUpgradeable.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {OperatorAllowlistUpgradeable} from "../../contracts/allowlist/OperatorAllowlistUpgradeable.sol"; diff --git a/test/deployer/AccessControlledDeployer.t.sol b/test/deployer/AccessControlledDeployer.t.sol index 66c182ef..7411c1c1 100644 --- a/test/deployer/AccessControlledDeployer.t.sol +++ b/test/deployer/AccessControlledDeployer.t.sol @@ -1,9 +1,10 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {Ownable} from "openzeppelin-contracts-5/access/Ownable.sol"; +import {Pausable} from "openzeppelin-contracts-5/utils/Pausable.sol"; import {IDeployer} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IDeployer.sol"; import { ERC20MintableBurnable @@ -310,10 +311,10 @@ contract AccessControlledDeployerTest is Test, Create3Utils { rbacDeployer.pause(); assertTrue(rbacDeployer.paused()); - vm.expectRevert("Pausable: paused"); + vm.expectRevert(abi.encodeWithSelector(Pausable.EnforcedPause.selector)); rbacDeployer.deploy(IDeployer(address(0)), new bytes(0), bytes32(0)); - vm.expectRevert("Pausable: paused"); + vm.expectRevert(abi.encodeWithSelector(Pausable.EnforcedPause.selector)); rbacDeployer.deployAndInit(IDeployer(address(0)), new bytes(0), bytes32(0), new bytes(0)); } diff --git a/test/deployer/create3/Create3Utils.sol b/test/deployer/create3/Create3Utils.sol index 694c304e..ea97c0a2 100644 --- a/test/deployer/create3/Create3Utils.sol +++ b/test/deployer/create3/Create3Utils.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {IDeployer} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IDeployer.sol"; diff --git a/test/deployer/create3/OwnableCreate3Deployer.t.sol b/test/deployer/create3/OwnableCreate3Deployer.t.sol index 3ca39db5..5bddf862 100644 --- a/test/deployer/create3/OwnableCreate3Deployer.t.sol +++ b/test/deployer/create3/OwnableCreate3Deployer.t.sol @@ -1,11 +1,12 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {console} from "forge-std/console.sol"; import {IDeploy} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IDeploy.sol"; -import {ERC20Mock} from "@openzeppelin/contracts/mocks/ERC20Mock.sol"; +import {ERC20Mock} from "openzeppelin-contracts-5/mocks/token/ERC20Mock.sol"; +import {Ownable} from "openzeppelin-contracts-5/access/Ownable.sol"; import { ERC20MintableBurnable } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/test/token/ERC20MintableBurnable.sol"; @@ -50,7 +51,7 @@ contract OwnableCreate3DeployerTest is Test, Create3Utils { address nonOwner = address(0x1); vm.startPrank(nonOwner); - vm.expectRevert("Ownable: caller is not the owner"); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, nonOwner)); factory.deploy(erc20MockBytecode, erc20MockSalt); } @@ -113,7 +114,7 @@ contract OwnableCreate3DeployerTest is Test, Create3Utils { assertEq(factory.owner(), newOwner, "owner did not change as expected"); // check that the old owner cannot deploy - vm.expectRevert("Ownable: caller is not the owner"); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, factoryOwner)); factory.deploy(erc20MockBytecode, erc20MockSalt); // test that the new owner can deploy @@ -157,7 +158,7 @@ contract OwnableCreate3DeployerTest is Test, Create3Utils { address nonOwner = address(0x1); vm.startPrank(nonOwner); - vm.expectRevert("Ownable: caller is not the owner"); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, nonOwner)); factory.deployAndInit(erc20MockBytecode, erc20MockSalt, ""); } diff --git a/test/multicall/GuardedMulticaller2.t.sol b/test/multicall/GuardedMulticaller2.t.sol index 22a1beb1..164c235a 100644 --- a/test/multicall/GuardedMulticaller2.t.sol +++ b/test/multicall/GuardedMulticaller2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {GuardedMulticaller2} from "../../contracts/multicall/GuardedMulticaller2.sol"; diff --git a/test/multicall/MockFunctions.sol b/test/multicall/MockFunctions.sol index 2a445d96..1753bd2f 100644 --- a/test/multicall/MockFunctions.sol +++ b/test/multicall/MockFunctions.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; contract MockFunctions { error RevertWithData(uint256 value); diff --git a/test/multicall/SigUtils.t.sol b/test/multicall/SigUtils.t.sol index 73bd86d8..c4950329 100644 --- a/test/multicall/SigUtils.t.sol +++ b/test/multicall/SigUtils.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {GuardedMulticaller2} from "../../contracts/multicall/GuardedMulticaller2.sol"; diff --git a/test/payment-splitter/MockERC20.sol b/test/payment-splitter/MockERC20.sol index 043ba4a9..3af059f4 100644 --- a/test/payment-splitter/MockERC20.sol +++ b/test/payment-splitter/MockERC20.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.9; // Basic ERC20. It is deployed by the tests in order to help testing the PaymentSplitter ERC20 payment feature -import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {ERC20} from "openzeppelin-contracts-5/token/ERC20/ERC20.sol"; contract MockERC20 is ERC20 { constructor(string memory name, string memory symbol) ERC20(name, symbol) {} diff --git a/test/payment-splitter/PaymentSplitter.t.sol b/test/payment-splitter/PaymentSplitter.t.sol index 0635e6b9..2c32ede2 100644 --- a/test/payment-splitter/PaymentSplitter.t.sol +++ b/test/payment-splitter/PaymentSplitter.t.sol @@ -1,12 +1,13 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {PaymentSplitter} from "../../contracts/payment-splitter/PaymentSplitter.sol"; import {MockERC20} from "./MockERC20.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {Address} from "@openzeppelin/contracts/utils/Address.sol"; +import {IERC20} from "openzeppelin-contracts-5/token/ERC20/IERC20.sol"; +import {Address} from "openzeppelin-contracts-5/utils/Address.sol"; +import {IAccessControl} from "openzeppelin-contracts-5/access/IAccessControl.sol"; contract PaymentSplitterTest is Test { event PaymentReleased(address to, uint256 amount); @@ -75,25 +76,18 @@ contract PaymentSplitterTest is Test { } function testInvalidPermissions() public { + vm.expectRevert(abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, defaultAdmin, paymentSplitter.TOKEN_REGISTRAR_ROLE())); vm.prank(defaultAdmin); - vm.expectRevert( - "AccessControl: account 0x6fcb7bf6c32f0cd3bbc5fde0a55a80d3af6d0050 is missing role 0x544f4b454e5f5245474953545241525f524f4c45000000000000000000000000" - ); paymentSplitter.addToAllowlist(erc20s); vm.startPrank(registrarAdmin); - vm.expectRevert( - "AccessControl: account 0xa4985bf934d639cba655d34733ebf617e7f82429 is missing role 0x0000000000000000000000000000000000000000000000000000000000000000" - ); + vm.expectRevert(abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, registrarAdmin, paymentSplitter.DEFAULT_ADMIN_ROLE())); paymentSplitter.overridePayees(payees, shares); - vm.expectRevert( - "AccessControl: account 0xa4985bf934d639cba655d34733ebf617e7f82429 is missing role 0x0000000000000000000000000000000000000000000000000000000000000000" - ); + + vm.expectRevert(abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, registrarAdmin, paymentSplitter.DEFAULT_ADMIN_ROLE())); paymentSplitter.revokeReleaseFundsRole(fundsAdmin); - vm.expectRevert( - "AccessControl: account 0xa4985bf934d639cba655d34733ebf617e7f82429 is missing role 0x52454c454153455f46554e44535f524f4c450000000000000000000000000000" - ); + vm.expectRevert(abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, registrarAdmin, paymentSplitter.RELEASE_FUNDS_ROLE())); paymentSplitter.releaseAll(); vm.stopPrank(); } diff --git a/test/royalty-enforcement/MockMarketplace.sol b/test/royalty-enforcement/MockMarketplace.sol index 51b4e70a..b0fdcb2b 100644 --- a/test/royalty-enforcement/MockMarketplace.sol +++ b/test/royalty-enforcement/MockMarketplace.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {IERC2981} from "@openzeppelin/contracts/interfaces/IERC2981.sol"; diff --git a/test/royalty-enforcement/RoyaltyMarketplace.t.sol b/test/royalty-enforcement/RoyaltyMarketplace.t.sol index 1d98aa48..5cf78fab 100644 --- a/test/royalty-enforcement/RoyaltyMarketplace.t.sol +++ b/test/royalty-enforcement/RoyaltyMarketplace.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ImmutableERC721MintByID} from "../../contracts/token/erc721/preset/ImmutableERC721MintByID.sol"; diff --git a/test/staking/StakeHolderAttackWallet.sol b/test/staking/StakeHolderAttackWallet.sol index 329309b4..07aaa534 100644 --- a/test/staking/StakeHolderAttackWallet.sol +++ b/test/staking/StakeHolderAttackWallet.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderNative} from "../../contracts/staking/StakeHolderNative.sol"; diff --git a/test/staking/StakeHolderAttackWallet2.sol b/test/staking/StakeHolderAttackWallet2.sol index 62515f6d..3fa24163 100644 --- a/test/staking/StakeHolderAttackWallet2.sol +++ b/test/staking/StakeHolderAttackWallet2.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderNative} from "../../contracts/staking/StakeHolderNative.sol"; diff --git a/test/staking/StakeHolderBase.t.sol b/test/staking/StakeHolderBase.t.sol index 156398d9..b845afc7 100644 --- a/test/staking/StakeHolderBase.t.sol +++ b/test/staking/StakeHolderBase.t.sol @@ -1,7 +1,7 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; @@ -11,7 +11,7 @@ import {StakeHolderNativeV2} from "../../contracts/staking/StakeHolderNativeV2.s import {StakeHolderWIMX} from "../../contracts/staking/StakeHolderWIMX.sol"; import {StakeHolderWIMXV2} from "../../contracts/staking/StakeHolderWIMXV2.sol"; import {WIMX} from "../../contracts/staking/WIMX.sol"; -import {ERC1967Proxy} from "openzeppelin-contracts-4.9.3/proxy/ERC1967/ERC1967Proxy.sol"; +import {ERC1967Proxy} from "openzeppelin-contracts-5/proxy/ERC1967/ERC1967Proxy.sol"; abstract contract StakeHolderBaseTest is Test { bytes32 public defaultAdminRole; diff --git a/test/staking/StakeHolderConfigBase.t.sol b/test/staking/StakeHolderConfigBase.t.sol index b24af69d..a598ffdc 100644 --- a/test/staking/StakeHolderConfigBase.t.sol +++ b/test/staking/StakeHolderConfigBase.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderBase} from "../../contracts/staking/StakeHolderBase.sol"; diff --git a/test/staking/StakeHolderConfigBaseV2.t.sol b/test/staking/StakeHolderConfigBaseV2.t.sol index 7d748fbc..6cb12078 100644 --- a/test/staking/StakeHolderConfigBaseV2.t.sol +++ b/test/staking/StakeHolderConfigBaseV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderBase} from "../../contracts/staking/StakeHolderBase.sol"; diff --git a/test/staking/StakeHolderConfigNativeV2.t.sol b/test/staking/StakeHolderConfigNativeV2.t.sol index 14c7ae32..5e066611 100644 --- a/test/staking/StakeHolderConfigNativeV2.t.sol +++ b/test/staking/StakeHolderConfigNativeV2.t.sol @@ -1,13 +1,13 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderNative} from "../../contracts/staking/StakeHolderNative.sol"; import {StakeHolderNativeV2} from "../../contracts/staking/StakeHolderNativeV2.sol"; import {StakeHolderBaseV2} from "../../contracts/staking/StakeHolderBaseV2.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderConfigBaseTestV2} from "./StakeHolderConfigBaseV2.t.sol"; -import {ERC1967Proxy} from "openzeppelin-contracts-4.9.3/proxy/ERC1967/ERC1967Proxy.sol"; +import {ERC1967Proxy} from "openzeppelin-contracts-5/proxy/ERC1967/ERC1967Proxy.sol"; contract StakeHolderNativeV3a is StakeHolderNativeV2 { function upgradeStorage( diff --git a/test/staking/StakeHolderConfigWIMX.t.sol b/test/staking/StakeHolderConfigWIMX.t.sol index bbb5432c..b9fddccb 100644 --- a/test/staking/StakeHolderConfigWIMX.t.sol +++ b/test/staking/StakeHolderConfigWIMX.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderWIMX} from "../../contracts/staking/StakeHolderWIMX.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; diff --git a/test/staking/StakeHolderConfigWIMXV2.t.sol b/test/staking/StakeHolderConfigWIMXV2.t.sol index 011ae581..2c398898 100644 --- a/test/staking/StakeHolderConfigWIMXV2.t.sol +++ b/test/staking/StakeHolderConfigWIMXV2.t.sol @@ -1,13 +1,13 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderWIMX} from "../../contracts/staking/StakeHolderWIMX.sol"; import {StakeHolderWIMXV2} from "../../contracts/staking/StakeHolderWIMXV2.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderBaseV2} from "../../contracts/staking/StakeHolderBaseV2.sol"; import {StakeHolderConfigBaseTestV2} from "./StakeHolderConfigBaseV2.t.sol"; -import {ERC1967Proxy} from "openzeppelin-contracts-4.9.3/proxy/ERC1967/ERC1967Proxy.sol"; +import {ERC1967Proxy} from "openzeppelin-contracts-5/proxy/ERC1967/ERC1967Proxy.sol"; contract StakeHolderWIMXV3a is StakeHolderWIMXV2 { function upgradeStorage( diff --git a/test/staking/StakeHolderInitBase.t.sol b/test/staking/StakeHolderInitBase.t.sol index 98773121..f5c1cec6 100644 --- a/test/staking/StakeHolderInitBase.t.sol +++ b/test/staking/StakeHolderInitBase.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderBaseTest} from "./StakeHolderBase.t.sol"; diff --git a/test/staking/StakeHolderInitBaseV2.t.sol b/test/staking/StakeHolderInitBaseV2.t.sol index f9d5a8f6..14afefe9 100644 --- a/test/staking/StakeHolderInitBaseV2.t.sol +++ b/test/staking/StakeHolderInitBaseV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderInitBaseTest} from "./StakeHolderInitBase.t.sol"; diff --git a/test/staking/StakeHolderInitNativeV2.t.sol b/test/staking/StakeHolderInitNativeV2.t.sol index b3be8a3d..9539edec 100644 --- a/test/staking/StakeHolderInitNativeV2.t.sol +++ b/test/staking/StakeHolderInitNativeV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderInitBaseTestV2} from "./StakeHolderInitBaseV2.t.sol"; diff --git a/test/staking/StakeHolderInitWIMX.t.sol b/test/staking/StakeHolderInitWIMX.t.sol index 86dcb518..de1b4294 100644 --- a/test/staking/StakeHolderInitWIMX.t.sol +++ b/test/staking/StakeHolderInitWIMX.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderInitBaseTest} from "./StakeHolderInitBase.t.sol"; diff --git a/test/staking/StakeHolderInitWIMXV2.t.sol b/test/staking/StakeHolderInitWIMXV2.t.sol index 61334101..5a9139ee 100644 --- a/test/staking/StakeHolderInitWIMXV2.t.sol +++ b/test/staking/StakeHolderInitWIMXV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderInitBaseTestV2} from "./StakeHolderInitBaseV2.t.sol"; diff --git a/test/staking/StakeHolderOperationalBase.t.sol b/test/staking/StakeHolderOperationalBase.t.sol index 607e00fc..e17547de 100644 --- a/test/staking/StakeHolderOperationalBase.t.sol +++ b/test/staking/StakeHolderOperationalBase.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {stdError} from "forge-std/StdError.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; diff --git a/test/staking/StakeHolderOperationalBaseV2.t.sol b/test/staking/StakeHolderOperationalBaseV2.t.sol index e34d1859..d378cc58 100644 --- a/test/staking/StakeHolderOperationalBaseV2.t.sol +++ b/test/staking/StakeHolderOperationalBaseV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderOperationalBaseTest} from "./StakeHolderOperationalBase.t.sol"; diff --git a/test/staking/StakeHolderOperationalNative.t.sol b/test/staking/StakeHolderOperationalNative.t.sol index 777226e5..542ae4a1 100644 --- a/test/staking/StakeHolderOperationalNative.t.sol +++ b/test/staking/StakeHolderOperationalNative.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderOperationalBaseTest} from "./StakeHolderOperationalBase.t.sol"; diff --git a/test/staking/StakeHolderOperationalNativeV2.t.sol b/test/staking/StakeHolderOperationalNativeV2.t.sol index f42933b4..1825f954 100644 --- a/test/staking/StakeHolderOperationalNativeV2.t.sol +++ b/test/staking/StakeHolderOperationalNativeV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {IStakeHolderV2} from "../../contracts/staking/IStakeHolderV2.sol"; diff --git a/test/staking/StakeHolderOperationalWIMX.t.sol b/test/staking/StakeHolderOperationalWIMX.t.sol index 2785cb98..6c645ef7 100644 --- a/test/staking/StakeHolderOperationalWIMX.t.sol +++ b/test/staking/StakeHolderOperationalWIMX.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderOperationalBaseTest} from "./StakeHolderOperationalBase.t.sol"; diff --git a/test/staking/StakeHolderOperationalWIMXV2.t.sol b/test/staking/StakeHolderOperationalWIMXV2.t.sol index 64d41124..3610eeb0 100644 --- a/test/staking/StakeHolderOperationalWIMXV2.t.sol +++ b/test/staking/StakeHolderOperationalWIMXV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {IStakeHolderV2} from "../../contracts/staking/IStakeHolderV2.sol"; diff --git a/test/staking/StakeHolderTimeDelayBase.t.sol b/test/staking/StakeHolderTimeDelayBase.t.sol index 8382e608..27c7d35a 100644 --- a/test/staking/StakeHolderTimeDelayBase.t.sol +++ b/test/staking/StakeHolderTimeDelayBase.t.sol @@ -1,11 +1,11 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderBaseTest} from "./StakeHolderBase.t.sol"; -import {TimelockController} from "openzeppelin-contracts-4.9.3/governance/TimelockController.sol"; -import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4.9.3/proxy/utils/UUPSUpgradeable.sol"; +import {TimelockController} from "openzeppelin-contracts-5/governance/TimelockController.sol"; +import {UUPSUpgradeable} from "openzeppelin-contracts-upgradeable-4/proxy/utils/UUPSUpgradeable.sol"; import {StakeHolderBase} from "../../contracts/staking/StakeHolderBase.sol"; abstract contract StakeHolderTimeDelayBaseTest is StakeHolderBaseTest { @@ -106,7 +106,7 @@ abstract contract StakeHolderTimeDelayBaseTest is StakeHolderBaseTest { bytes32 salt = bytes32(uint256(1)); uint256 theDelay = delay - 1; // Too small - vm.expectRevert(abi.encodePacked("TimelockController: insufficient delay")); + vm.expectRevert(abi.encodeWithSelector(TimelockController.TimelockInsufficientDelay.selector, theDelay, delay)); vm.prank(adminProposer); stakeHolderTimeDelay.schedule(target, value, data, predecessor, salt, theDelay); } @@ -130,9 +130,13 @@ abstract contract StakeHolderTimeDelayBaseTest is StakeHolderBaseTest { vm.prank(adminProposer); stakeHolderTimeDelay.schedule(target, value, data, predecessor, salt, theDelay); - vm.expectRevert(abi.encodePacked("TimelockController: operation is not ready")); - vm.warp(timeNow + delay - 1); // Too early + bytes32 operationId = stakeHolderTimeDelay.hashOperation(target, value, data, predecessor, salt); + /// forge-lint: disable-next-line(incorrect-shift) + bytes32 stateMask = bytes32(1 << uint8(TimelockController.OperationState.Ready)); + vm.expectRevert(abi.encodeWithSelector(TimelockController.TimelockUnexpectedOperationState.selector, operationId, + stateMask)); + vm.warp(timeNow + delay - 1); // Too early vm.prank(adminExecutor); stakeHolderTimeDelay.execute(target, value, data, predecessor, salt); } diff --git a/test/staking/StakeHolderTimeDelayWIMX.t.sol b/test/staking/StakeHolderTimeDelayWIMX.t.sol index d996c970..8412eed0 100644 --- a/test/staking/StakeHolderTimeDelayWIMX.t.sol +++ b/test/staking/StakeHolderTimeDelayWIMX.t.sol @@ -1,12 +1,12 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {StakeHolderWIMX} from "../../contracts/staking/StakeHolderWIMX.sol"; import {StakeHolderWIMXV2} from "../../contracts/staking/StakeHolderWIMXV2.sol"; import {IStakeHolder} from "../../contracts/staking/IStakeHolder.sol"; import {StakeHolderTimeDelayBaseTest} from "./StakeHolderTimeDelayBase.t.sol"; -import {ERC1967Proxy} from "openzeppelin-contracts-4.9.3/proxy/ERC1967/ERC1967Proxy.sol"; +import {ERC1967Proxy} from "openzeppelin-contracts-5/proxy/ERC1967/ERC1967Proxy.sol"; import {StakeHolderBaseV2} from "../../contracts/staking/StakeHolderBaseV2.sol"; contract StakeHolderWIMXV3a is StakeHolderWIMXV2 { diff --git a/test/token/erc1155/ImmutableERC1155.t.sol b/test/token/erc1155/ImmutableERC1155.t.sol index 4755ec02..093b50f7 100644 --- a/test/token/erc1155/ImmutableERC1155.t.sol +++ b/test/token/erc1155/ImmutableERC1155.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ImmutableERC1155} from "../../../contracts/token/erc1155/preset/ImmutableERC1155.sol"; diff --git a/test/token/erc1155/ImmutableERC1155Costs.t.sol b/test/token/erc1155/ImmutableERC1155Costs.t.sol index 28892acf..bf70fc8a 100644 --- a/test/token/erc1155/ImmutableERC1155Costs.t.sol +++ b/test/token/erc1155/ImmutableERC1155Costs.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ImmutableERC1155} from "../../../contracts/token/erc1155/preset/ImmutableERC1155.sol"; diff --git a/test/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.t.sol b/test/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.t.sol index 5d8326d0..a558b1cd 100644 --- a/test/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.t.sol +++ b/test/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.t.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ImmutableERC20FixedSupplyNoBurn} from "contracts/token/erc20/preset/ImmutableERC20FixedSupplyNoBurn.sol"; -import {IImmutableERC20Errors} from "contracts/token/erc20/preset/Errors.sol"; +import {IImmutableERC20Errors} from "contracts/token/erc20/preset/IImmutableERC20Errors.sol"; contract ImmutableERC20FixedSupplyNoBurnTest is Test { ImmutableERC20FixedSupplyNoBurn public erc20; diff --git a/test/token/erc20/preset/ImmutableERC20MinterBurnerPermit.t.sol b/test/token/erc20/preset/ImmutableERC20MinterBurnerPermit.t.sol index f1e45cbe..af6a4e9c 100644 --- a/test/token/erc20/preset/ImmutableERC20MinterBurnerPermit.t.sol +++ b/test/token/erc20/preset/ImmutableERC20MinterBurnerPermit.t.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {ImmutableERC20MinterBurnerPermit} from "contracts/token/erc20/preset/ImmutableERC20MinterBurnerPermit.sol"; -import {IImmutableERC20Errors} from "contracts/token/erc20/preset/Errors.sol"; +import {IImmutableERC20Errors} from "contracts/token/erc20/preset/IImmutableERC20Errors.sol"; contract ImmutableERC20MinterBurnerPermitTest is Test { ImmutableERC20MinterBurnerPermit public erc20; diff --git a/test/token/erc721/ERC721Base.t.sol b/test/token/erc721/ERC721Base.t.sol index 9bbaa6b8..596e9bf4 100644 --- a/test/token/erc721/ERC721Base.t.sol +++ b/test/token/erc721/ERC721Base.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Test} from "forge-std/Test.sol"; import {IImmutableERC721} from "../../../contracts/token/erc721/interfaces/IImmutableERC721.sol"; diff --git a/test/token/erc721/ERC721ByQuantityBase.t.sol b/test/token/erc721/ERC721ByQuantityBase.t.sol index cea006c4..ddf83306 100644 --- a/test/token/erc721/ERC721ByQuantityBase.t.sol +++ b/test/token/erc721/ERC721ByQuantityBase.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721BaseTest} from "./ERC721Base.t.sol"; import {IImmutableERC721ByQuantity} from "../../../contracts/token/erc721/interfaces/IImmutableERC721ByQuantity.sol"; diff --git a/test/token/erc721/ERC721ConfigBase.t.sol b/test/token/erc721/ERC721ConfigBase.t.sol index c5974912..17523541 100644 --- a/test/token/erc721/ERC721ConfigBase.t.sol +++ b/test/token/erc721/ERC721ConfigBase.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IImmutableERC721} from "../../../contracts/token/erc721/interfaces/IImmutableERC721.sol"; import {ERC721BaseTest} from "./ERC721Base.t.sol"; diff --git a/test/token/erc721/ERC721ConfigByIdV1.t.sol b/test/token/erc721/ERC721ConfigByIdV1.t.sol index e2526cca..fb9748ee 100644 --- a/test/token/erc721/ERC721ConfigByIdV1.t.sol +++ b/test/token/erc721/ERC721ConfigByIdV1.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721ConfigBaseTest} from "./ERC721ConfigBase.t.sol"; import {ImmutableERC721MintByID} from "../../../contracts/token/erc721/preset/ImmutableERC721MintByID.sol"; diff --git a/test/token/erc721/ERC721ConfigByQuantityBase.t.sol b/test/token/erc721/ERC721ConfigByQuantityBase.t.sol index 2a9ff741..5d3b51ee 100644 --- a/test/token/erc721/ERC721ConfigByQuantityBase.t.sol +++ b/test/token/erc721/ERC721ConfigByQuantityBase.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721ConfigBaseTest} from "./ERC721ConfigBase.t.sol"; import {IImmutableERC721ByQuantity} from "../../../contracts/token/erc721/interfaces/IImmutableERC721ByQuantity.sol"; diff --git a/test/token/erc721/ERC721ConfigByQuantityV2.t.sol b/test/token/erc721/ERC721ConfigByQuantityV2.t.sol index de955f68..4d5856b9 100644 --- a/test/token/erc721/ERC721ConfigByQuantityV2.t.sol +++ b/test/token/erc721/ERC721ConfigByQuantityV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721ConfigByQuantityBaseTest} from "./ERC721ConfigByQuantityBase.t.sol"; import {ImmutableERC721V2} from "../../../contracts/token/erc721/preset/ImmutableERC721V2.sol"; diff --git a/test/token/erc721/ERC721OperationalBase.t.sol b/test/token/erc721/ERC721OperationalBase.t.sol index 09a1463d..06a65877 100644 --- a/test/token/erc721/ERC721OperationalBase.t.sol +++ b/test/token/erc721/ERC721OperationalBase.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721BaseTest} from "./ERC721Base.t.sol"; import { diff --git a/test/token/erc721/ERC721OperationalByIdV1.t.sol b/test/token/erc721/ERC721OperationalByIdV1.t.sol index 300a30f9..10833694 100644 --- a/test/token/erc721/ERC721OperationalByIdV1.t.sol +++ b/test/token/erc721/ERC721OperationalByIdV1.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721OperationalBaseTest} from "./ERC721OperationalBase.t.sol"; import {ImmutableERC721MintByID} from "../../../contracts/token/erc721/preset/ImmutableERC721MintByID.sol"; diff --git a/test/token/erc721/ERC721OperationalByQuantityBase.t.sol b/test/token/erc721/ERC721OperationalByQuantityBase.t.sol index d39c0924..9239c717 100644 --- a/test/token/erc721/ERC721OperationalByQuantityBase.t.sol +++ b/test/token/erc721/ERC721OperationalByQuantityBase.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721OperationalBaseTest} from "./ERC721OperationalBase.t.sol"; import {IImmutableERC721ByQuantity} from "../../../contracts/token/erc721/interfaces/IImmutableERC721ByQuantity.sol"; diff --git a/test/token/erc721/ERC721OperationalByQuantityV2.t.sol b/test/token/erc721/ERC721OperationalByQuantityV2.t.sol index 3aff015a..4f785c3c 100644 --- a/test/token/erc721/ERC721OperationalByQuantityV2.t.sol +++ b/test/token/erc721/ERC721OperationalByQuantityV2.t.sol @@ -1,6 +1,6 @@ // Copyright Immutable Pty Ltd 2018 - 2026 // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721OperationalByQuantityBaseTest} from "./ERC721OperationalByQuantityBase.t.sol"; import {ImmutableERC721V2} from "../../../contracts/token/erc721/preset/ImmutableERC721V2.sol"; diff --git a/test/token/erc721/fuzz/ERC721PsiV2.Echidna.sol b/test/token/erc721/fuzz/ERC721PsiV2.Echidna.sol index 7153f5b1..1927e17f 100644 --- a/test/token/erc721/fuzz/ERC721PsiV2.Echidna.sol +++ b/test/token/erc721/fuzz/ERC721PsiV2.Echidna.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC721PsiBurnableV2} from "../../../../contracts/token/erc721/erc721psi/ERC721PsiBurnableV2.sol"; -import {IERC721Receiver} from "openzeppelin-contracts-4.9.3/token/ERC721/IERC721Receiver.sol"; +import {IERC721Receiver} from "openzeppelin-contracts-5/token/ERC721/IERC721Receiver.sol"; // Test receiver contract for safe transfer testing contract TestReceiver is IERC721Receiver { diff --git a/test/utils/DeployAllowlistProxy.sol b/test/utils/DeployAllowlistProxy.sol index 54292d4a..3aaad0a5 100644 --- a/test/utils/DeployAllowlistProxy.sol +++ b/test/utils/DeployAllowlistProxy.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {OperatorAllowlistUpgradeable} from "../../contracts/allowlist/OperatorAllowlistUpgradeable.sol"; diff --git a/test/utils/DeployMockMarketPlace.sol b/test/utils/DeployMockMarketPlace.sol index 91678136..aaebcbe7 100644 --- a/test/utils/DeployMockMarketPlace.sol +++ b/test/utils/DeployMockMarketPlace.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {MockMarketplace} from "./mocks/MockMarketplace.sol"; diff --git a/test/utils/DeploySCW.sol b/test/utils/DeploySCW.sol index 58559706..ccb0d398 100644 --- a/test/utils/DeploySCW.sol +++ b/test/utils/DeploySCW.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache 2.0 -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {MockWallet} from "./mocks/MockWallet.sol"; import {MockWalletFactory} from "./mocks/MockWalletFactory.sol"; diff --git a/test/utils/Sign.sol b/test/utils/Sign.sol index c8ff2427..4b495b04 100644 --- a/test/utils/Sign.sol +++ b/test/utils/Sign.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; contract Sign { bytes32 private _DOMAIN_SEPARATOR; diff --git a/test/utils/mocks/MockDisguisedEOA.sol b/test/utils/mocks/MockDisguisedEOA.sol index 5636e73c..8ea18cbe 100644 --- a/test/utils/mocks/MockDisguisedEOA.sol +++ b/test/utils/mocks/MockDisguisedEOA.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/test/utils/mocks/MockEIP1271Wallet.sol b/test/utils/mocks/MockEIP1271Wallet.sol index b654947a..7ed30ce7 100644 --- a/test/utils/mocks/MockEIP1271Wallet.sol +++ b/test/utils/mocks/MockEIP1271Wallet.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol"; diff --git a/test/utils/mocks/MockFactory.sol b/test/utils/mocks/MockFactory.sol index 8a97f2b9..61714bdc 100644 --- a/test/utils/mocks/MockFactory.sol +++ b/test/utils/mocks/MockFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {Create2} from "@openzeppelin/contracts/utils/Create2.sol"; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/test/utils/mocks/MockMarketplace.sol b/test/utils/mocks/MockMarketplace.sol index 985809ac..6f747c9e 100644 --- a/test/utils/mocks/MockMarketplace.sol +++ b/test/utils/mocks/MockMarketplace.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {IERC2981} from "@openzeppelin/contracts/interfaces/IERC2981.sol"; diff --git a/test/utils/mocks/MockOnReceive.sol b/test/utils/mocks/MockOnReceive.sol index 5f40435d..4c350d03 100644 --- a/test/utils/mocks/MockOnReceive.sol +++ b/test/utils/mocks/MockOnReceive.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; diff --git a/test/utils/mocks/MockWallet.sol b/test/utils/mocks/MockWallet.sol index 36b55738..a8671101 100644 --- a/test/utils/mocks/MockWallet.sol +++ b/test/utils/mocks/MockWallet.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; diff --git a/test/utils/mocks/MockWalletFactory.sol b/test/utils/mocks/MockWalletFactory.sol index 3af84355..5509fe68 100644 --- a/test/utils/mocks/MockWalletFactory.sol +++ b/test/utils/mocks/MockWalletFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.8.19 <0.8.29; +pragma solidity >=0.8.19 <=0.8.27; contract MockWalletFactory { bytes private constant WALLET_CREATION_CODE =