Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 93 additions & 35 deletions .circleci/config.yml

Large diffs are not rendered by default.

3 changes: 0 additions & 3 deletions op-deployer/pkg/deployer/devfeatures.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ var (

// DeployV2DisputeGamesDevFlag enables deployment of V2 dispute game contracts.
DeployV2DisputeGamesDevFlag = common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000100")

// CustomGasTokenDevFlag enables the custom gas token.
CustomGasTokenDevFlag = common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000001000")
)

// IsDevFeatureEnabled checks if a specific development feature is enabled in a feature bitmap.
Expand Down
4 changes: 0 additions & 4 deletions op-deployer/pkg/deployer/integration_test/apply_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -321,10 +321,6 @@ func TestEndToEndApply(t *testing.T) {
Symbol: "CGT",
InitialLiquidity: (*hexutil.Big)(amount),
}
// CGT config for OPCM
intent.GlobalDeployOverrides = map[string]interface{}{
"devFeatureBitmap": deployer.CustomGasTokenDevFlag,
}

require.NoError(t, deployer.ApplyPipeline(ctx, deployer.ApplyPipelineOpts{
DeploymentTarget: deployer.DeploymentTargetLive,
Expand Down
10 changes: 5 additions & 5 deletions packages/contracts-bedrock/scripts/libraries/Config.sol
Original file line number Diff line number Diff line change
Expand Up @@ -286,13 +286,13 @@ library Config {
return vm.envOr("DEV_FEATURE__DEPLOY_V2_DISPUTE_GAMES", false);
}

/// @notice Returns true if the development feature custom gas token is enabled.
function devFeatureCustomGasToken() internal view returns (bool) {
return vm.envOr("DEV_FEATURE__CUSTOM_GAS_TOKEN", false);
}

/// @notice Returns true if the development feature opcm_v2 is enabled.
function devFeatureOpcmV2() internal view returns (bool) {
return vm.envOr("DEV_FEATURE__OPCM_V2", false);
}

/// @notice Returns true if the system feature custom_gas_token is enabled.
function sysFeatureCustomGasToken() internal view returns (bool) {
return vm.envOr("SYS_FEATURE__CUSTOM_GAS_TOKEN", false);
}
}
4 changes: 0 additions & 4 deletions packages/contracts-bedrock/src/libraries/DevFeatures.sol
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ library DevFeatures {
bytes32 public constant DEPLOY_V2_DISPUTE_GAMES =
bytes32(0x0000000000000000000000000000000000000000000000000000000000000100);

/// @notice The feature that enables the custom gas token.
bytes32 public constant CUSTOM_GAS_TOKEN =
bytes32(0x0000000000000000000000000000000000000000000000000000000000001000);

/// @notice The feature that enables the OPContractsManagerV2 contract.
bytes32 public constant OPCM_V2 = bytes32(0x0000000000000000000000000000000000000000000000000000000000010000);

Expand Down
5 changes: 2 additions & 3 deletions packages/contracts-bedrock/test/L1/FeesDepositor.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { FeesDepositor } from "src/L1/FeesDepositor.sol";
import { IProxyAdminOwnedBase } from "interfaces/L1/IProxyAdminOwnedBase.sol";
import { Proxy } from "src/universal/Proxy.sol";
import { Features } from "src/libraries/Features.sol";
import { DevFeatures } from "src/libraries/DevFeatures.sol";

/// @title FeesDepositor_TestInit
/// @notice Base test contract with initialization for `FeesDepositor` tests.
Expand Down Expand Up @@ -98,7 +97,7 @@ contract FeesDepositor_Receive_Test is FeesDepositor_TestInit {
}

function testFuzz_receive_atOrAboveThreshold_succeeds(uint256 _sendAmount) external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);

// Handling the fork tests scenario case for the fork tests
uint256 depositFeesRecipientBalanceBefore = depositFeesRecipient.balance;
Expand Down Expand Up @@ -126,7 +125,7 @@ contract FeesDepositor_Receive_Test is FeesDepositor_TestInit {
}

function testFuzz_receive_multipleDeposits_succeeds(uint256 _firstAmount, uint256 _secondAmount) external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);

// Handling the fork tests scenario
uint256 depositFeesRecipientBalanceBefore = depositFeesRecipient.balance;
Expand Down
14 changes: 7 additions & 7 deletions packages/contracts-bedrock/test/L1/L1StandardBridge.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +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);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
uint256 portalBalanceBefore = address(optimismPortal2).balance;
uint256 ethLockboxBalanceBefore = address(ethLockbox).balance;

