From de36ba60cb119b5b9420b235bf0f78d5b857eda7 Mon Sep 17 00:00:00 2001 From: Hex <165055168+hexshire@users.noreply.github.com> Date: Tue, 6 May 2025 14:20:01 -0300 Subject: [PATCH] chore: descope interop bridges --- packages/contracts-bedrock/scripts/L2Genesis.s.sol | 3 --- packages/contracts-bedrock/scripts/L2Genesis2.s.sol | 3 --- packages/contracts-bedrock/src/libraries/Predeploys.sol | 3 +-- packages/contracts-bedrock/test/L2/ETHLiquidity.t.sol | 7 +++++++ .../test/L2/ExecutingMessageEmitted.t.sol | 8 ++++++++ packages/contracts-bedrock/test/L2/L2Genesis.t.sol | 4 ++-- .../contracts-bedrock/test/L2/SuperchainETHBridge.t.sol | 6 ++++++ 7 files changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/contracts-bedrock/scripts/L2Genesis.s.sol b/packages/contracts-bedrock/scripts/L2Genesis.s.sol index 6e02c199b0a2b..9bfeeaecdd16f 100644 --- a/packages/contracts-bedrock/scripts/L2Genesis.s.sol +++ b/packages/contracts-bedrock/scripts/L2Genesis.s.sol @@ -284,9 +284,6 @@ contract L2Genesis is Deployer { if (cfg.useInterop()) { setCrossL2Inbox(); // 22 setL2ToL2CrossDomainMessenger(); // 23 - setSuperchainETHBridge(); // 24 - setETHLiquidity(); // 25 - setSuperchainTokenBridge(); // 28 } } diff --git a/packages/contracts-bedrock/scripts/L2Genesis2.s.sol b/packages/contracts-bedrock/scripts/L2Genesis2.s.sol index efebf0d4b489c..835ac08d0871c 100644 --- a/packages/contracts-bedrock/scripts/L2Genesis2.s.sol +++ b/packages/contracts-bedrock/scripts/L2Genesis2.s.sol @@ -229,9 +229,6 @@ contract L2Genesis is Script { if (_input.useInterop) { setCrossL2Inbox(); // 22 setL2ToL2CrossDomainMessenger(); // 23 - setSuperchainETHBridge(); // 24 - setETHLiquidity(); // 25 - setSuperchainTokenBridge(); // 28 } } diff --git a/packages/contracts-bedrock/src/libraries/Predeploys.sol b/packages/contracts-bedrock/src/libraries/Predeploys.sol index 88f8b7eb29f07..bf05a0c2d8bb1 100644 --- a/packages/contracts-bedrock/src/libraries/Predeploys.sol +++ b/packages/contracts-bedrock/src/libraries/Predeploys.sol @@ -160,8 +160,7 @@ library Predeploys { || _addr == OPTIMISM_MINTABLE_ERC721_FACTORY || _addr == PROXY_ADMIN || _addr == BASE_FEE_VAULT || _addr == L1_FEE_VAULT || _addr == OPERATOR_FEE_VAULT || _addr == SCHEMA_REGISTRY || _addr == EAS || _addr == GOVERNANCE_TOKEN || (_useInterop && _addr == CROSS_L2_INBOX) - || (_useInterop && _addr == L2_TO_L2_CROSS_DOMAIN_MESSENGER) || (_useInterop && _addr == SUPERCHAIN_ETH_BRIDGE) - || (_useInterop && _addr == ETH_LIQUIDITY) || (_useInterop && _addr == SUPERCHAIN_TOKEN_BRIDGE); + || (_useInterop && _addr == L2_TO_L2_CROSS_DOMAIN_MESSENGER); } function isPredeployNamespace(address _addr) internal pure returns (bool) { diff --git a/packages/contracts-bedrock/test/L2/ETHLiquidity.t.sol b/packages/contracts-bedrock/test/L2/ETHLiquidity.t.sol index 8727cac7003d4..4f1d14f6b6f45 100644 --- a/packages/contracts-bedrock/test/L2/ETHLiquidity.t.sol +++ b/packages/contracts-bedrock/test/L2/ETHLiquidity.t.sol @@ -27,6 +27,13 @@ contract ETHLiquidity_Test is CommonTest { function setUp() public virtual override { super.enableInterop(); super.setUp(); + + { + // TODO: Remove this block when L2Genesis includes this contract. + vm.etch(address(superchainETHBridge), vm.getDeployedCode("SuperchainETHBridge.sol:SuperchainETHBridge")); + vm.etch(address(ethLiquidity), vm.getDeployedCode("ETHLiquidity.sol:ETHLiquidity")); + vm.deal(address(ethLiquidity), type(uint248).max); + } } /// @notice Tests that contract is set up with the correct starting balance. diff --git a/packages/contracts-bedrock/test/L2/ExecutingMessageEmitted.t.sol b/packages/contracts-bedrock/test/L2/ExecutingMessageEmitted.t.sol index 398a45135e117..8f1974b79a50c 100644 --- a/packages/contracts-bedrock/test/L2/ExecutingMessageEmitted.t.sol +++ b/packages/contracts-bedrock/test/L2/ExecutingMessageEmitted.t.sol @@ -32,6 +32,14 @@ contract ExecutingMessageEmittedTest is CommonTest { super.enableInterop(); super.setUp(); + { + // TODO: Remove this block when L2Genesis includes this contract. + vm.etch( + Predeploys.SUPERCHAIN_TOKEN_BRIDGE, + vm.getDeployedCode("SuperchainTokenBridge.sol:SuperchainTokenBridge") + ); + } + vm.etch(superchainERC20, vm.getDeployedCode("OptimismSuperchainERC20.sol:OptimismSuperchainERC20")); } diff --git a/packages/contracts-bedrock/test/L2/L2Genesis.t.sol b/packages/contracts-bedrock/test/L2/L2Genesis.t.sol index f105a86632ab1..d5689448933f6 100644 --- a/packages/contracts-bedrock/test/L2/L2Genesis.t.sol +++ b/packages/contracts-bedrock/test/L2/L2Genesis.t.sol @@ -139,8 +139,8 @@ contract L2GenesisTest is Test { // 2 predeploys do not have proxies assertEq(getCodeCount(_path, "Proxy.sol:Proxy"), Predeploys.PREDEPLOY_COUNT - 2); - // 23 proxies have the implementation set if useInterop is true and 18 if useInterop is false - assertEq(getPredeployCountWithSlotSet(_path, Constants.PROXY_IMPLEMENTATION_ADDRESS), _useInterop ? 23 : 18); + // 20 proxies have the implementation set if useInterop is true and 18 if useInterop is false + assertEq(getPredeployCountWithSlotSet(_path, Constants.PROXY_IMPLEMENTATION_ADDRESS), _useInterop ? 20 : 18); // All proxies except 2 have the proxy 1967 admin slot set to the proxy admin assertEq( diff --git a/packages/contracts-bedrock/test/L2/SuperchainETHBridge.t.sol b/packages/contracts-bedrock/test/L2/SuperchainETHBridge.t.sol index 42661059007ab..e983f14ce7c8e 100644 --- a/packages/contracts-bedrock/test/L2/SuperchainETHBridge.t.sol +++ b/packages/contracts-bedrock/test/L2/SuperchainETHBridge.t.sol @@ -26,6 +26,12 @@ contract SuperchainETHBridge_Test is CommonTest { function setUp() public virtual override { super.enableInterop(); super.setUp(); + + { + // TODO: Remove this block when L2Genesis includes this contract. + vm.etch(address(superchainETHBridge), vm.getDeployedCode("SuperchainETHBridge.sol:SuperchainETHBridge")); + vm.etch(address(ethLiquidity), vm.getDeployedCode("ETHLiquidity.sol:ETHLiquidity")); + } } /// @notice Helper function to setup a mock and expect a call to it.