diff --git a/foundry.toml b/foundry.toml index 26097a46e..6aefa28b3 100644 --- a/foundry.toml +++ b/foundry.toml @@ -6,7 +6,7 @@ libs = ['lib'] optimizer = true optimizer_runs = 20000 via_ir = false -solc_version = '0.8.16' +solc_version = '0.8.17' [profile.sec_council_mgmt] optimizer_runs = 750 diff --git a/hardhat.config.ts b/hardhat.config.ts index 7b6985b3a..4ab11cb05 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -6,7 +6,7 @@ dotenv.config(); // when changing optimizer settings, make sure to also change settings in foundry.toml const solidityProfiles = { default: { - version: "0.8.16", + version: "0.8.17", settings: { optimizer: { enabled: true, @@ -15,7 +15,7 @@ const solidityProfiles = { } }, sec_council_mgmt: { - version: "0.8.16", + version: "0.8.17", settings: { optimizer: { enabled: true, diff --git a/package.json b/package.json index 54acd0e9e..b80a8ba85 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "typescript": "^4.8.4" }, "dependencies": { - "@arbitrum/nitro-contracts": "1.1.1", + "@arbitrum/nitro-contracts": "3.0.0-alpha.2", "@arbitrum/token-bridge-contracts": "1.0.0-beta.0", "@gnosis.pm/safe-contracts": "1.3.0", "@openzeppelin/contracts": "4.7.3", diff --git a/scripts/contractVerifier.ts b/scripts/contractVerifier.ts index 726502314..bee737ab9 100644 --- a/scripts/contractVerifier.ts +++ b/scripts/contractVerifier.ts @@ -11,7 +11,7 @@ export class ContractVerifier { deployedContracts: DeployProgressCache; readonly NUM_OF_OPTIMIZATIONS = 20000; - readonly COMPILER_VERSION = "0.8.16"; + readonly COMPILER_VERSION = "0.8.17"; ///// List of contract addresses and their corresponding source code files readonly TUP = diff --git a/src-ts/proposalStage.ts b/src-ts/proposalStage.ts index c8059b385..453a67dc9 100644 --- a/src-ts/proposalStage.ts +++ b/src-ts/proposalStage.ts @@ -1384,12 +1384,12 @@ export class RetryableExecutionStage implements ProposalStage { throw new Error("Message is not a writer"); } - while (true) { - try { - await (await this.l1ToL2Message.redeem()).wait(); - break; - } catch { - const id = this.l1ToL2Message.retryableCreationId.toLowerCase(); + try { + await (await this.l1ToL2Message.redeem()).wait(); + } catch { + const id = this.l1ToL2Message.retryableCreationId.toLowerCase(); + const redeemed = await this.l1ToL2Message.status(); + if (redeemed !== L1ToL2MessageStatus.REDEEMED) { console.error(`Failed to redeem retryable ${id}, retrying in 60s`); await wait(60_000); } diff --git a/src/ArbitrumDAOConstitution.sol b/src/ArbitrumDAOConstitution.sol index b1d92f204..aab3c2311 100644 --- a/src/ArbitrumDAOConstitution.sol +++ b/src/ArbitrumDAOConstitution.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/access/Ownable.sol"; diff --git a/src/ArbitrumFoundationVestingWallet.sol b/src/ArbitrumFoundationVestingWallet.sol index dc5ae6585..e46f61f07 100644 --- a/src/ArbitrumFoundationVestingWallet.sol +++ b/src/ArbitrumFoundationVestingWallet.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/finance/VestingWalletUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/src/ArbitrumTimelock.sol b/src/ArbitrumTimelock.sol index 9e2b23464..b5342a094 100644 --- a/src/ArbitrumTimelock.sol +++ b/src/ArbitrumTimelock.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/TimelockControllerUpgradeable.sol"; diff --git a/src/ArbitrumVestingWallet.sol b/src/ArbitrumVestingWallet.sol index 4714b7566..b1e5afe6f 100644 --- a/src/ArbitrumVestingWallet.sol +++ b/src/ArbitrumVestingWallet.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/finance/VestingWallet.sol"; import "@openzeppelin/contracts-upgradeable/governance/IGovernorUpgradeable.sol"; diff --git a/src/ArbitrumVestingWalletFactory.sol b/src/ArbitrumVestingWalletFactory.sol index 9a3cfe406..e5feef72c 100644 --- a/src/ArbitrumVestingWalletFactory.sol +++ b/src/ArbitrumVestingWalletFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbitrumVestingWallet.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; diff --git a/src/FixedDelegateErc20Wallet.sol b/src/FixedDelegateErc20Wallet.sol index 673a54d5b..c1b508f85 100644 --- a/src/FixedDelegateErc20Wallet.sol +++ b/src/FixedDelegateErc20Wallet.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/utils/IVotesUpgradeable.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; diff --git a/src/L1ArbitrumMessenger.sol b/src/L1ArbitrumMessenger.sol index c2bca8cc3..08f2729f2 100644 --- a/src/L1ArbitrumMessenger.sol +++ b/src/L1ArbitrumMessenger.sol @@ -16,7 +16,7 @@ * limitations under the License. */ -pragma solidity ^0.8.16; +pragma solidity ^0.8.17; import "@arbitrum/nitro-contracts/src/bridge/IInbox.sol"; import "@arbitrum/nitro-contracts/src/bridge/IOutbox.sol"; diff --git a/src/L1ArbitrumTimelock.sol b/src/L1ArbitrumTimelock.sol index 150d79845..03d5fea50 100644 --- a/src/L1ArbitrumTimelock.sol +++ b/src/L1ArbitrumTimelock.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/bridge/IInbox.sol"; import "./L1ArbitrumMessenger.sol"; diff --git a/src/L1ArbitrumToken.sol b/src/L1ArbitrumToken.sol index 3e39d27bd..2de1249b3 100644 --- a/src/L1ArbitrumToken.sol +++ b/src/L1ArbitrumToken.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol"; import "@arbitrum/token-bridge-contracts/contracts/tokenbridge/ethereum/ICustomToken.sol"; diff --git a/src/L1GovernanceFactory.sol b/src/L1GovernanceFactory.sol index c6292aad5..8802ecbd2 100644 --- a/src/L1GovernanceFactory.sol +++ b/src/L1GovernanceFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./L1ArbitrumTimelock.sol"; import "./UpgradeExecutor.sol"; diff --git a/src/L2ArbitrumGovernor.sol b/src/L2ArbitrumGovernor.sol index f08e2cb11..079ade85e 100644 --- a/src/L2ArbitrumGovernor.sol +++ b/src/L2ArbitrumGovernor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorSettingsUpgradeable.sol"; diff --git a/src/L2ArbitrumToken.sol b/src/L2ArbitrumToken.sol index fe9ba482b..513d64344 100644 --- a/src/L2ArbitrumToken.sol +++ b/src/L2ArbitrumToken.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; diff --git a/src/L2GovernanceFactory.sol b/src/L2GovernanceFactory.sol index 5a4ad6b9f..e7f041d1f 100644 --- a/src/L2GovernanceFactory.sol +++ b/src/L2GovernanceFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./L2ArbitrumToken.sol"; import "./L2ArbitrumGovernor.sol"; diff --git a/src/TokenDistributor.sol b/src/TokenDistributor.sol index abf170e72..4fd751d13 100644 --- a/src/TokenDistributor.sol +++ b/src/TokenDistributor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import {IERC20VotesUpgradeable} from "./Util.sol"; diff --git a/src/TransferAndCallToken.sol b/src/TransferAndCallToken.sol index 6343a7180..3d7ffef1a 100644 --- a/src/TransferAndCallToken.sol +++ b/src/TransferAndCallToken.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: MIT // solhint-disable-next-line compiler-version -pragma solidity ^0.8.16; +pragma solidity ^0.8.17; // This file was copied from // * https://github.com/OffchainLabs/token-bridge-contracts/blob/e304fa491f0574c984e80705f9f6d7cf8f0d798e/contracts/tokenbridge/libraries/TransferAndCallToken.sol // * https://github.com/OffchainLabs/token-bridge-contracts/blob/e304fa491f0574c984e80705f9f6d7cf8f0d798e/contracts/tokenbridge/libraries/ITransferAndCall.sol -// But the version was updated from >0.6.0 <0.8.0 to ^0.8.16 and the +// But the version was updated from >0.6.0 <0.8.0 to ^0.8.17 and the // imports where made from upgradeable instead of 0.6 import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; diff --git a/src/UpgradeExecRouteBuilder.sol b/src/UpgradeExecRouteBuilder.sol index b1f7f6ee1..821bd9cda 100644 --- a/src/UpgradeExecRouteBuilder.sol +++ b/src/UpgradeExecRouteBuilder.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol"; import "./UpgradeExecutor.sol"; diff --git a/src/UpgradeExecutor.sol b/src/UpgradeExecutor.sol index adaa6d830..b6ee73f0b 100644 --- a/src/UpgradeExecutor.sol +++ b/src/UpgradeExecutor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; diff --git a/src/Util.sol b/src/Util.sol index f062b9cf9..8827c93ef 100644 --- a/src/Util.sol +++ b/src/Util.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; import diff --git a/src/gov-action-contracts/AIPs/AIP1Point1Target.sol b/src/gov-action-contracts/AIPs/AIP1Point1Target.sol index 3a1bb156a..4ca400f48 100644 --- a/src/gov-action-contracts/AIPs/AIP1Point1Target.sol +++ b/src/gov-action-contracts/AIPs/AIP1Point1Target.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; /// @notice contract for AIP-1.1 https://forum.arbitrum.foundation/t/proposal-aip-1-1-lockup-budget-transparency/13360. /// AIP-1.1 Is a non-constitutional proposal as per the constitution and thus is to be put to an on-chain vote; however, diff --git a/src/gov-action-contracts/AIPs/AIP1Point2Action.sol b/src/gov-action-contracts/AIPs/AIP1Point2Action.sol index 66ccd98b9..2a90a98b7 100644 --- a/src/gov-action-contracts/AIPs/AIP1Point2Action.sol +++ b/src/gov-action-contracts/AIPs/AIP1Point2Action.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP4844/AIP4844Action.sol b/src/gov-action-contracts/AIPs/AIP4844/AIP4844Action.sol index ba37d5c1e..c1bdaba72 100644 --- a/src/gov-action-contracts/AIPs/AIP4844/AIP4844Action.sol +++ b/src/gov-action-contracts/AIPs/AIP4844/AIP4844Action.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; import "../../address-registries/L1AddressRegistry.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP4844/ArbOneAIP4844Action.sol b/src/gov-action-contracts/AIPs/AIP4844/ArbOneAIP4844Action.sol index 17e7c40c6..415be1cca 100644 --- a/src/gov-action-contracts/AIPs/AIP4844/ArbOneAIP4844Action.sol +++ b/src/gov-action-contracts/AIPs/AIP4844/ArbOneAIP4844Action.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./AIP4844Action.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP4844/ArbOneSetBatchPosterManagerAction.sol b/src/gov-action-contracts/AIPs/AIP4844/ArbOneSetBatchPosterManagerAction.sol index 212f8d46b..947d7edb1 100644 --- a/src/gov-action-contracts/AIPs/AIP4844/ArbOneSetBatchPosterManagerAction.sol +++ b/src/gov-action-contracts/AIPs/AIP4844/ArbOneSetBatchPosterManagerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./SetBatchPosterManager.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP4844/NovaAIP4844Action.sol b/src/gov-action-contracts/AIPs/AIP4844/NovaAIP4844Action.sol index f129ce7d4..b999adabe 100644 --- a/src/gov-action-contracts/AIPs/AIP4844/NovaAIP4844Action.sol +++ b/src/gov-action-contracts/AIPs/AIP4844/NovaAIP4844Action.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./AIP4844Action.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP4844/NovaSetBatchPosterManagerAction.sol b/src/gov-action-contracts/AIPs/AIP4844/NovaSetBatchPosterManagerAction.sol index 0cfacd945..ff8c468f9 100644 --- a/src/gov-action-contracts/AIPs/AIP4844/NovaSetBatchPosterManagerAction.sol +++ b/src/gov-action-contracts/AIPs/AIP4844/NovaSetBatchPosterManagerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./SetBatchPosterManager.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP4844/SetArbOS20VersionAction.sol b/src/gov-action-contracts/AIPs/AIP4844/SetArbOS20VersionAction.sol index 39b25247a..3669d6cdd 100644 --- a/src/gov-action-contracts/AIPs/AIP4844/SetArbOS20VersionAction.sol +++ b/src/gov-action-contracts/AIPs/AIP4844/SetArbOS20VersionAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../arbos-upgrade/UpgradeArbOSVersionAction.sol"; import "../../address-registries/L1AddressRegistry.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP4844/SetBatchPosterManager.sol b/src/gov-action-contracts/AIPs/AIP4844/SetBatchPosterManager.sol index edf197e38..5bf848cd3 100644 --- a/src/gov-action-contracts/AIPs/AIP4844/SetBatchPosterManager.sol +++ b/src/gov-action-contracts/AIPs/AIP4844/SetBatchPosterManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../address-registries/L1AddressRegistry.sol"; import "@openzeppelin/contracts/utils/Address.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP4Action.sol b/src/gov-action-contracts/AIPs/AIP4Action.sol index 349c2a9b0..8089e53df 100644 --- a/src/gov-action-contracts/AIPs/AIP4Action.sol +++ b/src/gov-action-contracts/AIPs/AIP4Action.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP7/SetSweepReceiverAction.sol b/src/gov-action-contracts/AIPs/AIP7/SetSweepReceiverAction.sol index 013ea7ff0..a931fcb1f 100644 --- a/src/gov-action-contracts/AIPs/AIP7/SetSweepReceiverAction.sol +++ b/src/gov-action-contracts/AIPs/AIP7/SetSweepReceiverAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../address-registries/L2AddressRegistry.sol"; import "../../../TokenDistributor.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP7/UpdateGasChargeAction.sol b/src/gov-action-contracts/AIPs/AIP7/UpdateGasChargeAction.sol index caaab1ef5..94aec6f6b 100644 --- a/src/gov-action-contracts/AIPs/AIP7/UpdateGasChargeAction.sol +++ b/src/gov-action-contracts/AIPs/AIP7/UpdateGasChargeAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/precompiles/ArbOwner.sol"; import "@arbitrum/nitro-contracts/src/precompiles/ArbGasInfo.sol"; diff --git a/src/gov-action-contracts/AIPs/AIP7/UpdateL1CoreTimelockAction.sol b/src/gov-action-contracts/AIPs/AIP7/UpdateL1CoreTimelockAction.sol index a2de08afb..70845b3f8 100644 --- a/src/gov-action-contracts/AIPs/AIP7/UpdateL1CoreTimelockAction.sol +++ b/src/gov-action-contracts/AIPs/AIP7/UpdateL1CoreTimelockAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; import "../../address-registries/L1AddressRegistry.sol"; diff --git a/src/gov-action-contracts/AIPs/AIPArbOS31/ArbOneAIPArbOS31AddWasmCacheManagerAction.sol b/src/gov-action-contracts/AIPs/AIPArbOS31/ArbOneAIPArbOS31AddWasmCacheManagerAction.sol index 0c6459dcc..505757e1d 100644 --- a/src/gov-action-contracts/AIPs/AIPArbOS31/ArbOneAIPArbOS31AddWasmCacheManagerAction.sol +++ b/src/gov-action-contracts/AIPs/AIPArbOS31/ArbOneAIPArbOS31AddWasmCacheManagerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./parent_contracts/AIPArbOS31AddWasmCacheManagerAction.sol"; diff --git a/src/gov-action-contracts/AIPs/AIPArbOS31/ArbOneAIPArbOS31UpgradeChallengeManagerAction.sol b/src/gov-action-contracts/AIPs/AIPArbOS31/ArbOneAIPArbOS31UpgradeChallengeManagerAction.sol index 1356e18df..18f8dba28 100644 --- a/src/gov-action-contracts/AIPs/AIPArbOS31/ArbOneAIPArbOS31UpgradeChallengeManagerAction.sol +++ b/src/gov-action-contracts/AIPs/AIPArbOS31/ArbOneAIPArbOS31UpgradeChallengeManagerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./parent_contracts/AIPArbOS31UpgradeChallengeManagerAction.sol"; import "@arbitrum/nitro-contracts/src/osp/IOneStepProofEntry.sol"; diff --git a/src/gov-action-contracts/AIPs/AIPArbOS31/NovaAIPArbOS31AddWasmCacheManagerAction.sol b/src/gov-action-contracts/AIPs/AIPArbOS31/NovaAIPArbOS31AddWasmCacheManagerAction.sol index 094b24d15..7ee3c8676 100644 --- a/src/gov-action-contracts/AIPs/AIPArbOS31/NovaAIPArbOS31AddWasmCacheManagerAction.sol +++ b/src/gov-action-contracts/AIPs/AIPArbOS31/NovaAIPArbOS31AddWasmCacheManagerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./parent_contracts/AIPArbOS31AddWasmCacheManagerAction.sol"; diff --git a/src/gov-action-contracts/AIPs/AIPArbOS31/NovaAIPArbOS31UpgradeChallengeManagerAction.sol b/src/gov-action-contracts/AIPs/AIPArbOS31/NovaAIPArbOS31UpgradeChallengeManagerAction.sol index 30e2c89ec..c28167f3f 100644 --- a/src/gov-action-contracts/AIPs/AIPArbOS31/NovaAIPArbOS31UpgradeChallengeManagerAction.sol +++ b/src/gov-action-contracts/AIPs/AIPArbOS31/NovaAIPArbOS31UpgradeChallengeManagerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./parent_contracts/AIPArbOS31UpgradeChallengeManagerAction.sol"; import "@arbitrum/nitro-contracts/src/osp/IOneStepProofEntry.sol"; diff --git a/src/gov-action-contracts/AIPs/AIPArbOS31/SetArbOS31VersionAction.sol b/src/gov-action-contracts/AIPs/AIPArbOS31/SetArbOS31VersionAction.sol index cb97c2c2d..d9ed5c8c3 100644 --- a/src/gov-action-contracts/AIPs/AIPArbOS31/SetArbOS31VersionAction.sol +++ b/src/gov-action-contracts/AIPs/AIPArbOS31/SetArbOS31VersionAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../arbos-upgrade/UpgradeArbOSVersionAtTimestampAction.sol"; diff --git a/src/gov-action-contracts/AIPs/AIPArbOS31/parent_contracts/AIPArbOS31AddWasmCacheManagerAction.sol b/src/gov-action-contracts/AIPs/AIPArbOS31/parent_contracts/AIPArbOS31AddWasmCacheManagerAction.sol index 93182a53c..e9c9169f5 100644 --- a/src/gov-action-contracts/AIPs/AIPArbOS31/parent_contracts/AIPArbOS31AddWasmCacheManagerAction.sol +++ b/src/gov-action-contracts/AIPs/AIPArbOS31/parent_contracts/AIPArbOS31AddWasmCacheManagerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol"; diff --git a/src/gov-action-contracts/AIPs/AIPArbOS31/parent_contracts/AIPArbOS31UpgradeChallengeManagerAction.sol b/src/gov-action-contracts/AIPs/AIPArbOS31/parent_contracts/AIPArbOS31UpgradeChallengeManagerAction.sol index 90fe3254d..e84b537de 100644 --- a/src/gov-action-contracts/AIPs/AIPArbOS31/parent_contracts/AIPArbOS31UpgradeChallengeManagerAction.sol +++ b/src/gov-action-contracts/AIPs/AIPArbOS31/parent_contracts/AIPArbOS31UpgradeChallengeManagerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol"; import "@arbitrum/nitro-contracts/src/osp/IOneStepProofEntry.sol"; diff --git a/src/gov-action-contracts/AIPs/AIPNovaFeeRoutingAction.sol b/src/gov-action-contracts/AIPs/AIPNovaFeeRoutingAction.sol index 24e51852a..cff9d0ba2 100644 --- a/src/gov-action-contracts/AIPs/AIPNovaFeeRoutingAction.sol +++ b/src/gov-action-contracts/AIPs/AIPNovaFeeRoutingAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/utils/Address.sol"; diff --git a/src/gov-action-contracts/AIPs/ArbOS11/SetArbOS11VersionAction.sol b/src/gov-action-contracts/AIPs/ArbOS11/SetArbOS11VersionAction.sol index f9840655a..fad85e3e3 100644 --- a/src/gov-action-contracts/AIPs/ArbOS11/SetArbOS11VersionAction.sol +++ b/src/gov-action-contracts/AIPs/ArbOS11/SetArbOS11VersionAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../arbos-upgrade/UpgradeArbOSVersionAction.sol"; import "../../address-registries/L1AddressRegistry.sol"; diff --git a/src/gov-action-contracts/AIPs/ArbOS11/SetArbOneArbOS11ModuleRootAciton.sol b/src/gov-action-contracts/AIPs/ArbOS11/SetArbOneArbOS11ModuleRootAciton.sol index 5e64d90bf..c09e1cbfd 100644 --- a/src/gov-action-contracts/AIPs/ArbOS11/SetArbOneArbOS11ModuleRootAciton.sol +++ b/src/gov-action-contracts/AIPs/ArbOS11/SetArbOneArbOS11ModuleRootAciton.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../arbos-upgrade/SetWasmModuleRootAction.sol"; import "../../address-registries/L1AddressRegistry.sol"; diff --git a/src/gov-action-contracts/AIPs/ArbOS11/SetNovaArbOS11ModuleRootAction.sol b/src/gov-action-contracts/AIPs/ArbOS11/SetNovaArbOS11ModuleRootAction.sol index e8b0e997e..b5c972eb8 100644 --- a/src/gov-action-contracts/AIPs/ArbOS11/SetNovaArbOS11ModuleRootAction.sol +++ b/src/gov-action-contracts/AIPs/ArbOS11/SetNovaArbOS11ModuleRootAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../arbos-upgrade/SetWasmModuleRootAction.sol"; import "../../address-registries/L1AddressRegistry.sol"; diff --git a/src/gov-action-contracts/AIPs/BOLDUpgradeAction.sol b/src/gov-action-contracts/AIPs/BOLDUpgradeAction.sol new file mode 100644 index 000000000..ca854bd56 --- /dev/null +++ b/src/gov-action-contracts/AIPs/BOLDUpgradeAction.sol @@ -0,0 +1,607 @@ +// Copyright 2021-2022, Offchain Labs, Inc. +// For license information, see https://github.com/OffchainLabs/nitro-contracts/blob/main/LICENSE +// SPDX-License-Identifier: BUSL-1.1 + +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol"; +import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; + +import "@arbitrum/nitro-contracts/src/rollup/RollupProxy.sol"; +import "@arbitrum/nitro-contracts/src/rollup/RollupLib.sol"; +import "@arbitrum/nitro-contracts/src/rollup/RollupAdminLogic.sol"; + +struct Node { + // Hash of the state of the chain as of this node + bytes32 stateHash; + // Hash of the data that can be challenged + bytes32 challengeHash; + // Hash of the data that will be committed if this node is confirmed + bytes32 confirmData; + // Index of the node previous to this one + uint64 prevNum; + // Deadline at which this node can be confirmed + uint64 deadlineBlock; + // Deadline at which a child of this node can be confirmed + uint64 noChildConfirmedBeforeBlock; + // Number of stakers staked on this node. This includes real stakers and zombies + uint64 stakerCount; + // Number of stakers staked on a child node. This includes real stakers and zombies + uint64 childStakerCount; + // This value starts at zero and is set to a value when the first child is created. After that it is constant until the node is destroyed or the owner destroys pending nodes + uint64 firstChildBlock; + // The number of the latest child of this node to be created + uint64 latestChildNumber; + // The block number when this node was created + uint64 createdAtBlock; + // A hash of all the data needed to determine this node's validity, to protect against reorgs + bytes32 nodeHash; +} + +struct OldStaker { + uint256 amountStaked; + uint64 index; + uint64 latestStakedNode; + // currentChallenge is 0 if staker is not in a challenge + uint64 currentChallenge; // 1. cannot have current challenge + bool isStaked; // 2. must be staked +} + +interface IOldRollup { + struct Assertion { + ExecutionState beforeState; + ExecutionState afterState; + uint64 numBlocks; + } + + event NodeCreated( + uint64 indexed nodeNum, + bytes32 indexed parentNodeHash, + bytes32 indexed nodeHash, + bytes32 executionHash, + Assertion assertion, + bytes32 afterInboxBatchAcc, + bytes32 wasmModuleRoot, + uint256 inboxMaxCount + ); + + function wasmModuleRoot() external view returns (bytes32); + function latestConfirmed() external view returns (uint64); + function getNode(uint64 nodeNum) external view returns (Node memory); + function getStakerAddress(uint64 stakerNum) external view returns (address); + function stakerCount() external view returns (uint64); + function getStaker(address staker) external view returns (OldStaker memory); + function isValidator(address validator) external view returns (bool); + function validatorWalletCreator() external view returns (address); + function anyTrustFastConfirmer() external view returns (address); +} + +interface IOldRollupAdmin { + function forceRefundStaker(address[] memory stacker) external; + function pause() external; + function resume() external; +} + +interface ISeqInboxPostUpgradeInit { + function postUpgradeInit(BufferConfig memory bufferConfig_) external; +} + +/// @title Provides pre-images to a state hash +/// @notice We need to use the execution state of the latest confirmed node as the genesis +/// in the new rollup. However the this full state is not available on chain, only +/// the state hash is, which commits to this. This lookup contract should be deployed +/// before the upgrade, and just before the upgrade is executed the pre-image of the +/// latest confirmed state hash should be populated here. The upgrade contact can then +/// fetch this information and verify it before using it. +contract StateHashPreImageLookup { + using GlobalStateLib for GlobalState; + + event HashSet(bytes32 h, ExecutionState executionState, uint256 inboxMaxCount); + + mapping(bytes32 => bytes) internal preImages; + + function stateHash(ExecutionState calldata executionState, uint256 inboxMaxCount) + public + pure + returns (bytes32) + { + return keccak256( + abi.encodePacked( + executionState.globalState.hash(), inboxMaxCount, executionState.machineStatus + ) + ); + } + + function set(bytes32 h, ExecutionState calldata executionState, uint256 inboxMaxCount) public { + require(h == stateHash(executionState, inboxMaxCount), "Invalid hash"); + preImages[h] = abi.encode(executionState, inboxMaxCount); + emit HashSet(h, executionState, inboxMaxCount); + } + + function get(bytes32 h) + public + view + returns (ExecutionState memory executionState, uint256 inboxMaxCount) + { + (executionState, inboxMaxCount) = abi.decode(preImages[h], (ExecutionState, uint256)); + require(inboxMaxCount != 0, "Hash not yet set"); + } +} + +/// @title Forwards calls to the rollup so that they can be interpreted as a user +/// @notice In the upgrade executor we need to access functions on the rollup +/// but since the upgrade executor is the admin it will always be forwarded to the +/// rollup admin logic. We create a separate forwarder contract here that just relays +/// information, since it's not the admin it can access rollup user logic. +contract RollupReader is IOldRollup { + IOldRollup public immutable rollup; + + constructor(IOldRollup _rollup) { + rollup = _rollup; + } + + function wasmModuleRoot() external view returns (bytes32) { + return rollup.wasmModuleRoot(); + } + + function latestConfirmed() external view returns (uint64) { + return rollup.latestConfirmed(); + } + + function getNode(uint64 nodeNum) external view returns (Node memory) { + return rollup.getNode(nodeNum); + } + + function getStakerAddress(uint64 stakerNum) external view returns (address) { + return rollup.getStakerAddress(stakerNum); + } + + function stakerCount() external view returns (uint64) { + return rollup.stakerCount(); + } + + function getStaker(address staker) external view returns (OldStaker memory) { + return rollup.getStaker(staker); + } + + function isValidator(address validator) external view returns (bool) { + return rollup.isValidator(validator); + } + + function validatorWalletCreator() external view returns (address) { + return rollup.validatorWalletCreator(); + } + + function anyTrustFastConfirmer() external view returns (address) { + return rollup.anyTrustFastConfirmer(); + } +} + +/// @notice Stores an array specified during construction. +/// Since the BOLDUpgradeAction is not allowed to have storage, +/// we use this contract so it can keep an immutable pointer to an array. +contract ConstantArrayStorage { + uint256[] internal _array; + + constructor(uint256[] memory __array) { + _array = __array; + } + + function array() public view returns (uint256[] memory) { + return _array; + } +} + +/// @title Upgrades an Arbitrum rollup to the new challenge protocol +/// @notice Requires implementation contracts to be pre-deployed and provided in the constructor +/// Also requires a lookup contract to be provided that contains the pre-image of the state hash +/// that is in the latest confirmed assertion in the current rollup. +contract BOLDUpgradeAction { + using AssertionStateLib for AssertionState; + + uint256 public immutable BLOCK_LEAF_SIZE; + uint256 public immutable BIGSTEP_LEAF_SIZE; + uint256 public immutable SMALLSTEP_LEAF_SIZE; + uint8 public immutable NUM_BIGSTEP_LEVEL; + + address public immutable EXCESS_STAKE_RECEIVER; + IOldRollup public immutable OLD_ROLLUP; + address public immutable BRIDGE; + address public immutable SEQ_INBOX; + address public immutable REI; + address public immutable OUTBOX; + address public immutable INBOX; + + uint64 public immutable CONFIRM_PERIOD_BLOCKS; + uint64 public immutable CHALLENGE_PERIOD_BLOCKS; + address public immutable STAKE_TOKEN; + uint256 public immutable STAKE_AMOUNT; + uint256 public immutable CHAIN_ID; + bool public immutable DISABLE_VALIDATOR_WHITELIST; + uint64 public immutable CHALLENGE_GRACE_PERIOD_BLOCKS; + address public immutable MINI_STAKE_AMOUNTS_STORAGE; + bool public immutable IS_DELAY_BUFFERABLE; + uint256 public constant SECONDS_PER_SLOT = 12; + // buffer config + uint64 public immutable MAX; + uint64 public immutable THRESHOLD; + uint64 public immutable REPLENISH_RATE_IN_BASIS; + + IOneStepProofEntry public immutable OSP; + // proxy admins of the contracts to be upgraded + ProxyAdmin public immutable PROXY_ADMIN_OUTBOX; + ProxyAdmin public immutable PROXY_ADMIN_BRIDGE; + ProxyAdmin public immutable PROXY_ADMIN_REI; + ProxyAdmin public immutable PROXY_ADMIN_SEQUENCER_INBOX; + ProxyAdmin public immutable PROXY_ADMIN_INBOX; + StateHashPreImageLookup public immutable PREIMAGE_LOOKUP; + RollupReader public immutable ROLLUP_READER; + + // new contract implementations + address public immutable IMPL_BRIDGE; + address public immutable IMPL_SEQUENCER_INBOX; + address public immutable IMPL_INBOX; + address public immutable IMPL_REI; + address public immutable IMPL_OUTBOX; + // the old rollup, but with whenNotPaused protection removed from stake withdrawal functions + address public immutable IMPL_PATCHED_OLD_ROLLUP_USER; + address public immutable IMPL_NEW_ROLLUP_USER; + address public immutable IMPL_NEW_ROLLUP_ADMIN; + address public immutable IMPL_CHALLENGE_MANAGER; + + event RollupMigrated(address rollup, address challengeManager); + + struct Settings { + uint64 confirmPeriodBlocks; + uint64 challengePeriodBlocks; + address stakeToken; + uint256 stakeAmt; + uint256[] miniStakeAmounts; + uint256 chainId; + bool disableValidatorWhitelist; + uint256 blockLeafSize; + uint256 bigStepLeafSize; + uint256 smallStepLeafSize; + uint8 numBigStepLevel; + uint64 challengeGracePeriodBlocks; + bool isDelayBufferable; + BufferConfig bufferConfig; + } + + // Unfortunately these are not discoverable on-chain, so we need to supply them + struct ProxyAdmins { + address outbox; + address bridge; + address rei; + address seqInbox; + address inbox; + } + + struct Implementations { + address bridge; + address seqInbox; + address inbox; + address rei; + address outbox; + address oldRollupUser; + address newRollupUser; + address newRollupAdmin; + address challengeManager; + } + + struct Contracts { + address excessStakeReceiver; + IOldRollup rollup; + address bridge; + address sequencerInbox; + address rollupEventInbox; + address outbox; + address inbox; + IOneStepProofEntry osp; + } + + constructor( + Contracts memory contracts, + ProxyAdmins memory proxyAdmins, + Implementations memory implementations, + Settings memory settings + ) { + EXCESS_STAKE_RECEIVER = contracts.excessStakeReceiver; + OLD_ROLLUP = contracts.rollup; + BRIDGE = contracts.bridge; + SEQ_INBOX = contracts.sequencerInbox; + REI = contracts.rollupEventInbox; + OUTBOX = contracts.outbox; + INBOX = contracts.inbox; + OSP = contracts.osp; + + PROXY_ADMIN_OUTBOX = ProxyAdmin(proxyAdmins.outbox); + PROXY_ADMIN_BRIDGE = ProxyAdmin(proxyAdmins.bridge); + PROXY_ADMIN_REI = ProxyAdmin(proxyAdmins.rei); + PROXY_ADMIN_SEQUENCER_INBOX = ProxyAdmin(proxyAdmins.seqInbox); + PROXY_ADMIN_INBOX = ProxyAdmin(proxyAdmins.inbox); + PREIMAGE_LOOKUP = new StateHashPreImageLookup(); + ROLLUP_READER = new RollupReader(contracts.rollup); + + IMPL_BRIDGE = implementations.bridge; + IMPL_SEQUENCER_INBOX = implementations.seqInbox; + IMPL_INBOX = implementations.inbox; + IMPL_REI = implementations.rei; + IMPL_OUTBOX = implementations.outbox; + IMPL_PATCHED_OLD_ROLLUP_USER = implementations.oldRollupUser; + IMPL_NEW_ROLLUP_USER = implementations.newRollupUser; + IMPL_NEW_ROLLUP_ADMIN = implementations.newRollupAdmin; + IMPL_CHALLENGE_MANAGER = implementations.challengeManager; + + CHAIN_ID = settings.chainId; + CONFIRM_PERIOD_BLOCKS = settings.confirmPeriodBlocks; + CHALLENGE_PERIOD_BLOCKS = settings.challengePeriodBlocks; + STAKE_TOKEN = settings.stakeToken; + STAKE_AMOUNT = settings.stakeAmt; + MINI_STAKE_AMOUNTS_STORAGE = address(new ConstantArrayStorage(settings.miniStakeAmounts)); + DISABLE_VALIDATOR_WHITELIST = settings.disableValidatorWhitelist; + BLOCK_LEAF_SIZE = settings.blockLeafSize; + BIGSTEP_LEAF_SIZE = settings.bigStepLeafSize; + SMALLSTEP_LEAF_SIZE = settings.smallStepLeafSize; + NUM_BIGSTEP_LEVEL = settings.numBigStepLevel; + CHALLENGE_GRACE_PERIOD_BLOCKS = settings.challengeGracePeriodBlocks; + IS_DELAY_BUFFERABLE = settings.isDelayBufferable; + MAX = settings.bufferConfig.max; + THRESHOLD = settings.bufferConfig.threshold; + REPLENISH_RATE_IN_BASIS = settings.bufferConfig.replenishRateInBasis; + } + + /// @dev Refund the existing stakers, pause and upgrade the current rollup to + /// allow them to withdraw after pausing + function cleanupOldRollup() private { + IOldRollupAdmin(address(OLD_ROLLUP)).pause(); + + uint64 stakerCount = ROLLUP_READER.stakerCount(); + // since we for-loop these stakers we set an arbitrary limit - we dont + // expect any instances to have close to this number of stakers + if (stakerCount > 50) { + stakerCount = 50; + } + for (uint64 i = 0; i < stakerCount;) { + address stakerAddr = ROLLUP_READER.getStakerAddress(i); + OldStaker memory staker = ROLLUP_READER.getStaker(stakerAddr); + if (staker.isStaked && staker.currentChallenge == 0) { + address[] memory stakersToRefund = new address[](1); + stakersToRefund[0] = stakerAddr; + + IOldRollupAdmin(address(OLD_ROLLUP)).forceRefundStaker(stakersToRefund); + stakerCount -= 1; + } else { + i++; + } + } + + // upgrade the rollup to one that allows validators to withdraw even whilst paused + DoubleLogicUUPSUpgradeable(address(OLD_ROLLUP)).upgradeSecondaryTo( + IMPL_PATCHED_OLD_ROLLUP_USER + ); + } + + /// @dev Create a config for the new rollup - fetches the latest confirmed + /// assertion from the old rollup and uses it as genesis + function createConfig() private view returns (Config memory) { + // fetch the assertion associated with the latest confirmed state + bytes32 latestConfirmedStateHash = + ROLLUP_READER.getNode(ROLLUP_READER.latestConfirmed()).stateHash; + (ExecutionState memory genesisExecState, uint256 inboxMaxCount) = + PREIMAGE_LOOKUP.get(latestConfirmedStateHash); + + // Convert ExecutionState into AssertionState with endHistoryRoot 0 + AssertionState memory genesisAssertionState; + genesisAssertionState.globalState = genesisExecState.globalState; + genesisAssertionState.machineStatus = genesisExecState.machineStatus; + + // double check the hash + require( + PREIMAGE_LOOKUP.stateHash(genesisAssertionState.toExecutionState(), inboxMaxCount) + == latestConfirmedStateHash, + "Invalid latest execution hash" + ); + + // this isnt used during rollup creation, so we can pass in empty + ISequencerInbox.MaxTimeVariation memory maxTimeVariation; + BufferConfig memory bufferConfig; + + return Config({ + confirmPeriodBlocks: CONFIRM_PERIOD_BLOCKS, + stakeToken: STAKE_TOKEN, + baseStake: STAKE_AMOUNT, + wasmModuleRoot: ROLLUP_READER.wasmModuleRoot(), + owner: address(this), // upgrade executor is the owner + loserStakeEscrow: EXCESS_STAKE_RECEIVER, // additional funds get sent to the l1 timelock + chainId: CHAIN_ID, + chainConfig: "", // we can use an empty chain config it wont be used in the rollup initialization because we check if the rei is already connected there + miniStakeValues: ConstantArrayStorage(MINI_STAKE_AMOUNTS_STORAGE).array(), + sequencerInboxMaxTimeVariation: maxTimeVariation, + layerZeroBlockEdgeHeight: BLOCK_LEAF_SIZE, + layerZeroBigStepEdgeHeight: BIGSTEP_LEAF_SIZE, + layerZeroSmallStepEdgeHeight: SMALLSTEP_LEAF_SIZE, + genesisAssertionState: genesisAssertionState, + genesisInboxCount: inboxMaxCount, + anyTrustFastConfirmer: address(0), // fast confirmer would be migrated from the old rollup if existed + numBigStepLevel: NUM_BIGSTEP_LEVEL, + challengeGracePeriodBlocks: CHALLENGE_GRACE_PERIOD_BLOCKS, + bufferConfig: bufferConfig + }); + } + + function upgradeSurroundingContracts(address newRollupAddress) private { + // upgrade each of these contracts to an implementation that allows + // the rollup address to be set to the new rollup address + + TransparentUpgradeableProxy bridge = TransparentUpgradeableProxy(payable(BRIDGE)); + PROXY_ADMIN_BRIDGE.upgrade(bridge, IMPL_BRIDGE); + IBridge(BRIDGE).updateRollupAddress(IOwnable(newRollupAddress)); + + upgradeSequencerInbox(); + + TransparentUpgradeableProxy inbox = TransparentUpgradeableProxy(payable(INBOX)); + PROXY_ADMIN_INBOX.upgrade(inbox, IMPL_INBOX); + + TransparentUpgradeableProxy rollupEventInbox = TransparentUpgradeableProxy(payable(REI)); + PROXY_ADMIN_REI.upgrade(rollupEventInbox, IMPL_REI); + IRollupEventInbox(REI).updateRollupAddress(); + + TransparentUpgradeableProxy outbox = TransparentUpgradeableProxy(payable(OUTBOX)); + PROXY_ADMIN_OUTBOX.upgrade(outbox, IMPL_OUTBOX); + IOutbox(OUTBOX).updateRollupAddress(); + } + + function upgradeSequencerInbox() private { + TransparentUpgradeableProxy sequencerInbox = TransparentUpgradeableProxy(payable(SEQ_INBOX)); + + if (IS_DELAY_BUFFERABLE) { + PROXY_ADMIN_SEQUENCER_INBOX.upgradeAndCall( + sequencerInbox, + IMPL_SEQUENCER_INBOX, + abi.encodeCall( + ISeqInboxPostUpgradeInit.postUpgradeInit, + ( + BufferConfig({ + max: MAX, + threshold: THRESHOLD, + replenishRateInBasis: REPLENISH_RATE_IN_BASIS + }) + ) + ) + ); + } else { + PROXY_ADMIN_SEQUENCER_INBOX.upgrade(sequencerInbox, IMPL_SEQUENCER_INBOX); + } + + // verify + require( + PROXY_ADMIN_SEQUENCER_INBOX.getProxyImplementation(sequencerInbox) + == IMPL_SEQUENCER_INBOX, + "DelayBuffer: new seq inbox implementation not set" + ); + require( + ISequencerInbox(SEQ_INBOX).isDelayBufferable() == IS_DELAY_BUFFERABLE, + "DelayBuffer: isDelayBufferable not set" + ); + + (uint256 delayBlocks, uint256 futureBlocks, uint256 delaySeconds, uint256 futureSeconds) = + ISequencerInbox(SEQ_INBOX).maxTimeVariation(); + + // Force inclusion now depends on block numbers and not timestamps. + // To ensure the force inclusion window is unchanged, we need to + // update the delayBlocks if delaySeconds implies a larger delay. + uint256 implDelayBlocks = delaySeconds % SECONDS_PER_SLOT == 0 + ? delaySeconds / SECONDS_PER_SLOT + : delaySeconds / SECONDS_PER_SLOT + 1; + + delayBlocks = implDelayBlocks > delayBlocks ? implDelayBlocks : delayBlocks; + + ISequencerInbox(SEQ_INBOX).setMaxTimeVariation( + ISequencerInbox.MaxTimeVariation({ + delayBlocks: delayBlocks, + delaySeconds: delaySeconds, + futureBlocks: futureBlocks, + futureSeconds: futureSeconds + }) + ); + + // verify + (uint256 _delayBlocks, uint256 _futureBlocks, uint256 _delaySeconds, uint256 _futureSeconds) + = ISequencerInbox(SEQ_INBOX).maxTimeVariation(); + require(_delayBlocks == delayBlocks, "DelayBuffer: delayBlocks not set"); + require(_delaySeconds == delaySeconds, "DelayBuffer: delaySeconds not set"); + require(_futureBlocks == futureBlocks, "DelayBuffer: futureBlocks not set"); + require(_futureSeconds == futureSeconds, "DelayBuffer: futureSeconds not set"); + + ISequencerInbox(SEQ_INBOX).updateRollupAddress(); + } + + function perform(address[] memory validators) external { + // tidy up the old rollup - pause it and refund stakes + cleanupOldRollup(); + + // create the config, we do this now so that we compute the expected rollup address + Config memory config = createConfig(); + + // deploy the new challenge manager + IEdgeChallengeManager challengeManager = IEdgeChallengeManager( + address( + new TransparentUpgradeableProxy( + address(IMPL_CHALLENGE_MANAGER), + address(PROXY_ADMIN_BRIDGE), // use the same proxy admin as the bridge + "" + ) + ) + ); + + // now that all the dependent contracts are pointed at the new address we can + // deploy and init the new rollup + ContractDependencies memory connectedContracts = ContractDependencies({ + bridge: IBridge(BRIDGE), + sequencerInbox: ISequencerInbox(SEQ_INBOX), + inbox: IInboxBase(INBOX), + outbox: IOutbox(OUTBOX), + rollupEventInbox: IRollupEventInbox(REI), + challengeManager: challengeManager, + rollupAdminLogic: IMPL_NEW_ROLLUP_ADMIN, + rollupUserLogic: IRollupUser(IMPL_NEW_ROLLUP_USER), + validatorWalletCreator: ROLLUP_READER.validatorWalletCreator() + }); + + // upgrade the surrounding contracts eg bridge, outbox, seq inbox, rollup event inbox + // to set of the new rollup address + bytes32 rollupSalt = keccak256(abi.encode(config)); + address expectedRollupAddress = + Create2Upgradeable.computeAddress(rollupSalt, keccak256(type(RollupProxy).creationCode)); + upgradeSurroundingContracts(expectedRollupAddress); + + challengeManager.initialize({ + _assertionChain: IAssertionChain(expectedRollupAddress), + _challengePeriodBlocks: CHALLENGE_PERIOD_BLOCKS, + _oneStepProofEntry: OSP, + layerZeroBlockEdgeHeight: config.layerZeroBlockEdgeHeight, + layerZeroBigStepEdgeHeight: config.layerZeroBigStepEdgeHeight, + layerZeroSmallStepEdgeHeight: config.layerZeroSmallStepEdgeHeight, + _stakeToken: IERC20(config.stakeToken), + _stakeAmounts: config.miniStakeValues, + _excessStakeReceiver: EXCESS_STAKE_RECEIVER, + _numBigStepLevel: config.numBigStepLevel + }); + + RollupProxy rollup = new RollupProxy{salt: rollupSalt}(); + require(address(rollup) == expectedRollupAddress, "UNEXPCTED_ROLLUP_ADDR"); + + // initialize the rollup with this contract as owner to set batch poster and validators + // it will transfer the ownership back to the actual owner later + address actualOwner = config.owner; + config.owner = address(this); + + rollup.initializeProxy(config, connectedContracts); + + if (validators.length != 0) { + bool[] memory _vals = new bool[](validators.length); + for (uint256 i = 0; i < validators.length; i++) { + require(ROLLUP_READER.isValidator(validators[i]), "UNEXPECTED_NEW_VALIDATOR"); + _vals[i] = true; + } + IRollupAdmin(address(rollup)).setValidator(validators, _vals); + } + if (DISABLE_VALIDATOR_WHITELIST) { + IRollupAdmin(address(rollup)).setValidatorWhitelistDisabled(DISABLE_VALIDATOR_WHITELIST); + } + + // anyTrustFastConfirmer only exists since v2.0.0, but the old rollup can be on an older version + try ROLLUP_READER.anyTrustFastConfirmer() returns (address anyTrustFastConfirmer) { + if (anyTrustFastConfirmer != address(0)) { + IRollupAdmin(address(rollup)).setAnyTrustFastConfirmer(anyTrustFastConfirmer); + } + } catch { + // do nothing if anyTrustFastConfirmer doesnt exist + } + + IRollupAdmin(address(rollup)).setOwner(actualOwner); + + emit RollupMigrated(expectedRollupAddress, address(challengeManager)); + } +} diff --git a/src/gov-action-contracts/AIPs/NomineeGovernorV2UpgradeAction.sol b/src/gov-action-contracts/AIPs/NomineeGovernorV2UpgradeAction.sol index b214f3fe7..2e24beaff 100644 --- a/src/gov-action-contracts/AIPs/NomineeGovernorV2UpgradeAction.sol +++ b/src/gov-action-contracts/AIPs/NomineeGovernorV2UpgradeAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import { ProxyAdmin, diff --git a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/GovernanceChainSCMgmtActivationAction.sol b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/GovernanceChainSCMgmtActivationAction.sol index 956ce437d..3d567cc6e 100644 --- a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/GovernanceChainSCMgmtActivationAction.sol +++ b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/GovernanceChainSCMgmtActivationAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../../security-council-mgmt/interfaces/IGnosisSafe.sol"; import "../../address-registries/L2AddressRegistryInterfaces.sol"; diff --git a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/L1SCMgmtActivationAction.sol b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/L1SCMgmtActivationAction.sol index 602e149cf..519fdd866 100644 --- a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/L1SCMgmtActivationAction.sol +++ b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/L1SCMgmtActivationAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../../security-council-mgmt/interfaces/IGnosisSafe.sol"; import "../../../interfaces/IUpgradeExecutor.sol"; diff --git a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/NonGovernanceChainSCMgmtActivationAction.sol b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/NonGovernanceChainSCMgmtActivationAction.sol index d3c48f057..65c7c68e3 100644 --- a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/NonGovernanceChainSCMgmtActivationAction.sol +++ b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/NonGovernanceChainSCMgmtActivationAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../../security-council-mgmt/interfaces/IGnosisSafe.sol"; import "./SecurityCouncilMgmtUpgradeLib.sol"; diff --git a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/SecurityCouncilMgmtUpgradeLib.sol b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/SecurityCouncilMgmtUpgradeLib.sol index d12c9212e..213507945 100644 --- a/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/SecurityCouncilMgmtUpgradeLib.sol +++ b/src/gov-action-contracts/AIPs/SecurityCouncilMgmt/SecurityCouncilMgmtUpgradeLib.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../../security-council-mgmt/interfaces/IGnosisSafe.sol"; import "../../../interfaces/IUpgradeExecutor.sol"; diff --git a/src/gov-action-contracts/AIPs/SetSeqMaxTimeVariation/AIPSetSequencerInboxMaxTimeVariationArbOneAction.sol b/src/gov-action-contracts/AIPs/SetSeqMaxTimeVariation/AIPSetSequencerInboxMaxTimeVariationArbOneAction.sol index c8682dee7..d0c06104c 100644 --- a/src/gov-action-contracts/AIPs/SetSeqMaxTimeVariation/AIPSetSequencerInboxMaxTimeVariationArbOneAction.sol +++ b/src/gov-action-contracts/AIPs/SetSeqMaxTimeVariation/AIPSetSequencerInboxMaxTimeVariationArbOneAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../address-registries/interfaces.sol"; import "../../sequencer/SetSequencerInboxMaxTimeVariationAction.sol"; diff --git a/src/gov-action-contracts/AIPs/SetSeqMaxTimeVariation/AIPSetSequencerInboxMaxTimeVariationNovaAction.sol b/src/gov-action-contracts/AIPs/SetSeqMaxTimeVariation/AIPSetSequencerInboxMaxTimeVariationNovaAction.sol index 5f0b73154..0b0394112 100644 --- a/src/gov-action-contracts/AIPs/SetSeqMaxTimeVariation/AIPSetSequencerInboxMaxTimeVariationNovaAction.sol +++ b/src/gov-action-contracts/AIPs/SetSeqMaxTimeVariation/AIPSetSequencerInboxMaxTimeVariationNovaAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../address-registries/interfaces.sol"; import "../../sequencer/SetSequencerInboxMaxTimeVariationAction.sol"; diff --git a/src/gov-action-contracts/AtlasFees/ArbOneSetAtlasFeesAction.sol b/src/gov-action-contracts/AtlasFees/ArbOneSetAtlasFeesAction.sol index da2f538dd..d08ab3bc5 100644 --- a/src/gov-action-contracts/AtlasFees/ArbOneSetAtlasFeesAction.sol +++ b/src/gov-action-contracts/AtlasFees/ArbOneSetAtlasFeesAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../arb-precompiles/ArbPrecompilesLib.sol"; import "../util/ActionCanExecute.sol"; diff --git a/src/gov-action-contracts/address-registries/L1AddressRegistry.sol b/src/gov-action-contracts/address-registries/L1AddressRegistry.sol index 053a22a3e..1868e0943 100644 --- a/src/gov-action-contracts/address-registries/L1AddressRegistry.sol +++ b/src/gov-action-contracts/address-registries/L1AddressRegistry.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./interfaces.sol"; diff --git a/src/gov-action-contracts/address-registries/L2AddressRegistry.sol b/src/gov-action-contracts/address-registries/L2AddressRegistry.sol index 87fbc2a86..e4a54d82a 100644 --- a/src/gov-action-contracts/address-registries/L2AddressRegistry.sol +++ b/src/gov-action-contracts/address-registries/L2AddressRegistry.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./L2AddressRegistryInterfaces.sol"; diff --git a/src/gov-action-contracts/address-registries/L2AddressRegistryInterfaces.sol b/src/gov-action-contracts/address-registries/L2AddressRegistryInterfaces.sol index 54dab50f3..55aa4bf4a 100644 --- a/src/gov-action-contracts/address-registries/L2AddressRegistryInterfaces.sol +++ b/src/gov-action-contracts/address-registries/L2AddressRegistryInterfaces.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; import "../../interfaces/IArbitrumTimelock.sol"; diff --git a/src/gov-action-contracts/address-registries/interfaces.sol b/src/gov-action-contracts/address-registries/interfaces.sol index 127e09bf6..9cd6111c8 100644 --- a/src/gov-action-contracts/address-registries/interfaces.sol +++ b/src/gov-action-contracts/address-registries/interfaces.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/bridge/IBridge.sol"; import "@arbitrum/nitro-contracts/src/bridge/IInbox.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/AddChainOwnerAction.sol b/src/gov-action-contracts/arb-precompiles/AddChainOwnerAction.sol index 822e3ad1d..ed73b9926 100644 --- a/src/gov-action-contracts/arb-precompiles/AddChainOwnerAction.sol +++ b/src/gov-action-contracts/arb-precompiles/AddChainOwnerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/ArbPrecompilesLib.sol b/src/gov-action-contracts/arb-precompiles/ArbPrecompilesLib.sol index f7078a05c..253b38f89 100644 --- a/src/gov-action-contracts/arb-precompiles/ArbPrecompilesLib.sol +++ b/src/gov-action-contracts/arb-precompiles/ArbPrecompilesLib.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/precompiles/ArbOwner.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/ReleaseL1PricerSurplusFundsAction.sol b/src/gov-action-contracts/arb-precompiles/ReleaseL1PricerSurplusFundsAction.sol index 12570a482..3f9817757 100644 --- a/src/gov-action-contracts/arb-precompiles/ReleaseL1PricerSurplusFundsAction.sol +++ b/src/gov-action-contracts/arb-precompiles/ReleaseL1PricerSurplusFundsAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/RemoveChainOwnerAction.sol b/src/gov-action-contracts/arb-precompiles/RemoveChainOwnerAction.sol index e8c7ae3c7..e9194252a 100644 --- a/src/gov-action-contracts/arb-precompiles/RemoveChainOwnerAction.sol +++ b/src/gov-action-contracts/arb-precompiles/RemoveChainOwnerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/ScheduleArbOSUpgradeAction.sol b/src/gov-action-contracts/arb-precompiles/ScheduleArbOSUpgradeAction.sol index 4b1c90a54..94234fbe8 100644 --- a/src/gov-action-contracts/arb-precompiles/ScheduleArbOSUpgradeAction.sol +++ b/src/gov-action-contracts/arb-precompiles/ScheduleArbOSUpgradeAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetAmortizedCostCapBipsAction.sol b/src/gov-action-contracts/arb-precompiles/SetAmortizedCostCapBipsAction.sol index 95cf946d2..44f83b910 100644 --- a/src/gov-action-contracts/arb-precompiles/SetAmortizedCostCapBipsAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetAmortizedCostCapBipsAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetInfraFeeAccountAction.sol b/src/gov-action-contracts/arb-precompiles/SetInfraFeeAccountAction.sol index 21fbf9ca5..96b096736 100644 --- a/src/gov-action-contracts/arb-precompiles/SetInfraFeeAccountAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetInfraFeeAccountAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL1BaseFeeEstimateInertiaAction.sol b/src/gov-action-contracts/arb-precompiles/SetL1BaseFeeEstimateInertiaAction.sol index d2c919955..b8ac6fa84 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL1BaseFeeEstimateInertiaAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL1BaseFeeEstimateInertiaAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL1PricePerUnitAction.sol b/src/gov-action-contracts/arb-precompiles/SetL1PricePerUnitAction.sol index 9dc8dd94a..395969695 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL1PricePerUnitAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL1PricePerUnitAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL1PricingEquilibrationUnitsAction.sol b/src/gov-action-contracts/arb-precompiles/SetL1PricingEquilibrationUnitsAction.sol index 6ae304df1..5ac273da1 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL1PricingEquilibrationUnitsAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL1PricingEquilibrationUnitsAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL1PricingInertiaAction.sol b/src/gov-action-contracts/arb-precompiles/SetL1PricingInertiaAction.sol index 5cd0667d7..e3d50f902 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL1PricingInertiaAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL1PricingInertiaAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL1PricingRewardRateAction.sol b/src/gov-action-contracts/arb-precompiles/SetL1PricingRewardRateAction.sol index 04dd2df1b..b48e9c2cb 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL1PricingRewardRateAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL1PricingRewardRateAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL1PricingRewardRecipientAction.sol b/src/gov-action-contracts/arb-precompiles/SetL1PricingRewardRecipientAction.sol index 7b5176641..16bc16322 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL1PricingRewardRecipientAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL1PricingRewardRecipientAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL2BaseFeeAction.sol b/src/gov-action-contracts/arb-precompiles/SetL2BaseFeeAction.sol index 2a5d5801e..0159a2be6 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL2BaseFeeAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL2BaseFeeAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL2GasBacklogToleranceAction.sol b/src/gov-action-contracts/arb-precompiles/SetL2GasBacklogToleranceAction.sol index 97de7cf73..d3fe4db5e 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL2GasBacklogToleranceAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL2GasBacklogToleranceAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetL2GasPricingInertiaAction.sol b/src/gov-action-contracts/arb-precompiles/SetL2GasPricingInertiaAction.sol index 21ea9b7ff..20991113f 100644 --- a/src/gov-action-contracts/arb-precompiles/SetL2GasPricingInertiaAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetL2GasPricingInertiaAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetMaxTxGasLimitAction.sol b/src/gov-action-contracts/arb-precompiles/SetMaxTxGasLimitAction.sol index 99cbf18df..9126087e1 100644 --- a/src/gov-action-contracts/arb-precompiles/SetMaxTxGasLimitAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetMaxTxGasLimitAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetMinimumL2BaseFeeAction.sol b/src/gov-action-contracts/arb-precompiles/SetMinimumL2BaseFeeAction.sol index 339565b63..f25ae94ad 100644 --- a/src/gov-action-contracts/arb-precompiles/SetMinimumL2BaseFeeAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetMinimumL2BaseFeeAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetNetworkFeeAccountAction.sol b/src/gov-action-contracts/arb-precompiles/SetNetworkFeeAccountAction.sol index e97839ec5..77cd02193 100644 --- a/src/gov-action-contracts/arb-precompiles/SetNetworkFeeAccountAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetNetworkFeeAccountAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetPerBatchGasChargeAction.sol b/src/gov-action-contracts/arb-precompiles/SetPerBatchGasChargeAction.sol index a9fb52224..b659d8295 100644 --- a/src/gov-action-contracts/arb-precompiles/SetPerBatchGasChargeAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetPerBatchGasChargeAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-precompiles/SetSpeedLimitAction.sol b/src/gov-action-contracts/arb-precompiles/SetSpeedLimitAction.sol index 0bcc6ad92..071fe68a8 100644 --- a/src/gov-action-contracts/arb-precompiles/SetSpeedLimitAction.sol +++ b/src/gov-action-contracts/arb-precompiles/SetSpeedLimitAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./ArbPrecompilesLib.sol"; diff --git a/src/gov-action-contracts/arb-token/MintArbTokenAction.sol b/src/gov-action-contracts/arb-token/MintArbTokenAction.sol index 32d54c74a..8b0cff4f8 100644 --- a/src/gov-action-contracts/arb-token/MintArbTokenAction.sol +++ b/src/gov-action-contracts/arb-token/MintArbTokenAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; diff --git a/src/gov-action-contracts/arbos-upgrade/SetWasmModuleRootAction.sol b/src/gov-action-contracts/arbos-upgrade/SetWasmModuleRootAction.sol index 5cbf94a16..2fb71cbfd 100644 --- a/src/gov-action-contracts/arbos-upgrade/SetWasmModuleRootAction.sol +++ b/src/gov-action-contracts/arbos-upgrade/SetWasmModuleRootAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L1AddressRegistry.sol"; diff --git a/src/gov-action-contracts/arbos-upgrade/UpgradeArbOSVersionAction.sol b/src/gov-action-contracts/arbos-upgrade/UpgradeArbOSVersionAction.sol index be9a04831..75791d7d2 100644 --- a/src/gov-action-contracts/arbos-upgrade/UpgradeArbOSVersionAction.sol +++ b/src/gov-action-contracts/arbos-upgrade/UpgradeArbOSVersionAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/precompiles/ArbOwner.sol"; diff --git a/src/gov-action-contracts/arbos-upgrade/UpgradeArbOSVersionAtTimestampAction.sol b/src/gov-action-contracts/arbos-upgrade/UpgradeArbOSVersionAtTimestampAction.sol index 8b71a6482..4946931f0 100644 --- a/src/gov-action-contracts/arbos-upgrade/UpgradeArbOSVersionAtTimestampAction.sol +++ b/src/gov-action-contracts/arbos-upgrade/UpgradeArbOSVersionAtTimestampAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/precompiles/ArbOwner.sol"; diff --git a/src/gov-action-contracts/execution-record/ActionExecutionRecord.sol b/src/gov-action-contracts/execution-record/ActionExecutionRecord.sol index 642693219..f3d3d4b71 100644 --- a/src/gov-action-contracts/execution-record/ActionExecutionRecord.sol +++ b/src/gov-action-contracts/execution-record/ActionExecutionRecord.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./KeyValueStore.sol"; diff --git a/src/gov-action-contracts/execution-record/KeyValueStore.sol b/src/gov-action-contracts/execution-record/KeyValueStore.sol index 8dbf7f777..d2231e152 100644 --- a/src/gov-action-contracts/execution-record/KeyValueStore.sol +++ b/src/gov-action-contracts/execution-record/KeyValueStore.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; /// @title A global key value store /// @notice Stores values against a key, combines msg.sender with the provided key to ensure uniqueness diff --git a/src/gov-action-contracts/goerli/ArbGoerliSetInitialGovParamsAction.sol b/src/gov-action-contracts/goerli/ArbGoerliSetInitialGovParamsAction.sol index bc461d0f0..9555c22c4 100644 --- a/src/gov-action-contracts/goerli/ArbGoerliSetInitialGovParamsAction.sol +++ b/src/gov-action-contracts/goerli/ArbGoerliSetInitialGovParamsAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistryInterfaces.sol"; diff --git a/src/gov-action-contracts/goerli/L1SetInitialGovParamsAction.sol b/src/gov-action-contracts/goerli/L1SetInitialGovParamsAction.sol index 89e8c840a..d35e153c5 100644 --- a/src/gov-action-contracts/goerli/L1SetInitialGovParamsAction.sol +++ b/src/gov-action-contracts/goerli/L1SetInitialGovParamsAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "../address-registries/L1AddressRegistry.sol"; diff --git a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-proxy/ProxyUpgradeAction.sol b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-proxy/ProxyUpgradeAction.sol index b94bcf055..e88a045b5 100644 --- a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-proxy/ProxyUpgradeAction.sol +++ b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-proxy/ProxyUpgradeAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; diff --git a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-proxy/ProxyUpgradeAndCallAction.sol b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-proxy/ProxyUpgradeAndCallAction.sol index ad3644e0d..70d25951a 100644 --- a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-proxy/ProxyUpgradeAndCallAction.sol +++ b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-proxy/ProxyUpgradeAndCallAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; diff --git a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeBothAction.sol b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeBothAction.sol index 92b187e6c..909f39579 100644 --- a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeBothAction.sol +++ b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeBothAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol"; import "../../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeBothAndCallAction.sol b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeBothAndCallAction.sol index c25561d3b..4978dbf1f 100644 --- a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeBothAndCallAction.sol +++ b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeBothAndCallAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol"; import "../../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradePrimaryAction.sol b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradePrimaryAction.sol index a663f6aa9..b09925f51 100644 --- a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradePrimaryAction.sol +++ b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradePrimaryAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol"; import "../../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradePrimaryAndCallAction.sol b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradePrimaryAndCallAction.sol index f7f633d2a..b7ef07bcf 100644 --- a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradePrimaryAndCallAction.sol +++ b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradePrimaryAndCallAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol"; import "../../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeSecondaryAction.sol b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeSecondaryAction.sol index 69da7db3c..877aba231 100644 --- a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeSecondaryAction.sol +++ b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeSecondaryAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol"; import "../../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeSecondaryAndCallAction.sol b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeSecondaryAndCallAction.sol index 28f96d3fc..2c13e4ca5 100644 --- a/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeSecondaryAndCallAction.sol +++ b/src/gov-action-contracts/gov-upgrade-contracts/upgrade-rollup/RollupUpgradeSecondaryAndCallAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol"; import "../../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/governance/CancelCoreTimelockOperationAction.sol b/src/gov-action-contracts/governance/CancelCoreTimelockOperationAction.sol index bd7f7070e..9c41dc3c1 100644 --- a/src/gov-action-contracts/governance/CancelCoreTimelockOperationAction.sol +++ b/src/gov-action-contracts/governance/CancelCoreTimelockOperationAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; import "./CancelTimelockOperation.sol"; diff --git a/src/gov-action-contracts/governance/CancelTimelockOperation.sol b/src/gov-action-contracts/governance/CancelTimelockOperation.sol index e6c243f7e..7ae59c087 100644 --- a/src/gov-action-contracts/governance/CancelTimelockOperation.sol +++ b/src/gov-action-contracts/governance/CancelTimelockOperation.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; diff --git a/src/gov-action-contracts/governance/CancelTreasuryGovProposalAction.sol b/src/gov-action-contracts/governance/CancelTreasuryGovProposalAction.sol index 54ea9766b..8d97daf9b 100644 --- a/src/gov-action-contracts/governance/CancelTreasuryGovProposalAction.sol +++ b/src/gov-action-contracts/governance/CancelTreasuryGovProposalAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; import "./CancelTimelockOperation.sol"; diff --git a/src/gov-action-contracts/nonemergency/AddNovaKeysetAction.sol b/src/gov-action-contracts/nonemergency/AddNovaKeysetAction.sol index 37deb93ce..6c03dcd30 100644 --- a/src/gov-action-contracts/nonemergency/AddNovaKeysetAction.sol +++ b/src/gov-action-contracts/nonemergency/AddNovaKeysetAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@arbitrum/nitro-contracts/src/bridge/ISequencerInbox.sol"; diff --git a/src/gov-action-contracts/nonemergency/SwitchManagerRolesAction.sol b/src/gov-action-contracts/nonemergency/SwitchManagerRolesAction.sol index c5dcf0f38..7851b8d4c 100644 --- a/src/gov-action-contracts/nonemergency/SwitchManagerRolesAction.sol +++ b/src/gov-action-contracts/nonemergency/SwitchManagerRolesAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../security-council-mgmt/SecurityCouncilManager.sol"; diff --git a/src/gov-action-contracts/pause-inbox/PauseInboxAction.sol b/src/gov-action-contracts/pause-inbox/PauseInboxAction.sol index 838968354..352123a15 100644 --- a/src/gov-action-contracts/pause-inbox/PauseInboxAction.sol +++ b/src/gov-action-contracts/pause-inbox/PauseInboxAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/pause-inbox/UnpauseInboxAction.sol b/src/gov-action-contracts/pause-inbox/UnpauseInboxAction.sol index 60e2af13c..9444ad54e 100644 --- a/src/gov-action-contracts/pause-inbox/UnpauseInboxAction.sol +++ b/src/gov-action-contracts/pause-inbox/UnpauseInboxAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/rollup/EnableValidatorWhitelistAction.sol b/src/gov-action-contracts/rollup/EnableValidatorWhitelistAction.sol index c1ac3ad93..b2f95434b 100644 --- a/src/gov-action-contracts/rollup/EnableValidatorWhitelistAction.sol +++ b/src/gov-action-contracts/rollup/EnableValidatorWhitelistAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/rollup/ForceResolveChallengeAction.sol b/src/gov-action-contracts/rollup/ForceResolveChallengeAction.sol deleted file mode 100644 index ff490405a..000000000 --- a/src/gov-action-contracts/rollup/ForceResolveChallengeAction.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; - -import "../address-registries/interfaces.sol"; - -contract ForceResolveChallengeAction { - IRollupGetter public immutable addressRegistry; - - constructor(IRollupGetter _addressRegistry) { - addressRegistry = _addressRegistry; - } - - function perform(address[] calldata stakerA, address[] calldata stakerB) external { - IRollupAdmin(address(addressRegistry.rollup())).forceResolveChallenge(stakerA, stakerB); - } -} diff --git a/src/gov-action-contracts/rollup/PauseRollupAction.sol b/src/gov-action-contracts/rollup/PauseRollupAction.sol index afb52c9ab..d04338b23 100644 --- a/src/gov-action-contracts/rollup/PauseRollupAction.sol +++ b/src/gov-action-contracts/rollup/PauseRollupAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/rollup/RemoveValidatorWhitelistAction.sol b/src/gov-action-contracts/rollup/RemoveValidatorWhitelistAction.sol index 43ad32d64..29e73cf85 100644 --- a/src/gov-action-contracts/rollup/RemoveValidatorWhitelistAction.sol +++ b/src/gov-action-contracts/rollup/RemoveValidatorWhitelistAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/rollup/SetValidatorsAction.sol b/src/gov-action-contracts/rollup/SetValidatorsAction.sol index eb5d87478..f2fc2cff1 100644 --- a/src/gov-action-contracts/rollup/SetValidatorsAction.sol +++ b/src/gov-action-contracts/rollup/SetValidatorsAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/rollup/UnpauseRollupAction.sol b/src/gov-action-contracts/rollup/UnpauseRollupAction.sol index bd0a8adab..e4e72fb02 100644 --- a/src/gov-action-contracts/rollup/UnpauseRollupAction.sol +++ b/src/gov-action-contracts/rollup/UnpauseRollupAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/sequencer/AddSequencerAction.sol b/src/gov-action-contracts/sequencer/AddSequencerAction.sol index af1168329..9465d9891 100644 --- a/src/gov-action-contracts/sequencer/AddSequencerAction.sol +++ b/src/gov-action-contracts/sequencer/AddSequencerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./SequencerActionLib.sol"; diff --git a/src/gov-action-contracts/sequencer/RemoveSequencerAction.sol b/src/gov-action-contracts/sequencer/RemoveSequencerAction.sol index 86cafd3c0..13b232fa7 100644 --- a/src/gov-action-contracts/sequencer/RemoveSequencerAction.sol +++ b/src/gov-action-contracts/sequencer/RemoveSequencerAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./SequencerActionLib.sol"; diff --git a/src/gov-action-contracts/sequencer/SequencerActionLib.sol b/src/gov-action-contracts/sequencer/SequencerActionLib.sol index e6fa8e8f8..c419fe205 100644 --- a/src/gov-action-contracts/sequencer/SequencerActionLib.sol +++ b/src/gov-action-contracts/sequencer/SequencerActionLib.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/sequencer/SetSequencerInboxMaxTimeVariationAction.sol b/src/gov-action-contracts/sequencer/SetSequencerInboxMaxTimeVariationAction.sol index 09256d34e..34074bdbd 100644 --- a/src/gov-action-contracts/sequencer/SetSequencerInboxMaxTimeVariationAction.sol +++ b/src/gov-action-contracts/sequencer/SetSequencerInboxMaxTimeVariationAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; diff --git a/src/gov-action-contracts/set-outbox/BridgeAddOutboxesAction.sol b/src/gov-action-contracts/set-outbox/BridgeAddOutboxesAction.sol index 549ea9496..07c307dd2 100644 --- a/src/gov-action-contracts/set-outbox/BridgeAddOutboxesAction.sol +++ b/src/gov-action-contracts/set-outbox/BridgeAddOutboxesAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./OutboxActionLib.sol"; diff --git a/src/gov-action-contracts/set-outbox/BridgeRemoveAllOutboxesAction.sol b/src/gov-action-contracts/set-outbox/BridgeRemoveAllOutboxesAction.sol index db25da799..a6a0a123d 100644 --- a/src/gov-action-contracts/set-outbox/BridgeRemoveAllOutboxesAction.sol +++ b/src/gov-action-contracts/set-outbox/BridgeRemoveAllOutboxesAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./OutboxActionLib.sol"; diff --git a/src/gov-action-contracts/set-outbox/BridgeRemoveOutboxesAction.sol b/src/gov-action-contracts/set-outbox/BridgeRemoveOutboxesAction.sol index ac569cd2c..4cfa446c9 100644 --- a/src/gov-action-contracts/set-outbox/BridgeRemoveOutboxesAction.sol +++ b/src/gov-action-contracts/set-outbox/BridgeRemoveOutboxesAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./OutboxActionLib.sol"; diff --git a/src/gov-action-contracts/set-outbox/OutboxActionLib.sol b/src/gov-action-contracts/set-outbox/OutboxActionLib.sol index 4fcb68066..f782cd42b 100644 --- a/src/gov-action-contracts/set-outbox/OutboxActionLib.sol +++ b/src/gov-action-contracts/set-outbox/OutboxActionLib.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "@openzeppelin/contracts/utils/Address.sol"; diff --git a/src/gov-action-contracts/set-outbox/RollupSetOutboxAction.sol b/src/gov-action-contracts/set-outbox/RollupSetOutboxAction.sol index 240d7358b..ea65c6739 100644 --- a/src/gov-action-contracts/set-outbox/RollupSetOutboxAction.sol +++ b/src/gov-action-contracts/set-outbox/RollupSetOutboxAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./OutboxActionLib.sol"; diff --git a/src/gov-action-contracts/token-bridge/RegisterAndSetArbCustomGatewayAction.sol b/src/gov-action-contracts/token-bridge/RegisterAndSetArbCustomGatewayAction.sol index d3b74769f..f38af1464 100644 --- a/src/gov-action-contracts/token-bridge/RegisterAndSetArbCustomGatewayAction.sol +++ b/src/gov-action-contracts/token-bridge/RegisterAndSetArbCustomGatewayAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./TokenBridgeActionLib.sol"; diff --git a/src/gov-action-contracts/token-bridge/RegisterL2TokenInArbCustomGatewayAction.sol b/src/gov-action-contracts/token-bridge/RegisterL2TokenInArbCustomGatewayAction.sol index 4222858d2..27236ddc7 100644 --- a/src/gov-action-contracts/token-bridge/RegisterL2TokenInArbCustomGatewayAction.sol +++ b/src/gov-action-contracts/token-bridge/RegisterL2TokenInArbCustomGatewayAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./TokenBridgeActionLib.sol"; diff --git a/src/gov-action-contracts/token-bridge/SetGatewayAction.sol b/src/gov-action-contracts/token-bridge/SetGatewayAction.sol index 6803770e4..98f521b7f 100644 --- a/src/gov-action-contracts/token-bridge/SetGatewayAction.sol +++ b/src/gov-action-contracts/token-bridge/SetGatewayAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/interfaces.sol"; import "./TokenBridgeActionLib.sol"; diff --git a/src/gov-action-contracts/token-bridge/TokenBridgeActionLib.sol b/src/gov-action-contracts/token-bridge/TokenBridgeActionLib.sol index 1676ad3ba..36d01e1b8 100644 --- a/src/gov-action-contracts/token-bridge/TokenBridgeActionLib.sol +++ b/src/gov-action-contracts/token-bridge/TokenBridgeActionLib.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/utils/Address.sol"; diff --git a/src/gov-action-contracts/treasury/TransferArbFromTreasuryAction.sol b/src/gov-action-contracts/treasury/TransferArbFromTreasuryAction.sol index adea9d692..e5d1d2139 100644 --- a/src/gov-action-contracts/treasury/TransferArbFromTreasuryAction.sol +++ b/src/gov-action-contracts/treasury/TransferArbFromTreasuryAction.sol @@ -1,4 +1,4 @@ -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; import "./TransferERC20FromTreasury.sol"; diff --git a/src/gov-action-contracts/treasury/TransferArbFromTreasurySimpleAction.sol b/src/gov-action-contracts/treasury/TransferArbFromTreasurySimpleAction.sol index 68c9df5d7..5411177fa 100644 --- a/src/gov-action-contracts/treasury/TransferArbFromTreasurySimpleAction.sol +++ b/src/gov-action-contracts/treasury/TransferArbFromTreasurySimpleAction.sol @@ -1,4 +1,4 @@ -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; import "./TransferERC20FromTreasury.sol"; diff --git a/src/gov-action-contracts/treasury/TransferERC20FromTreasury.sol b/src/gov-action-contracts/treasury/TransferERC20FromTreasury.sol index 254104639..368c764ea 100644 --- a/src/gov-action-contracts/treasury/TransferERC20FromTreasury.sol +++ b/src/gov-action-contracts/treasury/TransferERC20FromTreasury.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../address-registries/L2AddressRegistry.sol"; import "@openzeppelin/contracts/utils/Address.sol"; diff --git a/src/gov-action-contracts/util/ActionCanExecute.sol b/src/gov-action-contracts/util/ActionCanExecute.sol index c8e19c9c7..e6781596c 100644 --- a/src/gov-action-contracts/util/ActionCanExecute.sol +++ b/src/gov-action-contracts/util/ActionCanExecute.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; contract ActionCanExecute { bool public canExecute; diff --git a/src/gov-action-contracts/util/OfficeHoursAction.sol b/src/gov-action-contracts/util/OfficeHoursAction.sol index d2f74fda6..fddaf61e5 100644 --- a/src/gov-action-contracts/util/OfficeHoursAction.sol +++ b/src/gov-action-contracts/util/OfficeHoursAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; /// @notice Action that requires the current time to be within office hours. Should be included as an L1 action in proposal data. contract OfficeHoursAction { diff --git a/src/hardhatTest/TestUpgrade.sol b/src/hardhatTest/TestUpgrade.sol index 31d5a6945..c40bdc0d2 100644 --- a/src/hardhatTest/TestUpgrade.sol +++ b/src/hardhatTest/TestUpgrade.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; diff --git a/src/interfaces/IArbitrumDAOConstitution.sol b/src/interfaces/IArbitrumDAOConstitution.sol index 21f03d495..7665a2680 100644 --- a/src/interfaces/IArbitrumDAOConstitution.sol +++ b/src/interfaces/IArbitrumDAOConstitution.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; interface IArbitrumDAOConstitution { function constitutionHash() external view returns (bytes32); diff --git a/src/interfaces/IArbitrumTimelock.sol b/src/interfaces/IArbitrumTimelock.sol index 89e4409ea..f2ee061ae 100644 --- a/src/interfaces/IArbitrumTimelock.sol +++ b/src/interfaces/IArbitrumTimelock.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; interface IArbitrumTimelock { function cancel(bytes32 id) external; diff --git a/src/interfaces/ICoreTimelock.sol b/src/interfaces/ICoreTimelock.sol index 492c61ba3..e422d11c6 100644 --- a/src/interfaces/ICoreTimelock.sol +++ b/src/interfaces/ICoreTimelock.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./IArbitrumTimelock.sol"; import "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol"; diff --git a/src/interfaces/IFixedDelegateErc20Wallet.sol b/src/interfaces/IFixedDelegateErc20Wallet.sol index a6b88af86..d4fcd579c 100644 --- a/src/interfaces/IFixedDelegateErc20Wallet.sol +++ b/src/interfaces/IFixedDelegateErc20Wallet.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; interface IFixedDelegateErc20Wallet { function transfer(address _token, address _to, uint256 _amount) external returns (bool); diff --git a/src/interfaces/IL2ArbitrumGovernor.sol b/src/interfaces/IL2ArbitrumGovernor.sol index 75cdf7219..efac65dd3 100644 --- a/src/interfaces/IL2ArbitrumGovernor.sol +++ b/src/interfaces/IL2ArbitrumGovernor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./IL2ArbitrumToken.sol"; diff --git a/src/interfaces/IL2ArbitrumToken.sol b/src/interfaces/IL2ArbitrumToken.sol index c685c1f9b..a1858453c 100644 --- a/src/interfaces/IL2ArbitrumToken.sol +++ b/src/interfaces/IL2ArbitrumToken.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; import "@openzeppelin/contracts-upgradeable/governance/utils/IVotesUpgradeable.sol"; diff --git a/src/interfaces/IUpgradeExecutor.sol b/src/interfaces/IUpgradeExecutor.sol index e9f02416a..8076bdca3 100644 --- a/src/interfaces/IUpgradeExecutor.sol +++ b/src/interfaces/IUpgradeExecutor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol"; diff --git a/src/security-council-mgmt/Common.sol b/src/security-council-mgmt/Common.sol index 1433d7543..46034c623 100644 --- a/src/security-council-mgmt/Common.sol +++ b/src/security-council-mgmt/Common.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; /// @notice Security council members are members of one of two cohorts. /// Periodically all the positions on a cohort are put up for election, diff --git a/src/security-council-mgmt/SecurityCouncilManager.sol b/src/security-council-mgmt/SecurityCouncilManager.sol index fb03bf742..63b1d8ede 100644 --- a/src/security-council-mgmt/SecurityCouncilManager.sol +++ b/src/security-council-mgmt/SecurityCouncilManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../ArbitrumTimelock.sol"; import "../UpgradeExecutor.sol"; diff --git a/src/security-council-mgmt/SecurityCouncilMemberSyncAction.sol b/src/security-council-mgmt/SecurityCouncilMemberSyncAction.sol index f67be7f3d..cfa7b301d 100644 --- a/src/security-council-mgmt/SecurityCouncilMemberSyncAction.sol +++ b/src/security-council-mgmt/SecurityCouncilMemberSyncAction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "./interfaces/IGnosisSafe.sol"; import "./SecurityCouncilMgmtUtils.sol"; diff --git a/src/security-council-mgmt/SecurityCouncilMgmtUtils.sol b/src/security-council-mgmt/SecurityCouncilMgmtUtils.sol index aa1e6a6ac..30226e81d 100644 --- a/src/security-council-mgmt/SecurityCouncilMgmtUtils.sol +++ b/src/security-council-mgmt/SecurityCouncilMgmtUtils.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; library SecurityCouncilMgmtUtils { function isInArray(address addr, address[] memory arr) internal pure returns (bool) { diff --git a/src/security-council-mgmt/factories/L2SecurityCouncilMgmtFactory.sol b/src/security-council-mgmt/factories/L2SecurityCouncilMgmtFactory.sol index 026158f0c..f398e9773 100644 --- a/src/security-council-mgmt/factories/L2SecurityCouncilMgmtFactory.sol +++ b/src/security-council-mgmt/factories/L2SecurityCouncilMgmtFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/Address.sol"; diff --git a/src/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.sol b/src/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.sol index 768792d3c..6f07323c9 100644 --- a/src/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.sol +++ b/src/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorVotesUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorSettingsUpgradeable.sol"; diff --git a/src/security-council-mgmt/governors/SecurityCouncilMemberRemovalGovernor.sol b/src/security-council-mgmt/governors/SecurityCouncilMemberRemovalGovernor.sol index 3c14d7445..10203b628 100644 --- a/src/security-council-mgmt/governors/SecurityCouncilMemberRemovalGovernor.sol +++ b/src/security-council-mgmt/governors/SecurityCouncilMemberRemovalGovernor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol"; diff --git a/src/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.sol b/src/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.sol index e1eba1a96..3b593a5ae 100644 --- a/src/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.sol +++ b/src/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorSettingsUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/src/security-council-mgmt/governors/modules/ArbitrumGovernorProposalExpirationUpgradeable.sol b/src/security-council-mgmt/governors/modules/ArbitrumGovernorProposalExpirationUpgradeable.sol index 095ee7b8b..bc7af7d6d 100644 --- a/src/security-council-mgmt/governors/modules/ArbitrumGovernorProposalExpirationUpgradeable.sol +++ b/src/security-council-mgmt/governors/modules/ArbitrumGovernorProposalExpirationUpgradeable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol"; diff --git a/src/security-council-mgmt/governors/modules/ArbitrumGovernorVotesQuorumFractionUpgradeable.sol b/src/security-council-mgmt/governors/modules/ArbitrumGovernorVotesQuorumFractionUpgradeable.sol index 70c095987..8c7185af7 100644 --- a/src/security-council-mgmt/governors/modules/ArbitrumGovernorVotesQuorumFractionUpgradeable.sol +++ b/src/security-council-mgmt/governors/modules/ArbitrumGovernorVotesQuorumFractionUpgradeable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol"; diff --git a/src/security-council-mgmt/governors/modules/ElectionGovernor.sol b/src/security-council-mgmt/governors/modules/ElectionGovernor.sol index 291ee2228..5a3100d7d 100644 --- a/src/security-council-mgmt/governors/modules/ElectionGovernor.sol +++ b/src/security-council-mgmt/governors/modules/ElectionGovernor.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol"; diff --git a/src/security-council-mgmt/governors/modules/SecurityCouncilMemberElectionGovernorCountingUpgradeable.sol b/src/security-council-mgmt/governors/modules/SecurityCouncilMemberElectionGovernorCountingUpgradeable.sol index 219a9dcd9..5caabb293 100644 --- a/src/security-council-mgmt/governors/modules/SecurityCouncilMemberElectionGovernorCountingUpgradeable.sol +++ b/src/security-council-mgmt/governors/modules/SecurityCouncilMemberElectionGovernorCountingUpgradeable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol"; diff --git a/src/security-council-mgmt/governors/modules/SecurityCouncilNomineeElectionGovernorCountingUpgradeable.sol b/src/security-council-mgmt/governors/modules/SecurityCouncilNomineeElectionGovernorCountingUpgradeable.sol index 25a568f7f..841732e4f 100644 --- a/src/security-council-mgmt/governors/modules/SecurityCouncilNomineeElectionGovernorCountingUpgradeable.sol +++ b/src/security-council-mgmt/governors/modules/SecurityCouncilNomineeElectionGovernorCountingUpgradeable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol"; diff --git a/src/security-council-mgmt/governors/modules/SecurityCouncilNomineeElectionGovernorTiming.sol b/src/security-council-mgmt/governors/modules/SecurityCouncilNomineeElectionGovernorTiming.sol index c8fd05662..09a650b95 100644 --- a/src/security-council-mgmt/governors/modules/SecurityCouncilNomineeElectionGovernorTiming.sol +++ b/src/security-council-mgmt/governors/modules/SecurityCouncilNomineeElectionGovernorTiming.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../interfaces/ISecurityCouncilManager.sol"; diff --git a/src/security-council-mgmt/interfaces/IGnosisSafe.sol b/src/security-council-mgmt/interfaces/IGnosisSafe.sol index b85cc5bb9..9414c61dc 100644 --- a/src/security-council-mgmt/interfaces/IGnosisSafe.sol +++ b/src/security-council-mgmt/interfaces/IGnosisSafe.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; abstract contract OpEnum { enum Operation { diff --git a/src/security-council-mgmt/interfaces/ISecurityCouncilManager.sol b/src/security-council-mgmt/interfaces/ISecurityCouncilManager.sol index 076eadfa8..c663d2dfd 100644 --- a/src/security-council-mgmt/interfaces/ISecurityCouncilManager.sol +++ b/src/security-council-mgmt/interfaces/ISecurityCouncilManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../UpgradeExecRouteBuilder.sol"; import "../Common.sol"; diff --git a/src/security-council-mgmt/interfaces/ISecurityCouncilMemberElectionGovernor.sol b/src/security-council-mgmt/interfaces/ISecurityCouncilMemberElectionGovernor.sol index c52959502..b8e6c77ab 100644 --- a/src/security-council-mgmt/interfaces/ISecurityCouncilMemberElectionGovernor.sol +++ b/src/security-council-mgmt/interfaces/ISecurityCouncilMemberElectionGovernor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; interface ISecurityCouncilMemberElectionGovernor { /// @notice Creates a new member election proposal from the most recent nominee election. diff --git a/src/security-council-mgmt/interfaces/ISecurityCouncilNomineeElectionGovernor.sol b/src/security-council-mgmt/interfaces/ISecurityCouncilNomineeElectionGovernor.sol index aadaf74ad..5b5aa0c69 100644 --- a/src/security-council-mgmt/interfaces/ISecurityCouncilNomineeElectionGovernor.sol +++ b/src/security-council-mgmt/interfaces/ISecurityCouncilNomineeElectionGovernor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; /// @notice Minimal interface of nominee election governor required by other contracts interface ISecurityCouncilNomineeElectionGovernor { diff --git a/test/ArbitrumDAOConstitution.t.sol b/test/ArbitrumDAOConstitution.t.sol index 41fdaee13..11f554dfc 100644 --- a/test/ArbitrumDAOConstitution.t.sol +++ b/test/ArbitrumDAOConstitution.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/ArbitrumDAOConstitution.sol"; diff --git a/test/ArbitrumFoundationVestingWallet.t.sol b/test/ArbitrumFoundationVestingWallet.t.sol index aff4ca0a3..2db114753 100644 --- a/test/ArbitrumFoundationVestingWallet.t.sol +++ b/test/ArbitrumFoundationVestingWallet.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/ArbitrumFoundationVestingWallet.sol"; import "../src/L2ArbitrumToken.sol"; diff --git a/test/ArbitrumVestingWallet.t.sol b/test/ArbitrumVestingWallet.t.sol index b48f4d6a6..abb6a5948 100644 --- a/test/ArbitrumVestingWallet.t.sol +++ b/test/ArbitrumVestingWallet.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/ArbitrumVestingWallet.sol"; import "../src/L2ArbitrumToken.sol"; diff --git a/test/ArbitrumVestingWalletFactory.t.sol b/test/ArbitrumVestingWalletFactory.t.sol index 63ae9bb7a..a950d79b3 100644 --- a/test/ArbitrumVestingWalletFactory.t.sol +++ b/test/ArbitrumVestingWalletFactory.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/ArbitrumVestingWalletFactory.sol"; diff --git a/test/FixedDelegateErc20Wallet.t.sol b/test/FixedDelegateErc20Wallet.t.sol index a6c1e0391..33567752b 100644 --- a/test/FixedDelegateErc20Wallet.t.sol +++ b/test/FixedDelegateErc20Wallet.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/FixedDelegateErc20Wallet.sol"; import "./util/TestUtil.sol"; diff --git a/test/L1ArbitrumTimelock.t.sol b/test/L1ArbitrumTimelock.t.sol index b7ffc1a05..6466b6821 100644 --- a/test/L1ArbitrumTimelock.t.sol +++ b/test/L1ArbitrumTimelock.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/L1ArbitrumTimelock.sol"; import "./util/TestUtil.sol"; diff --git a/test/L1ArbitrumToken.t.sol b/test/L1ArbitrumToken.t.sol index d863ab3f8..d4277a0e3 100644 --- a/test/L1ArbitrumToken.t.sol +++ b/test/L1ArbitrumToken.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/L1ArbitrumToken.sol"; import "./util/TestUtil.sol"; diff --git a/test/L1GovernanceFactory.t.sol b/test/L1GovernanceFactory.t.sol index 6ab5413fd..2f24e4d48 100644 --- a/test/L1GovernanceFactory.t.sol +++ b/test/L1GovernanceFactory.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/L1GovernanceFactory.sol"; import "./util/InboxMock.sol"; diff --git a/test/L2ArbitrumGovernor.t.sol b/test/L2ArbitrumGovernor.t.sol index 1318f761c..fc87b5d95 100644 --- a/test/L2ArbitrumGovernor.t.sol +++ b/test/L2ArbitrumGovernor.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/L2ArbitrumGovernor.sol"; import "../src/ArbitrumTimelock.sol"; diff --git a/test/L2ArbitrumToken.t.sol b/test/L2ArbitrumToken.t.sol index 89f0c9653..6ebb34c99 100644 --- a/test/L2ArbitrumToken.t.sol +++ b/test/L2ArbitrumToken.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; diff --git a/test/L2GovernanceFactory.t.sol b/test/L2GovernanceFactory.t.sol index 13ad94051..fe52cdb59 100644 --- a/test/L2GovernanceFactory.t.sol +++ b/test/L2GovernanceFactory.t.sol @@ -1,5 +1,5 @@ // // SPDX-License-Identifier: Apache-2.0 -// pragma solidity 0.8.16; +// pragma solidity 0.8.17; import "../src/L2GovernanceFactory.sol"; import "../src/L2ArbitrumGovernor.sol"; diff --git a/test/TokenDistributor.t.sol b/test/TokenDistributor.t.sol index e215101b2..3c3ff94c3 100644 --- a/test/TokenDistributor.t.sol +++ b/test/TokenDistributor.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; diff --git a/test/UpgradeExecRouteBuilder.t.sol b/test/UpgradeExecRouteBuilder.t.sol index fb13667f3..00f40b7fc 100644 --- a/test/UpgradeExecRouteBuilder.t.sol +++ b/test/UpgradeExecRouteBuilder.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/UpgradeExecRouteBuilder.sol"; import "@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol"; diff --git a/test/UpgradeExecutor.t.sol b/test/UpgradeExecutor.t.sol index f27e8047c..d44307fc3 100644 --- a/test/UpgradeExecutor.t.sol +++ b/test/UpgradeExecutor.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../src/UpgradeExecutor.sol"; import "./util/TestUtil.sol"; diff --git a/test/gov-actions/AIP1Point2Action.t.sol b/test/gov-actions/AIP1Point2Action.t.sol index 47f0e5c9c..de4e95888 100644 --- a/test/gov-actions/AIP1Point2Action.t.sol +++ b/test/gov-actions/AIP1Point2Action.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/AIPNovaFeeRoutingAction.t.sol b/test/gov-actions/AIPNovaFeeRoutingAction.t.sol index 93b79753d..4aaf42800 100644 --- a/test/gov-actions/AIPNovaFeeRoutingAction.t.sol +++ b/test/gov-actions/AIPNovaFeeRoutingAction.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; // this test is meant to be run with a nova fork url diff --git a/test/gov-actions/InboxActions.t.sol b/test/gov-actions/InboxActions.t.sol index 69f998cdd..164a3f8de 100644 --- a/test/gov-actions/InboxActions.t.sol +++ b/test/gov-actions/InboxActions.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/L1AddressRegistry.t.sol b/test/gov-actions/L1AddressRegistry.t.sol index 2d350f355..b661541f6 100644 --- a/test/gov-actions/L1AddressRegistry.t.sol +++ b/test/gov-actions/L1AddressRegistry.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/L2AddressRegistry.t.sol b/test/gov-actions/L2AddressRegistry.t.sol index 6f91b3113..4ff7a723d 100644 --- a/test/gov-actions/L2AddressRegistry.t.sol +++ b/test/gov-actions/L2AddressRegistry.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/NomineeGovernorV2UpgradeAction.t.sol b/test/gov-actions/NomineeGovernorV2UpgradeAction.t.sol index d4e5fdf34..a39f88312 100644 --- a/test/gov-actions/NomineeGovernorV2UpgradeAction.t.sol +++ b/test/gov-actions/NomineeGovernorV2UpgradeAction.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/OutboxActions.t.sol b/test/gov-actions/OutboxActions.t.sol index ac9c0793f..b648cc264 100644 --- a/test/gov-actions/OutboxActions.t.sol +++ b/test/gov-actions/OutboxActions.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/ProxyAdminUpgrader.t.sol b/test/gov-actions/ProxyAdminUpgrader.t.sol index 39b3f4244..4537f1b6f 100644 --- a/test/gov-actions/ProxyAdminUpgrader.t.sol +++ b/test/gov-actions/ProxyAdminUpgrader.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "../util/TestUtil.sol"; diff --git a/test/gov-actions/SequencerInboxActions.t.sol b/test/gov-actions/SequencerInboxActions.t.sol index 83f239d3c..a2fe9a11b 100644 --- a/test/gov-actions/SequencerInboxActions.t.sol +++ b/test/gov-actions/SequencerInboxActions.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/SetSequencerInboxMaxTimeVariationAction.t.sol b/test/gov-actions/SetSequencerInboxMaxTimeVariationAction.t.sol index e92bf524b..97a5bd29b 100644 --- a/test/gov-actions/SetSequencerInboxMaxTimeVariationAction.t.sol +++ b/test/gov-actions/SetSequencerInboxMaxTimeVariationAction.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/SwitchManagerRolesAction.t.sol b/test/gov-actions/SwitchManagerRolesAction.t.sol index d36021385..e8bd2f423 100644 --- a/test/gov-actions/SwitchManagerRolesAction.t.sol +++ b/test/gov-actions/SwitchManagerRolesAction.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/goerli/SetInitialGovParamsActionTest.t.sol b/test/gov-actions/goerli/SetInitialGovParamsActionTest.t.sol index 979601f19..45702a404 100644 --- a/test/gov-actions/goerli/SetInitialGovParamsActionTest.t.sol +++ b/test/gov-actions/goerli/SetInitialGovParamsActionTest.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/gov-actions/util/OfficeHoursAction.t.sol b/test/gov-actions/util/OfficeHoursAction.t.sol index dc77ab327..b62dfb42b 100644 --- a/test/gov-actions/util/OfficeHoursAction.t.sol +++ b/test/gov-actions/util/OfficeHoursAction.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "../../../src/gov-action-contracts/util/OfficeHoursAction.sol"; diff --git a/test/security-council-mgmt/E2E.t.sol b/test/security-council-mgmt/E2E.t.sol index d53809430..a1e2473af 100644 --- a/test/security-council-mgmt/E2E.t.sol +++ b/test/security-council-mgmt/E2E.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; diff --git a/test/security-council-mgmt/L2SecurityCouncilMgmtFactory.t.sol b/test/security-council-mgmt/L2SecurityCouncilMgmtFactory.t.sol index 9aa26e803..2ce1af8b1 100644 --- a/test/security-council-mgmt/L2SecurityCouncilMgmtFactory.t.sol +++ b/test/security-council-mgmt/L2SecurityCouncilMgmtFactory.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "../util/TestUtil.sol"; diff --git a/test/security-council-mgmt/SecurityCouncilManager.t.sol b/test/security-council-mgmt/SecurityCouncilManager.t.sol index c68be6ce6..5ec13e3d1 100644 --- a/test/security-council-mgmt/SecurityCouncilManager.t.sol +++ b/test/security-council-mgmt/SecurityCouncilManager.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "../../src/security-council-mgmt/SecurityCouncilManager.sol"; diff --git a/test/security-council-mgmt/SecurityCouncilMemberRemovalGovernor.t.sol b/test/security-council-mgmt/SecurityCouncilMemberRemovalGovernor.t.sol index 54e234c67..f17cd9546 100644 --- a/test/security-council-mgmt/SecurityCouncilMemberRemovalGovernor.t.sol +++ b/test/security-council-mgmt/SecurityCouncilMemberRemovalGovernor.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "../../src/security-council-mgmt/governors/SecurityCouncilMemberRemovalGovernor.sol"; diff --git a/test/security-council-mgmt/SecurityCouncilMemberSyncAction.t.sol b/test/security-council-mgmt/SecurityCouncilMemberSyncAction.t.sol index 1f9414743..324c79d8d 100644 --- a/test/security-council-mgmt/SecurityCouncilMemberSyncAction.t.sol +++ b/test/security-council-mgmt/SecurityCouncilMemberSyncAction.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@gnosis.pm/safe-contracts/contracts/GnosisSafeL2.sol"; import "../util/TestUtil.sol"; diff --git a/test/security-council-mgmt/SecurityCouncilMgmtUtils.t.sol b/test/security-council-mgmt/SecurityCouncilMgmtUtils.t.sol index fbfbd24d4..eccb6c55f 100644 --- a/test/security-council-mgmt/SecurityCouncilMgmtUtils.t.sol +++ b/test/security-council-mgmt/SecurityCouncilMgmtUtils.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "../../src/security-council-mgmt/SecurityCouncilMgmtUtils.sol"; diff --git a/test/security-council-mgmt/SecurityCouncilUpgradeAction.t.sol b/test/security-council-mgmt/SecurityCouncilUpgradeAction.t.sol index aa67cd967..d27e3b94e 100644 --- a/test/security-council-mgmt/SecurityCouncilUpgradeAction.t.sol +++ b/test/security-council-mgmt/SecurityCouncilUpgradeAction.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@gnosis.pm/safe-contracts/contracts/GnosisSafeL2.sol"; import "../util/TestUtil.sol"; diff --git a/test/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.t.sol b/test/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.t.sol index eadef41e0..2d6c615e2 100644 --- a/test/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.t.sol +++ b/test/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; diff --git a/test/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.t.sol b/test/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.t.sol index a67dfd2df..6b128a894 100644 --- a/test/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.t.sol +++ b/test/security-council-mgmt/governors/SecurityCouncilNomineeElectionGovernor.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; diff --git a/test/security-council-mgmt/governors/TopNomineesGas.t.sol b/test/security-council-mgmt/governors/TopNomineesGas.t.sol index 207792f4d..8cfac8723 100644 --- a/test/security-council-mgmt/governors/TopNomineesGas.t.sol +++ b/test/security-council-mgmt/governors/TopNomineesGas.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "../../../src/security-council-mgmt/governors/SecurityCouncilMemberElectionGovernor.sol"; diff --git a/test/util/ActionTestBase.sol b/test/util/ActionTestBase.sol index d82c7aa8e..7e6d81d45 100644 --- a/test/util/ActionTestBase.sol +++ b/test/util/ActionTestBase.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "forge-std/Test.sol"; import "@arbitrum/nitro-contracts/src/bridge/Bridge.sol"; @@ -73,8 +73,8 @@ abstract contract ActionTestBase { rollup.transferOwnership(address(ue)); bridge = Bridge(TestUtil.deployProxy(address(new Bridge()))); bridge.initialize(IOwnable(address(rollup))); - si = SequencerInbox(TestUtil.deployProxy(address(new SequencerInbox(117964)))); - si.initialize(bridge, ISequencerInbox.MaxTimeVariation(0, 0, 0, 0)); + si = SequencerInbox(TestUtil.deployProxy(address(new SequencerInbox(117964, IReader4844(address(1337)), false, false)))); + si.initialize(bridge, ISequencerInbox.MaxTimeVariation(0, 0, 0, 0), BufferConfig(0, 0, 0)); inbox = Inbox(TestUtil.deployProxy(address(new Inbox(117964)))); inbox.initialize(bridge, si); diff --git a/test/util/DeployGnosisWithModule.sol b/test/util/DeployGnosisWithModule.sol index efa75b35a..776a07b65 100644 --- a/test/util/DeployGnosisWithModule.sol +++ b/test/util/DeployGnosisWithModule.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@gnosis.pm/safe-contracts/contracts/GnosisSafeL2.sol"; import "@gnosis.pm/safe-contracts/contracts/proxies/GnosisSafeProxyFactory.sol"; diff --git a/test/util/InboxMock.sol b/test/util/InboxMock.sol index b30349aa8..f3c07ed4f 100644 --- a/test/util/InboxMock.sol +++ b/test/util/InboxMock.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../src/L1ArbitrumTimelock.sol"; diff --git a/test/util/MockArbSys.sol b/test/util/MockArbSys.sol index fb0737124..e89f1d8c8 100644 --- a/test/util/MockArbSys.sol +++ b/test/util/MockArbSys.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; contract ArbSysMock { event ArbSysL2ToL1Tx(address from, address to, uint256 value, bytes indexed data); diff --git a/test/util/MockTransferAndCallReceiver.sol b/test/util/MockTransferAndCallReceiver.sol index ddf236a1f..350d3612b 100644 --- a/test/util/MockTransferAndCallReceiver.sol +++ b/test/util/MockTransferAndCallReceiver.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "../../src/TransferAndCallToken.sol"; diff --git a/test/util/Reverter.sol b/test/util/Reverter.sol index 2841717dc..aa7383a1c 100644 --- a/test/util/Reverter.sol +++ b/test/util/Reverter.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; contract Reverter { fallback() external payable { diff --git a/test/util/TestUtil.sol b/test/util/TestUtil.sol index e63aa15c4..3f6ae4188 100644 --- a/test/util/TestUtil.sol +++ b/test/util/TestUtil.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.16; +pragma solidity 0.8.17; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; diff --git a/yarn.lock b/yarn.lock index d4ee3322d..98fd7bed4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,16 @@ # yarn lockfile v1 -"@arbitrum/nitro-contracts@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@arbitrum/nitro-contracts/-/nitro-contracts-1.1.1.tgz#2d8a2f9ab757bb7654562aebe435bff833c4b98d" - integrity sha512-4Tyk3XVHz+bm8UujUC78LYSw3xAxyYvBCxfEX4z3qE4/ww7Qck/rmce5gbHMzQjArEAzAP2YSfYIFuIFuRXtfg== +"@arbitrum/nitro-contracts@3.0.0-alpha.2": + version "3.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@arbitrum/nitro-contracts/-/nitro-contracts-3.0.0-alpha.2.tgz#6ee08f831bedec64c17d3660a6a40984e6245bd6" + integrity sha512-inRxblOmlq0G+KpnOD5HFzUuZHg0+GvmSFOcxSevsXzwWcqm9R0eAbTkZdOLcVaUPigKgPwVBVOzpCD9SgwdXA== dependencies: "@offchainlabs/upgrade-executor" "1.1.0-beta.0" - "@openzeppelin/contracts" "4.5.0" - "@openzeppelin/contracts-upgradeable" "4.5.2" + "@openzeppelin/contracts" "4.7.3" + "@openzeppelin/contracts-upgradeable" "4.7.3" patch-package "^6.4.7" + solady "0.0.182" "@arbitrum/nitro-contracts@^1.0.0-beta.8": version "1.0.0-beta.8" @@ -5823,6 +5824,11 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +solady@0.0.182: + version "0.0.182" + resolved "https://registry.yarnpkg.com/solady/-/solady-0.0.182.tgz#bd8c47f128a3a752358ad052782773966d74c400" + integrity sha512-FW6xo1akJoYpkXMzu58/56FcNU3HYYNamEbnFO3iSibXk0nSHo0DV2Gu/zI3FPg3So5CCX6IYli1TT1IWATnvg== + solc@0.7.3: version "0.7.3" resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz"