[Chore] Bump solc version and override L2 contracts (#1051)

* bump solc version and override L2 contracts

* remove unused file

* refactored and using 0.8.30

* remove floating pragmas

* bump pragma interfaces and inherited contracts
This commit is contained in:
The Dark Jester
2025-05-28 14:21:54 +01:00
committed by GitHub
parent 01925cd1e5
commit 9bc1e42c03
70 changed files with 102 additions and 95 deletions

View File

@@ -16,6 +16,7 @@ import "./scripts/operational/tasks/setVerifierAddressTask";
import "./scripts/operational/tasks/setMessageServiceOnTokenBridgeTask";
import "solidity-docgen";
import { overrides } from "./hardhat_overrides";
dotenv.config();
@@ -34,6 +35,7 @@ const config: HardhatUserConfig = {
},
solidity: {
// NB: double check the autoupdate shell script version complies to the latest solidity version if you add a new one.
/// @dev Please see the overrides file for a list of files not targetting the default EVM version of Prague.
compilers: [
{
version: "0.8.30",
@@ -46,34 +48,8 @@ const config: HardhatUserConfig = {
evmVersion: "prague",
},
},
/**
* Maintain for Mimc contract
* src/libraries/Mimc.sol (0.8.25)
* src/libraries/SparseMerkleProof.sol (0.8.25)
*/
{
version: "0.8.25",
settings: {
viaIR: useViaIR,
optimizer: {
enabled: true,
runs: 10_000,
},
evmVersion: "cancun",
},
},
{
version: "0.8.19",
settings: {
viaIR: useViaIR,
optimizer: {
enabled: true,
runs: 10_000,
},
evmVersion: "london",
},
},
],
overrides: overrides,
},
namedAccounts: {
deployer: {

View File

@@ -0,0 +1,31 @@
const londonOverride = {
version: "0.8.30",
settings: {
evmVersion: "london",
optimizer: {
enabled: true,
runs: 10_000,
},
},
};
const londonOverridePaths = [
"src/messaging/l2/L2MessageService.sol",
"src/bridging/token/TokenBridge.sol",
"src/bridging/token/BridgedToken.sol",
"src/tokens/LineaVoyageXP.sol",
"src/tokens/LineaSurgeXP.sol",
"src/tokens/TokenMintingRateLimiter.sol",
"src/_testing/unit/opcodes/ErrorAndDestructionTesting.sol",
"src/_testing/unit/opcodes/OpcodeTestContract.sol",
"src/_testing/unit/opcodes/OpcodeTester.sol",
"src/_testing/mocks/bridging/MockMessageService.sol",
"src/_testing/mocks/bridging/MockMessageServiceV2.sol",
"src/_testing/mocks/bridging/MockTokenBridge.sol",
"src/_testing/mocks/bridging/TestTokenBridge.sol",
"src/_testing/mocks/bridging/UpgradedBridgedToken.sol",
"src/_testing/unit/messaging/TestL2MessageManager.sol",
"src/_testing/unit/messaging/TestL2MessageService.sol",
];
export const overrides = Object.fromEntries(londonOverridePaths.map((path) => [path, londonOverride]));

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { LineaScenarioTesting } from "./LineaScenarioTesting.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/// @dev Test scenarios on Linea.
contract LineaScenarioTesting {

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
contract TestReceivingContract {
fallback() external payable {}

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { IMessageService } from "../../../messaging/interfaces/IMessageService.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { TokenBridge } from "../../../bridging/token/TokenBridge.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { TokenBridge } from "../../../bridging/token/TokenBridge.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { BridgedToken } from "../../../bridging/token/BridgedToken.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { ReentrancyContract } from "./ReentrancyContract.sol";

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import { L2MessageManager } from "../../../messaging/l2/L2MessageManager.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { L2MessageService } from "../../../messaging/l2/L2MessageService.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
contract ErrorAndDestructionTesting {
function externalRevert() external pure {

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
/// @dev Not intended for mainnet or testnet deployment, only for local testing
contract OpcodeTestContract {

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { ErrorAndDestructionTesting } from "./ErrorAndDestructionTesting.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { PauseManager } from "../../../security/pausing/PauseManager.sol";
import { TestSetPauseTypeRoles } from "./TestSetPauseTypeRoles.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import { RateLimiter } from "../../../security/limiting/RateLimiter.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { PauseManager } from "../../../security/pausing/PauseManager.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
/// @dev Test contract to test LXP-L minting
interface ITransferSurgeXP {

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { ERC20PermitUpgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { BridgedToken } from "./BridgedToken.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { ITokenBridge } from "./interfaces/ITokenBridge.sol";
import { IMessageService } from "../../messaging/interfaces/IMessageService.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { IPauseManager } from "../../../security/pausing/interfaces/IPauseManager.sol";
import { IPermissionsManager } from "../../../security/access/interfaces/IPermissionsManager.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Contract to fill space in storage to maintain storage layout.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { TimelockController } from "@openzeppelin/contracts/governance/TimelockController.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Interface declaring generic errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Contract to manage some efficient hashing functions.

View File

@@ -15,7 +15,7 @@
// limitations under the License.
// Code generated by gnark DO NOT EDIT
pragma solidity 0.8.25;
pragma solidity 0.8.30;
/**
* @title Library to perform MiMC hashing

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.25;
pragma solidity 0.8.30;
import { Mimc } from "./Mimc.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import { IMessageService } from "./interfaces/IMessageService.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Interface declaring pre-existing cross-chain messaging functions, events and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
import { BitMaps } from "@openzeppelin/contracts/utils/structs/BitMaps.sol";
import { L1MessageManagerV1 } from "./v1/L1MessageManagerV1.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import { L1MessageServiceV1 } from "./v1/L1MessageServiceV1.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
/**
* @title L1 Message manager interface for current functions, events and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
/**
* @title L1 Message Service interface for pre-existing functions, events, structs and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
import { IL1MessageManagerV1 } from "./interfaces/IL1MessageManagerV1.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
import { LineaRollupPauseManager } from "../../../security/pausing/LineaRollupPauseManager.sol";
import { RateLimiter } from "../../../security/limiting/RateLimiter.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
/**
* @title L1 Message manager V1 interface for pre-existing errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import { L2MessageManagerV1 } from "./v1/L2MessageManagerV1.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import { L2MessageServiceV1 } from "./v1/L2MessageServiceV1.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Interface declaring cross-chain messaging on L2 functions, events and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import { IL2MessageManagerV1 } from "./interfaces/IL2MessageManagerV1.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { ReentrancyGuardUpgradeable } from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
import { IMessageService } from "../../interfaces/IMessageService.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Interface declaring pre-existing cross-chain messaging on L2 functions, events and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title L2 Message Service interface for pre-existing functions, events and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Library to hash cross-chain messages.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
import { EfficientLeftRightKeccak } from "../../libraries/EfficientLeftRightKeccak.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
/**
* @title Interface declaring IRecoverFunds errors and functions.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import { L1MessageServiceV1 } from "../messaging/l1/v1/L1MessageServiceV1.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
import { IPauseManager } from "../../security/pausing/interfaces/IPauseManager.sol";
import { IPermissionsManager } from "../../security/access/interfaces/IPermissionsManager.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
/**
* @title ZkEvm rollup interface for pre-existing functions, events and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import { IGenericErrors } from "../../interfaces/IGenericErrors.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Interface declaring permissions manager related data types.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import { IRateLimiter } from "./interfaces/IRateLimiter.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Interface declaring rate limiting messaging functions, events and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { PauseManager } from "./PauseManager.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { PauseManager } from "./PauseManager.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
import { IPauseManager } from "./interfaces/IPauseManager.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
import { PauseManager } from "./PauseManager.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Interface declaring pre-existing pausing functions, events and errors.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
/**
* @title Contract that helps prevent reentrant calls.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { AccessControl } from "@openzeppelin/contracts/access/AccessControl.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { AccessControl } from "@openzeppelin/contracts/access/AccessControl.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import { AccessControl } from "@openzeppelin/contracts/access/AccessControl.sol";
import { ITokenMinter } from "./interfaces/ITokenMinter.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Token Minter Interface.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.19;
pragma solidity 0.8.30;
/**
* @title Token Minting Rate Limiter Interface.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.26;
pragma solidity 0.8.30;
/**
* @title Interface declaring verifier functions.

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;
pragma solidity 0.8.30;
contract TestContract {
event TestEvent(address indexed sender, uint256 value);