diff --git a/packages/contracts-bedrock/test/L1/SystemConfig.t.sol b/packages/contracts-bedrock/test/L1/SystemConfig.t.sol index b3787cea94315..9a2fac9c1d075 100644 --- a/packages/contracts-bedrock/test/L1/SystemConfig.t.sol +++ b/packages/contracts-bedrock/test/L1/SystemConfig.t.sol @@ -866,7 +866,16 @@ contract SystemConfig_SetFeature_Test is SystemConfig_TestInit { contract SystemConfig_IsFeatureEnabled_Test is SystemConfig_TestInit { /// @notice Tests that `isFeatureEnabled` returns false for unset features. /// @param _feature The feature to check. - function testFuzz_isFeatureEnabled_unsetFeature_succeeds(bytes32 _feature) external view { + function testFuzz_isFeatureEnabled_unsetFeature_succeeds(bytes32 _feature) external { + vm.startPrank(address(systemConfig.proxyAdmin())); + + // Normalize CUSTOM_GAS_TOKEN to avoid environment-dependent state + if (systemConfig.isFeatureEnabled(Features.CUSTOM_GAS_TOKEN)) { + systemConfig.setFeature(Features.CUSTOM_GAS_TOKEN, false); + } + + vm.stopPrank(); + assertFalse(systemConfig.isFeatureEnabled(_feature)); } diff --git a/packages/contracts-bedrock/test/vendor/AddressAliasHelper.t.sol b/packages/contracts-bedrock/test/vendor/AddressAliasHelper.t.sol index 5df2f4e0a255a..b803abba9fa90 100644 --- a/packages/contracts-bedrock/test/vendor/AddressAliasHelper.t.sol +++ b/packages/contracts-bedrock/test/vendor/AddressAliasHelper.t.sol @@ -4,6 +4,40 @@ pragma solidity 0.8.15; import { Test } from "forge-std/Test.sol"; import { AddressAliasHelper } from "src/vendor/AddressAliasHelper.sol"; +/// @title AddressAliasHelper_ApplyL1ToL2Alias_Test +/// @notice Tests for the `applyL1ToL2Alias` function. +contract AddressAliasHelper_ApplyL1ToL2Alias_Test is Test { + uint160 constant OFFSET = uint160(0x1111000000000000000000000000000000001111); + + /// @notice Tests that applyL1ToL2Alias correctly adds the offset to L1 address. + /// @param _l1Address The L1 address to apply the alias to. + function testFuzz_applyL1ToL2Alias_addsOffset_succeeds(address _l1Address) external pure { + address l2Address = AddressAliasHelper.applyL1ToL2Alias(_l1Address); + uint160 expected; + unchecked { + expected = uint160(_l1Address) + OFFSET; + } + assertEq(uint160(l2Address), expected); + } +} + +/// @title AddressAliasHelper_UndoL1ToL2Alias_Test +/// @notice Tests for the `undoL1ToL2Alias` function. +contract AddressAliasHelper_UndoL1ToL2Alias_Test is Test { + uint160 constant OFFSET = uint160(0x1111000000000000000000000000000000001111); + + /// @notice Tests that undoL1ToL2Alias correctly subtracts offset from L2 address. + /// @param _l2Address The L2 address to undo the alias from. + function testFuzz_undoL1ToL2Alias_subtractsOffset_succeeds(address _l2Address) external pure { + address l1Address = AddressAliasHelper.undoL1ToL2Alias(_l2Address); + uint160 expected; + unchecked { + expected = uint160(_l2Address) - OFFSET; + } + assertEq(uint160(l1Address), expected); + } +} + /// @title AddressAliasHelper_Uncategorized_Test /// @notice General tests that are not testing any function directly of the `AddressAliasHelper` /// contract or are testing multiple functions at once.