From cdf1df2d449d8f63943818ee9af861d25ab838d8 Mon Sep 17 00:00:00 2001 From: niha <205694301+0xniha@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:31:50 -0300 Subject: [PATCH 1/3] fix: cgt feature tests --- .../contracts-bedrock/test/L1/L1StandardBridge.t.sol | 8 ++++++++ .../test/invariants/OptimismPortal2.t.sol | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol b/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol index 6acf740938e..1761a130415 100644 --- a/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol +++ b/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol @@ -15,6 +15,7 @@ import { Predeploys } from "src/libraries/Predeploys.sol"; import { AddressAliasHelper } from "src/vendor/AddressAliasHelper.sol"; import { EIP1967Helper } from "test/mocks/EIP1967Helper.sol"; import { Features } from "src/libraries/Features.sol"; +import { DevFeatures } from "src/libraries/DevFeatures.sol"; // Interfaces import { ICrossDomainMessenger } from "interfaces/universal/ICrossDomainMessenger.sol"; @@ -332,6 +333,7 @@ contract L1StandardBridge_Paused_Test is CommonTest { contract L1StandardBridge_Receive_Test is CommonTest { /// @notice Tests receive bridges ETH successfully. function test_receive_succeeds() external { + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; @@ -386,6 +388,7 @@ contract L1StandardBridge_DepositETH_Test is L1StandardBridge_TestInit { /// Only EOA can call depositETH. /// ETH ends up in the optimismPortal. function test_depositETH_fromEOA_succeeds() external { + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); _preBridgeETH({ isLegacy: true, value: 500 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; @@ -401,6 +404,7 @@ contract L1StandardBridge_DepositETH_Test is L1StandardBridge_TestInit { /// @notice Tests that depositing ETH succeeds for an EOA using 7702 delegation. function test_depositETH_fromEOA7702_succeeds() external { + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); // Set alice to have 7702 code. vm.etch(alice, abi.encodePacked(hex"EF0100", address(0))); @@ -435,6 +439,7 @@ contract L1StandardBridge_DepositETHTo_Test is L1StandardBridge_TestInit { /// EOA or contract can call depositETHTo. /// ETH ends up in the optimismPortal. function test_depositETHTo_succeeds() external { + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); _preBridgeETHTo({ isLegacy: true, value: 600 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; @@ -452,6 +457,7 @@ contract L1StandardBridge_DepositETHTo_Test is L1StandardBridge_TestInit { /// @param _to Random recipient address /// @param _amount Random ETH amount to deposit function testFuzz_depositETHTo_randomRecipient_succeeds(address _to, uint256 _amount) external { + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); vm.assume(_to != address(0)); _amount = bound(_amount, 1, 10 ether); @@ -780,6 +786,7 @@ contract L1StandardBridge_Uncategorized_Test is L1StandardBridge_TestInit { /// Only EOA can call bridgeETH. /// ETH ends up in the optimismPortal. function test_bridgeETH_succeeds() external { + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); _preBridgeETH({ isLegacy: false, value: 500 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; @@ -799,6 +806,7 @@ contract L1StandardBridge_Uncategorized_Test is L1StandardBridge_TestInit { /// Only EOA can call bridgeETHTo. /// ETH ends up in the optimismPortal. function test_bridgeETHTo_succeeds() external { + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); _preBridgeETHTo({ isLegacy: false, value: 600 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; diff --git a/packages/contracts-bedrock/test/invariants/OptimismPortal2.t.sol b/packages/contracts-bedrock/test/invariants/OptimismPortal2.t.sol index 63d05ad7a4f..f826e026291 100644 --- a/packages/contracts-bedrock/test/invariants/OptimismPortal2.t.sol +++ b/packages/contracts-bedrock/test/invariants/OptimismPortal2.t.sol @@ -14,6 +14,7 @@ import { ResourceMetering } from "src/L1/ResourceMetering.sol"; // Libraries import { Constants } from "src/libraries/Constants.sol"; import { Types } from "src/libraries/Types.sol"; +import { Features } from "src/libraries/Features.sol"; import "src/dispute/lib/Types.sol"; // Interfaces @@ -67,6 +68,11 @@ contract OptimismPortal2_Depositor is StdUtils, ResourceMetering { uint256 preDepositBalance = address(this).balance; uint256 value = bound(preDepositvalue, 0, preDepositBalance); + // If custom gas token is enabled, set deposit value to 0 + if (portal.systemConfig().isFeatureEnabled(Features.CUSTOM_GAS_TOKEN)) { + value = 0; + } + (, uint64 cachedPrevBoughtGas,) = ResourceMetering(address(portal)).params(); ResourceMetering.ResourceConfig memory rcfg = resourceConfig(); uint256 maxResourceLimit = uint64(rcfg.maxResourceLimit); @@ -106,6 +112,12 @@ contract OptimismPortal2_Invariant_Harness is DisputeGameFactory_TestInit { gasLimit: 100_000, data: hex"" }); + + // If custom gas token is enabled, set deposit value to 0 + if (systemConfig.isFeatureEnabled(Features.CUSTOM_GAS_TOKEN)) { + _defaultTx.value = 0; + } + // Get withdrawal proof data we can use for testing. (_stateRoot, _storageRoot, _outputRoot, _withdrawalHash, _withdrawalProof) = ffi.getProveWithdrawalTransactionInputs(_defaultTx); From 8bee464d45cf7d4040c4dd1459ffc78de2508024 Mon Sep 17 00:00:00 2001 From: niha <205694301+0xniha@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:55:22 -0300 Subject: [PATCH 2/3] fix: deposits with amount 0 when cgt enabled --- .../test/L1/L1StandardBridge.t.sol | 86 ++++++++++++------- 1 file changed, 53 insertions(+), 33 deletions(-) diff --git a/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol b/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol index 1761a130415..a3c0209aa0f 100644 --- a/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol +++ b/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol @@ -333,16 +333,19 @@ contract L1StandardBridge_Paused_Test is CommonTest { contract L1StandardBridge_Receive_Test is CommonTest { /// @notice Tests receive bridges ETH successfully. function test_receive_succeeds() external { - skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); + uint256 _amount; + if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { + _amount = 100; + } uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; // The legacy event must be emitted for backwards compatibility vm.expectEmit(address(l1StandardBridge)); - emit ETHDepositInitiated(alice, alice, 100, hex""); + emit ETHDepositInitiated(alice, alice, _amount, hex""); vm.expectEmit(address(l1StandardBridge)); - emit ETHBridgeInitiated(alice, alice, 100, hex""); + emit ETHBridgeInitiated(alice, alice, _amount, hex""); vm.expectCall( address(l1CrossDomainMessenger), @@ -350,21 +353,21 @@ contract L1StandardBridge_Receive_Test is CommonTest { ICrossDomainMessenger.sendMessage, ( address(l2StandardBridge), - abi.encodeCall(StandardBridge.finalizeBridgeETH, (alice, alice, 100, hex"")), + abi.encodeCall(StandardBridge.finalizeBridgeETH, (alice, alice, _amount, hex"")), 200_000 ) ) ); vm.prank(alice, alice); - (bool success,) = address(l1StandardBridge).call{ value: 100 }(hex""); + (bool success,) = address(l1StandardBridge).call{ value: _amount }(hex""); assertEq(success, true); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 100); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + 100); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); } } @@ -388,36 +391,42 @@ contract L1StandardBridge_DepositETH_Test is L1StandardBridge_TestInit { /// Only EOA can call depositETH. /// ETH ends up in the optimismPortal. function test_depositETH_fromEOA_succeeds() external { - skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); - _preBridgeETH({ isLegacy: true, value: 500 }); + uint256 _amount; + if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { + _amount = 500; + } + _preBridgeETH({ isLegacy: true, value: _amount }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.depositETH{ value: 500 }(50000, hex"dead"); + l1StandardBridge.depositETH{ value: _amount }(50000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 500); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + 500); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); } } /// @notice Tests that depositing ETH succeeds for an EOA using 7702 delegation. function test_depositETH_fromEOA7702_succeeds() external { - skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); + uint256 _amount; + if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { + _amount = 500; + } // Set alice to have 7702 code. vm.etch(alice, abi.encodePacked(hex"EF0100", address(0))); - _preBridgeETH({ isLegacy: true, value: 500 }); + _preBridgeETH({ isLegacy: true, value: _amount }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.depositETH{ value: 500 }(50000, hex"dead"); + l1StandardBridge.depositETH{ value: _amount }(50000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 500); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + 500); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); } } @@ -439,17 +448,20 @@ contract L1StandardBridge_DepositETHTo_Test is L1StandardBridge_TestInit { /// EOA or contract can call depositETHTo. /// ETH ends up in the optimismPortal. function test_depositETHTo_succeeds() external { - skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); - _preBridgeETHTo({ isLegacy: true, value: 600 }); + uint256 _amount; + if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { + _amount = 600; + } + _preBridgeETHTo({ isLegacy: true, value: _amount }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.depositETHTo{ value: 600 }(bob, 60000, hex"dead"); + l1StandardBridge.depositETHTo{ value: _amount }(bob, 60000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 600); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + 600); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); } } @@ -457,9 +469,11 @@ contract L1StandardBridge_DepositETHTo_Test is L1StandardBridge_TestInit { /// @param _to Random recipient address /// @param _amount Random ETH amount to deposit function testFuzz_depositETHTo_randomRecipient_succeeds(address _to, uint256 _amount) external { - skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); vm.assume(_to != address(0)); _amount = bound(_amount, 1, 10 ether); + if (isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { + _amount = 0; + } vm.deal(alice, _amount); @@ -786,17 +800,20 @@ contract L1StandardBridge_Uncategorized_Test is L1StandardBridge_TestInit { /// Only EOA can call bridgeETH. /// ETH ends up in the optimismPortal. function test_bridgeETH_succeeds() external { - skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); - _preBridgeETH({ isLegacy: false, value: 500 }); + uint256 _amount; + if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { + _amount = 500; + } + _preBridgeETH({ isLegacy: false, value: _amount }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.bridgeETH{ value: 500 }(50000, hex"dead"); + l1StandardBridge.bridgeETH{ value: _amount }(50000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 500); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + 500); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); } } @@ -806,17 +823,20 @@ contract L1StandardBridge_Uncategorized_Test is L1StandardBridge_TestInit { /// Only EOA can call bridgeETHTo. /// ETH ends up in the optimismPortal. function test_bridgeETHTo_succeeds() external { - skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); - _preBridgeETHTo({ isLegacy: false, value: 600 }); + uint256 _amount; + if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { + _amount = 600; + } + _preBridgeETHTo({ isLegacy: false, value: _amount }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.bridgeETHTo{ value: 600 }(bob, 60000, hex"dead"); + l1StandardBridge.bridgeETHTo{ value: _amount }(bob, 60000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 600); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + 600); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); } } From 23e2dbc8cce7c52077a668dc302f566d3f9128e4 Mon Sep 17 00:00:00 2001 From: niha <205694301+0xniha@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:41:50 -0300 Subject: [PATCH 3/3] Revert "fix: deposits with amount 0 when cgt enabled" This reverts commit 8bee464d45cf7d4040c4dd1459ffc78de2508024. --- .../test/L1/L1StandardBridge.t.sol | 86 +++++++------------ 1 file changed, 33 insertions(+), 53 deletions(-) diff --git a/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol b/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol index a3c0209aa0f..1761a130415 100644 --- a/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol +++ b/packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol @@ -333,19 +333,16 @@ contract L1StandardBridge_Paused_Test is CommonTest { contract L1StandardBridge_Receive_Test is CommonTest { /// @notice Tests receive bridges ETH successfully. function test_receive_succeeds() external { - uint256 _amount; - if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { - _amount = 100; - } + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; // The legacy event must be emitted for backwards compatibility vm.expectEmit(address(l1StandardBridge)); - emit ETHDepositInitiated(alice, alice, _amount, hex""); + emit ETHDepositInitiated(alice, alice, 100, hex""); vm.expectEmit(address(l1StandardBridge)); - emit ETHBridgeInitiated(alice, alice, _amount, hex""); + emit ETHBridgeInitiated(alice, alice, 100, hex""); vm.expectCall( address(l1CrossDomainMessenger), @@ -353,21 +350,21 @@ contract L1StandardBridge_Receive_Test is CommonTest { ICrossDomainMessenger.sendMessage, ( address(l2StandardBridge), - abi.encodeCall(StandardBridge.finalizeBridgeETH, (alice, alice, _amount, hex"")), + abi.encodeCall(StandardBridge.finalizeBridgeETH, (alice, alice, 100, hex"")), 200_000 ) ) ); vm.prank(alice, alice); - (bool success,) = address(l1StandardBridge).call{ value: _amount }(hex""); + (bool success,) = address(l1StandardBridge).call{ value: 100 }(hex""); assertEq(success, true); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 100); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + 100); } } @@ -391,42 +388,36 @@ contract L1StandardBridge_DepositETH_Test is L1StandardBridge_TestInit { /// Only EOA can call depositETH. /// ETH ends up in the optimismPortal. function test_depositETH_fromEOA_succeeds() external { - uint256 _amount; - if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { - _amount = 500; - } - _preBridgeETH({ isLegacy: true, value: _amount }); + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); + _preBridgeETH({ isLegacy: true, value: 500 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.depositETH{ value: _amount }(50000, hex"dead"); + l1StandardBridge.depositETH{ value: 500 }(50000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 500); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + 500); } } /// @notice Tests that depositing ETH succeeds for an EOA using 7702 delegation. function test_depositETH_fromEOA7702_succeeds() external { - uint256 _amount; - if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { - _amount = 500; - } + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); // Set alice to have 7702 code. vm.etch(alice, abi.encodePacked(hex"EF0100", address(0))); - _preBridgeETH({ isLegacy: true, value: _amount }); + _preBridgeETH({ isLegacy: true, value: 500 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.depositETH{ value: _amount }(50000, hex"dead"); + l1StandardBridge.depositETH{ value: 500 }(50000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 500); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + 500); } } @@ -448,20 +439,17 @@ contract L1StandardBridge_DepositETHTo_Test is L1StandardBridge_TestInit { /// EOA or contract can call depositETHTo. /// ETH ends up in the optimismPortal. function test_depositETHTo_succeeds() external { - uint256 _amount; - if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { - _amount = 600; - } - _preBridgeETHTo({ isLegacy: true, value: _amount }); + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); + _preBridgeETHTo({ isLegacy: true, value: 600 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.depositETHTo{ value: _amount }(bob, 60000, hex"dead"); + l1StandardBridge.depositETHTo{ value: 600 }(bob, 60000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 600); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + 600); } } @@ -469,11 +457,9 @@ contract L1StandardBridge_DepositETHTo_Test is L1StandardBridge_TestInit { /// @param _to Random recipient address /// @param _amount Random ETH amount to deposit function testFuzz_depositETHTo_randomRecipient_succeeds(address _to, uint256 _amount) external { + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); vm.assume(_to != address(0)); _amount = bound(_amount, 1, 10 ether); - if (isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { - _amount = 0; - } vm.deal(alice, _amount); @@ -800,20 +786,17 @@ contract L1StandardBridge_Uncategorized_Test is L1StandardBridge_TestInit { /// Only EOA can call bridgeETH. /// ETH ends up in the optimismPortal. function test_bridgeETH_succeeds() external { - uint256 _amount; - if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { - _amount = 500; - } - _preBridgeETH({ isLegacy: false, value: _amount }); + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); + _preBridgeETH({ isLegacy: false, value: 500 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.bridgeETH{ value: _amount }(50000, hex"dead"); + l1StandardBridge.bridgeETH{ value: 500 }(50000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 500); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + 500); } } @@ -823,20 +806,17 @@ contract L1StandardBridge_Uncategorized_Test is L1StandardBridge_TestInit { /// Only EOA can call bridgeETHTo. /// ETH ends up in the optimismPortal. function test_bridgeETHTo_succeeds() external { - uint256 _amount; - if (!isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) { - _amount = 600; - } - _preBridgeETHTo({ isLegacy: false, value: _amount }); + skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN); + _preBridgeETHTo({ isLegacy: false, value: 600 }); uint256 portalBalanceBefore = address(optimismPortal2).balance; uint256 ethLockboxBalanceBefore = address(ethLockbox).balance; - l1StandardBridge.bridgeETHTo{ value: _amount }(bob, 60000, hex"dead"); + l1StandardBridge.bridgeETHTo{ value: 600 }(bob, 60000, hex"dead"); if (isSysFeatureEnabled(Features.ETH_LOCKBOX)) { assertEq(address(optimismPortal2).balance, portalBalanceBefore); - assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + _amount); + assertEq(address(ethLockbox).balance, ethLockboxBalanceBefore + 600); } else { - assertEq(address(optimismPortal2).balance, portalBalanceBefore + _amount); + assertEq(address(optimismPortal2).balance, portalBalanceBefore + 600); } }