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

     1  // SPDX-License-Identifier: MIT
     2  pragma solidity ^0.8.9;
     3  
     4  // Importing from the legacy contracts package causes issues with the build of the contract bindings
     5  // so we just copy the library here from
     6  // /packages/contracts/contracts/libraries/bridge/Lib_CrossDomainUtils.sol at commit
     7  // 7866168c
     8  
     9  /// @title LegacyCrossDomainUtils
    10  library LegacyCrossDomainUtils {
    11      /// @notice Generates the correct cross domain calldata for a message.
    12      /// @param _target Target contract address.
    13      /// @param _sender Message sender address.
    14      /// @param _message Message to send to the target.
    15      /// @param _messageNonce Nonce for the provided message.
    16      /// @return ABI encoded cross domain calldata.
    17      function encodeXDomainCalldata(
    18          address _target,
    19          address _sender,
    20          bytes memory _message,
    21          uint256 _messageNonce
    22      )
    23          internal
    24          pure
    25          returns (bytes memory)
    26      {
    27          return abi.encodeWithSignature(
    28              "relayMessage(address,address,bytes,uint256)", _target, _sender, _message, _messageNonce
    29          );
    30      }
    31  }