github.com/ethereum-optimism/optimism@v1.7.2/packages/contracts-bedrock/src/libraries/Predeploys.sol (about)

     1  // SPDX-License-Identifier: MIT
     2  pragma solidity ^0.8.0;
     3  
     4  /// @title Predeploys
     5  /// @notice Contains constant addresses for contracts that are pre-deployed to the L2 system.
     6  library Predeploys {
     7      /// @notice Address of the L2ToL1MessagePasser predeploy.
     8      address internal constant L2_TO_L1_MESSAGE_PASSER = 0x4200000000000000000000000000000000000016;
     9  
    10      /// @notice Address of the L2CrossDomainMessenger predeploy.
    11      address internal constant L2_CROSS_DOMAIN_MESSENGER = 0x4200000000000000000000000000000000000007;
    12  
    13      /// @notice Address of the L2StandardBridge predeploy.
    14      address internal constant L2_STANDARD_BRIDGE = 0x4200000000000000000000000000000000000010;
    15  
    16      /// @notice Address of the L2ERC721Bridge predeploy.
    17      address internal constant L2_ERC721_BRIDGE = 0x4200000000000000000000000000000000000014;
    18  
    19      //// @notice Address of the SequencerFeeWallet predeploy.
    20      address internal constant SEQUENCER_FEE_WALLET = 0x4200000000000000000000000000000000000011;
    21  
    22      /// @notice Address of the OptimismMintableERC20Factory predeploy.
    23      address internal constant OPTIMISM_MINTABLE_ERC20_FACTORY = 0x4200000000000000000000000000000000000012;
    24  
    25      /// @notice Address of the OptimismMintableERC721Factory predeploy.
    26      address internal constant OPTIMISM_MINTABLE_ERC721_FACTORY = 0x4200000000000000000000000000000000000017;
    27  
    28      /// @notice Address of the L1Block predeploy.
    29      address internal constant L1_BLOCK_ATTRIBUTES = 0x4200000000000000000000000000000000000015;
    30  
    31      /// @notice Address of the GasPriceOracle predeploy. Includes fee information
    32      ///         and helpers for computing the L1 portion of the transaction fee.
    33      address internal constant GAS_PRICE_ORACLE = 0x420000000000000000000000000000000000000F;
    34  
    35      /// @custom:legacy
    36      /// @notice Address of the L1MessageSender predeploy. Deprecated. Use L2CrossDomainMessenger
    37      ///         or access tx.origin (or msg.sender) in a L1 to L2 transaction instead.
    38      address internal constant L1_MESSAGE_SENDER = 0x4200000000000000000000000000000000000001;
    39  
    40      /// @custom:legacy
    41      /// @notice Address of the DeployerWhitelist predeploy. No longer active.
    42      address internal constant DEPLOYER_WHITELIST = 0x4200000000000000000000000000000000000002;
    43  
    44      /// @notice Address of the canonical WETH9 contract.
    45      address internal constant WETH9 = 0x4200000000000000000000000000000000000006;
    46  
    47      /// @custom:legacy
    48      /// @notice Address of the LegacyERC20ETH predeploy. Deprecated. Balances are migrated to the
    49      ///         state trie as of the Bedrock upgrade. Contract has been locked and write functions
    50      ///         can no longer be accessed.
    51      address internal constant LEGACY_ERC20_ETH = 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000;
    52  
    53      /// @custom:legacy
    54      /// @notice Address of the L1BlockNumber predeploy. Deprecated. Use the L1Block predeploy
    55      ///         instead, which exposes more information about the L1 state.
    56      address internal constant L1_BLOCK_NUMBER = 0x4200000000000000000000000000000000000013;
    57  
    58      /// @custom:legacy
    59      /// @notice Address of the LegacyMessagePasser predeploy. Deprecate. Use the updated
    60      ///         L2ToL1MessagePasser contract instead.
    61      address internal constant LEGACY_MESSAGE_PASSER = 0x4200000000000000000000000000000000000000;
    62  
    63      /// @notice Address of the ProxyAdmin predeploy.
    64      address internal constant PROXY_ADMIN = 0x4200000000000000000000000000000000000018;
    65  
    66      /// @notice Address of the BaseFeeVault predeploy.
    67      address internal constant BASE_FEE_VAULT = 0x4200000000000000000000000000000000000019;
    68  
    69      /// @notice Address of the L1FeeVault predeploy.
    70      address internal constant L1_FEE_VAULT = 0x420000000000000000000000000000000000001A;
    71  
    72      /// @notice Address of the GovernanceToken predeploy.
    73      address internal constant GOVERNANCE_TOKEN = 0x4200000000000000000000000000000000000042;
    74  
    75      /// @notice Address of the SchemaRegistry predeploy.
    76      address internal constant SCHEMA_REGISTRY = 0x4200000000000000000000000000000000000020;
    77  
    78      /// @notice Address of the EAS predeploy.
    79      address internal constant EAS = 0x4200000000000000000000000000000000000021;
    80  
    81      /// @notice Address of the MultiCall3 predeploy.
    82      address internal constant MultiCall3 = 0xcA11bde05977b3631167028862bE2a173976CA11;
    83  
    84      /// @notice Address of the Create2Deployer predeploy.
    85      address internal constant Create2Deployer = 0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2;
    86  
    87      /// @notice Address of the Safe_v130 predeploy.
    88      address internal constant Safe_v130 = 0x69f4D1788e39c87893C980c06EdF4b7f686e2938;
    89  
    90      /// @notice Address of the SafeL2_v130 predeploy.
    91      address internal constant SafeL2_v130 = 0xfb1bffC9d739B8D520DaF37dF666da4C687191EA;
    92  
    93      /// @notice Address of the MultiSendCallOnly_v130 predeploy.
    94      address internal constant MultiSendCallOnly_v130 = 0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B;
    95  
    96      /// @notice Address of the SafeSingletonFactory predeploy.
    97      address internal constant SafeSingletonFactory = 0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7;
    98  
    99      /// @notice Address of the DeterministicDeploymentProxy predeploy.
   100      address internal constant DeterministicDeploymentProxy = 0x4e59b44847b379578588920cA78FbF26c0B4956C;
   101  
   102      /// @notice Address of the MultiSend_v130 predeploy.
   103      address internal constant MultiSend_v130 = 0x998739BFdAAdde7C933B942a68053933098f9EDa;
   104  
   105      /// @notice Address of the Permit2 predeploy.
   106      address internal constant Permit2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3;
   107  
   108      /// @notice Address of the SenderCreator predeploy.
   109      address internal constant SenderCreator = 0x7fc98430eAEdbb6070B35B39D798725049088348;
   110  
   111      /// @notice Address of the EntryPoint predeploy.
   112      address internal constant EntryPoint = 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789;
   113  }