Message Structure

src/libraries/Message.sol

The MessageLibrary library contract provides a data structure that represents a message for a remote call to a target contract on a destination chain.

    struct Message {
        uint256 srcChainId;
        uint256 dstChainId;
        address target;
        uint256 nonce;
        bytes callData;
        uint256 nativeValue;
        uint256 expiration;
    }

Each of these fields is described in further detail below:

  • srcChainId is the ID of the chain where this message is sent from

  • dstChainId: The ID of the chain where the message is sent to.

  • target: The address of the contract to be called on the destination chain.

  • nonce: An incrementing number held by MultiBridgeMessageSender to ensure msgId uniqueness.

  • callData: The data to be sent to the target contract by low-level call (e.g., address(target).call(callData)).

  • nativeValue is the native token value to be sent to the target in the low-level call(eg. address(target).call{value: nativeValue}(callData))

  • expiration: is the timestamp when the message expires

Last updated