Expand Down Expand Up @@ -388,7 +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);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
_preBridgeETH({ isLegacy: true, value: 500 });
uint256 portalBalanceBefore = address(optimismPortal2).balance;
uint256 ethLockboxBalanceBefore = address(ethLockbox).balance;
Expand All @@ -404,7 +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);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
// Set alice to have 7702 code.
vm.etch(alice, abi.encodePacked(hex"EF0100", address(0)));

Expand Down Expand Up @@ -439,7 +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);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
_preBridgeETHTo({ isLegacy: true, value: 600 });
uint256 portalBalanceBefore = address(optimismPortal2).balance;
uint256 ethLockboxBalanceBefore = address(ethLockbox).balance;
Expand All @@ -457,7 +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);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
vm.assume(_to != address(0));
_amount = bound(_amount, 1, 10 ether);

Expand Down Expand Up @@ -786,7 +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);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
_preBridgeETH({ isLegacy: false, value: 500 });
uint256 portalBalanceBefore = address(optimismPortal2).balance;
uint256 ethLockboxBalanceBefore = address(ethLockbox).balance;
Expand All @@ -806,7 +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);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
_preBridgeETHTo({ isLegacy: false, value: 600 });
uint256 portalBalanceBefore = address(optimismPortal2).balance;
uint256 ethLockboxBalanceBefore = address(ethLockbox).balance;
Expand Down
5 changes: 0 additions & 5 deletions packages/contracts-bedrock/test/L2/FeeSplitter.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import { ReentrantMockFeeVault } from "test/mocks/ReentrantMockFeeVault.sol";
// Libraries
import { Predeploys } from "src/libraries/Predeploys.sol";
import { Types } from "src/libraries/Types.sol";
import { DevFeatures } from "src/libraries/DevFeatures.sol";

