MockMessenger.sol 2.14 KB
Newer Older
1 2 3 4 5 6 7 8 9
pragma solidity ^0.8.9;

import { ICrossDomainMessenger } from "./ICrossDomainMessenger.sol";

contract MockMessenger is ICrossDomainMessenger {
    function xDomainMessageSender() public view returns (address) {
        return address(0);
    }

10 11
    uint256 public nonce;

12 13 14 15 16 17
    // Empty function to satisfy the interface.
    function sendMessage(
        address _target,
        bytes calldata _message,
        uint32 _gasLimit
    ) public {
18 19 20 21 22 23 24 25
        emit SentMessage(
            _target,
            msg.sender,
            _message,
            nonce,
            _gasLimit
        );
        nonce++;
26 27
    }

28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
    function replayMessage(
        address _target,
        address _sender,
        bytes calldata _message,
        uint256 _queueIndex,
        uint32 _oldGasLimit,
        uint32 _newGasLimit
    ) public {
        emit SentMessage(
            _target,
            _sender,
            _message,
            nonce,
            _newGasLimit
        );
        nonce++;
    }

46 47 48 49 50
    struct SentMessageEventParams {
        address target;
        address sender;
        bytes message;
        uint256 messageNonce;
51 52
        uint256 minGasLimit;
        uint256 value;
53 54 55 56 57 58
    }

    function doNothing() public {
        return;
    }

59 60 61 62 63 64 65 66
    function triggerSentMessageEvent(
        SentMessageEventParams memory _params
    ) public {
        emit SentMessage(
            _params.target,
            _params.sender,
            _params.message,
            _params.messageNonce,
67
            _params.minGasLimit
68 69 70
        );
    }

71 72 73 74
    function triggerSentMessageEvents(
        SentMessageEventParams[] memory _params
    ) public {
        for (uint256 i = 0; i < _params.length; i++) {
75
            triggerSentMessageEvent(_params[i]);
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
        }
    }

    function triggerRelayedMessageEvents(
        bytes32[] memory _params
    ) public {
        for (uint256 i = 0; i < _params.length; i++) {
            emit RelayedMessage(_params[i]);
        }
    }

    function triggerFailedRelayedMessageEvents(
        bytes32[] memory _params
    ) public {
        for (uint256 i = 0; i < _params.length; i++) {
            emit FailedRelayedMessage(_params[i]);
        }
    }
}