packages/contracts-core/contracts/interfaces/IMessageRecipient.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
interface IMessageRecipient {
/**
* @notice Message recipient needs to implement this function in order to
* receive cross-chain messages.
* @dev Message recipient needs to ensure that merkle proof for the message
* is at least as old as the optimistic period that the recipient is using.
* Note: as this point it is checked that the "message optimistic period" has passed,
* however the period value itself could be anything, and thus could differ from the one
* that the recipient would like to enforce.
* @param origin Domain where message originated
* @param nonce Message nonce on the origin domain
* @param sender Sender address on origin chain
* @param proofMaturity Message's merkle proof age in seconds
* @param version Message version specified by sender
* @param content Raw bytes content of message
*/
function receiveBaseMessage(
uint32 origin,
uint32 nonce,
bytes32 sender,
uint256 proofMaturity,
uint32 version,
bytes memory content
) external payable;
}