// Interfaces
import { IFeeSplitter } from "interfaces/L2/IFeeSplitter.sol";
Expand Down Expand Up @@ -42,10 +41,6 @@ contract FeeSplitter_TestInit is CommonTest {

/// @notice Test setup.
function setUp() public virtual override {
// Resolve features and skip whole test suite if custom gas token is enabled
resolveFeaturesFromEnv();
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);

// Enable revenue sharing before calling parent setUp
super.enableRevenueShare();
super.setUp();
Expand Down
4 changes: 2 additions & 2 deletions packages/contracts-bedrock/test/L2/FeeVault.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { IL2ToL1MessagePasser } from "interfaces/L2/IL2ToL1MessagePasser.sol";
import { Hashing } from "src/libraries/Hashing.sol";
import { Types } from "src/libraries/Types.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
import { DevFeatures } from "src/libraries/DevFeatures.sol";
import { Features } from "src/libraries/Features.sol";

/// @title FeeVault_Uncategorized_Test
/// @notice Abstract test contract for fee feeVault testing.
Expand Down Expand Up @@ -84,7 +84,7 @@ abstract contract FeeVault_Uncategorized_Test is CommonTest {

/// @notice Tests that `withdraw` successfully initiates a withdrawal to L1.
function test_withdraw_toL1_succeeds() external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);

// Setup L1 withdrawal
vm.prank(IProxyAdmin(Predeploys.PROXY_ADMIN).owner());
Expand Down
20 changes: 10 additions & 10 deletions packages/contracts-bedrock/test/L2/L1Block.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { stdStorage, StdStorage } from "forge-std/Test.sol";
import { Encoding } from "src/libraries/Encoding.sol";
import { Constants } from "src/libraries/Constants.sol";
import "src/libraries/L1BlockErrors.sol";
import { DevFeatures } from "src/libraries/DevFeatures.sol";
import { Features } from "src/libraries/Features.sol";

// Interfaces
import { IL1BlockCGT } from "interfaces/L2/IL1BlockCGT.sol";
Expand Down Expand Up @@ -54,15 +54,15 @@ contract L1Block_GasPayingToken_Test is L1Block_TestInit {
/// @notice Tests that the `gasPayingToken` function returns the correct token address and
/// decimals.
function test_gasPayingToken_succeeds() external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
(address token, uint8 decimals) = l1Block.gasPayingToken();
assertEq(token, Constants.ETHER);
assertEq(uint256(decimals), uint256(18));
}

/// @notice Tests that the `gasPayingToken` function reverts when custom gas token is enabled.
function test_gasPayingToken_customGasToken_reverts() external {
skipIfDevFeatureDisabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureDisabled(Features.CUSTOM_GAS_TOKEN);
vm.expectRevert("L1BlockCGT: deprecated");
l1Block.gasPayingToken();
}
Expand All @@ -73,14 +73,14 @@ contract L1Block_GasPayingToken_Test is L1Block_TestInit {
contract L1Block_GasPayingTokenName_Test is L1Block_TestInit {
/// @notice Tests that the `gasPayingTokenName` function returns the correct token name.
function test_gasPayingTokenName_succeeds() external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
assertEq("Ether", l1Block.gasPayingTokenName());
}

/// @notice Tests that the `gasPayingTokenName` function returns the correct token name when custom gas token is
/// enabled.
function test_gasPayingTokenName_customGasToken_succeeds() external {
skipIfDevFeatureDisabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureDisabled(Features.CUSTOM_GAS_TOKEN);
assertEq(liquidityController.gasPayingTokenName(), l1Block.gasPayingTokenName());
}
}
Expand All @@ -90,14 +90,14 @@ contract L1Block_GasPayingTokenName_Test is L1Block_TestInit {
contract L1Block_GasPayingTokenSymbol_Test is L1Block_TestInit {
/// @notice Tests that the `gasPayingTokenSymbol` function returns the correct token symbol.
function test_gasPayingTokenSymbol_succeeds() external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
assertEq("ETH", l1Block.gasPayingTokenSymbol());
}

/// @notice Tests that the `gasPayingTokenSymbol` function returns the correct token symbol when custom gas token is
/// enabled.
function test_gasPayingTokenSymbol_customGasToken_succeeds() external {
skipIfDevFeatureDisabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureDisabled(Features.CUSTOM_GAS_TOKEN);
assertEq(liquidityController.gasPayingTokenSymbol(), l1Block.gasPayingTokenSymbol());
}
}
Expand All @@ -108,14 +108,14 @@ contract L1Block_IsCustomGasToken_Test is L1Block_TestInit {
/// @notice Tests that the `isCustomGasToken` function returns false when no custom gas token
/// is used.
function test_isCustomGasToken_succeeds() external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
assertFalse(l1Block.isCustomGasToken());
}

/// @notice Tests that the `isCustomGasToken` function returns true when custom gas token
/// is used.
function test_isCustomGasToken_customGasToken_succeeds() external {
skipIfDevFeatureDisabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureDisabled(Features.CUSTOM_GAS_TOKEN);
assertTrue(l1Block.isCustomGasToken());
}
}
Expand Down Expand Up @@ -467,7 +467,7 @@ contract L1Block_SetCustomGasToken_Test is L1Block_TestInit {

function setUp() public override {
super.setUp();
skipIfDevFeatureDisabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureDisabled(Features.CUSTOM_GAS_TOKEN);
l1BlockCGT = IL1BlockCGT(address(l1Block));
}

Expand Down
5 changes: 0 additions & 5 deletions packages/contracts-bedrock/test/L2/L1Withdrawer.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import { ICrossDomainMessenger } from "interfaces/universal/ICrossDomainMessenge
import { Predeploys } from "src/libraries/Predeploys.sol";
import { IL1Withdrawer } from "interfaces/L2/IL1Withdrawer.sol";
import { DeployUtils } from "scripts/libraries/DeployUtils.sol";
import { DevFeatures } from "src/libraries/DevFeatures.sol";

/// @title L1Withdrawer_TestInit
/// @notice Base test contract with initialization for `L1Withdrawer` tests.
Expand All @@ -26,10 +25,6 @@ contract L1Withdrawer_TestInit is CommonTest {

/// @notice Test setup.
function setUp() public virtual override {
// Resolve features and skip whole test suite if custom gas token is enabled
resolveFeaturesFromEnv();
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);

// Enable revenue sharing before calling parent setUp
super.enableRevenueShare();
super.setUp();
Expand Down
10 changes: 5 additions & 5 deletions packages/contracts-bedrock/test/L2/L2StandardBridge.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { OptimismMintableERC20 } from "src/universal/OptimismMintableERC20.sol";
import { Predeploys } from "src/libraries/Predeploys.sol";
import { Hashing } from "src/libraries/Hashing.sol";
import { Types } from "src/libraries/Types.sol";
import { DevFeatures } from "src/libraries/DevFeatures.sol";
import { Features } from "src/libraries/Features.sol";

// Interfaces
import { ICrossDomainMessenger } from "interfaces/universal/ICrossDomainMessenger.sol";
Expand Down Expand Up @@ -232,7 +232,7 @@ contract L2StandardBridge_Initialize_Test is L2StandardBridge_TestInit {
contract L2StandardBridge_Receive_Test is L2StandardBridge_TestInit {
/// @notice Tests that the bridge receives ETH and successfully initiates a withdrawal.
function test_receive_succeeds() external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
assertEq(address(l2ToL1MessagePasser).balance, 0);
uint256 nonce = l2CrossDomainMessenger.messageNonce();

Expand Down Expand Up @@ -325,7 +325,7 @@ contract L2StandardBridge_Withdraw_Test is L2StandardBridge_TestInit {
/// @notice Tests that the legacy `withdraw` interface on the L2StandardBridge sucessfully
/// initiates a withdrawal.
function test_withdraw_ether_succeeds() external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
assertTrue(alice.balance >= 100);
assertEq(Predeploys.L2_TO_L1_MESSAGE_PASSER.balance, 0);

Expand Down Expand Up @@ -468,7 +468,7 @@ contract L2StandardBridge_Uncategorized_Test is L2StandardBridge_TestInit {

/// @notice Tests that bridging ETH succeeds.
function testFuzz_bridgeETH_succeeds(uint256 _value, uint32 _minGasLimit, bytes calldata _extraData) external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
uint256 nonce = l2CrossDomainMessenger.messageNonce();

bytes memory message = abi.encodeCall(IStandardBridge.finalizeBridgeETH, (alice, alice, _value, _extraData));
Expand Down Expand Up @@ -502,7 +502,7 @@ contract L2StandardBridge_Uncategorized_Test is L2StandardBridge_TestInit {

/// @notice Tests that bridging ETH to a different address succeeds.
function testFuzz_bridgeETHTo_succeeds(uint256 _value, uint32 _minGasLimit, bytes calldata _extraData) external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
uint256 nonce = l2CrossDomainMessenger.messageNonce();

vm.expectCall(
Expand Down
14 changes: 7 additions & 7 deletions packages/contracts-bedrock/test/L2/L2ToL1MessagePasser.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { CommonTest } from "test/setup/CommonTest.sol";
// Libraries
import { Types } from "src/libraries/Types.sol";
import { Hashing } from "src/libraries/Hashing.sol";
import { DevFeatures } from "src/libraries/DevFeatures.sol";
import { Features } from "src/libraries/Features.sol";
import { SemverComp } from "src/libraries/SemverComp.sol";

// Interfaces
Expand All @@ -27,7 +27,7 @@ contract L2ToL1MessagePasser_Version_Test is CommonTest {
contract L2ToL1MessagePasser_Receive_Test is CommonTest {
/// @notice Tests that receive() initiates withdrawal with default gas limit.
function testFuzz_receive_initiatesWithdrawal_succeeds(uint256 _value) external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);

uint256 nonce = l2ToL1MessagePasser.messageNonce();

Expand Down Expand Up @@ -59,7 +59,7 @@ contract L2ToL1MessagePasser_Receive_Test is CommonTest {
contract L2ToL1MessagePasser_Burn_Test is CommonTest {
/// @notice Tests that `burn` succeeds and destroys the ETH held in the contract.
function testFuzz_burn_succeeds(uint256 _value, address _target, uint256 _gasLimit, bytes memory _data) external {
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
vm.deal(address(this), _value);

l2ToL1MessagePasser.initiateWithdrawal{ value: _value }({ _target: _target, _gasLimit: _gasLimit, _data: _data });
Expand Down Expand Up @@ -89,7 +89,7 @@ contract L2ToL1MessagePasser_InitiateWithdrawal_Test is CommonTest {
)
external
{
if (isDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN)) {
if (isSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN)) {
_value = 0;
}
uint256 nonce = l2ToL1MessagePasser.messageNonce();
Expand Down Expand Up @@ -129,7 +129,7 @@ contract L2ToL1MessagePasser_InitiateWithdrawal_Test is CommonTest {
)
external
{
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
bytes32 withdrawalHash = Hashing.hashWithdrawal(
Types.WithdrawalTransaction({
nonce: l2ToL1MessagePasser.messageNonce(),
Expand Down Expand Up @@ -161,7 +161,7 @@ contract L2ToL1MessagePasser_InitiateWithdrawal_Test is CommonTest {
)
external
{
skipIfDevFeatureEnabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureEnabled(Features.CUSTOM_GAS_TOKEN);
uint256 nonce = l2ToL1MessagePasser.messageNonce();

// Verify caller is an EOA (alice has no code)
Expand Down Expand Up @@ -192,7 +192,7 @@ contract L2ToL1MessagePasser_InitiateWithdrawal_Test is CommonTest {
)
external
{
skipIfDevFeatureDisabled(DevFeatures.CUSTOM_GAS_TOKEN);
skipIfSysFeatureDisabled(Features.CUSTOM_GAS_TOKEN);
// Set initial state
_value = bound(_value, 1, type(uint256).max);
vm.deal(_randomAddress, _value);
Expand Down
Loading