github.com/ethereum-optimism/optimism@v1.7.2/packages/sdk/test/contracts/MockMessenger.sol (about) 1 pragma solidity ^0.8.9; 2 3 import { ICrossDomainMessenger } from "./ICrossDomainMessenger.sol"; 4 5 contract MockMessenger is ICrossDomainMessenger { 6 function xDomainMessageSender() public view returns (address) { 7 return address(0); 8 } 9 10 uint256 public nonce; 11 mapping (bytes32 => bool) public successfulMessages; 12 mapping (bytes32 => bool) public failedMessages; 13 14 // Empty function to satisfy the interface. 15 function sendMessage( 16 address _target, 17 bytes calldata _message, 18 uint32 _gasLimit 19 ) public { 20 emit SentMessage( 21 _target, 22 msg.sender, 23 _message, 24 nonce, 25 _gasLimit 26 ); 27 nonce++; 28 } 29 30 function replayMessage( 31 address _target, 32 address _sender, 33 bytes calldata _message, 34 uint256 _queueIndex, 35 uint32 _oldGasLimit, 36 uint32 _newGasLimit 37 ) public { 38 emit SentMessage( 39 _target, 40 _sender, 41 _message, 42 nonce, 43 _newGasLimit 44 ); 45 nonce++; 46 } 47 48 struct SentMessageEventParams { 49 address target; 50 address sender; 51 bytes message; 52 uint256 messageNonce; 53 uint256 minGasLimit; 54 uint256 value; 55 } 56 57 function doNothing() public { 58 return; 59 } 60 61 function triggerSentMessageEvent( 62 SentMessageEventParams memory _params 63 ) public { 64 emit SentMessage( 65 _params.target, 66 _params.sender, 67 _params.message, 68 _params.messageNonce, 69 _params.minGasLimit 70 ); 71 } 72 73 function triggerSentMessageEvents( 74 SentMessageEventParams[] memory _params 75 ) public { 76 for (uint256 i = 0; i < _params.length; i++) { 77 triggerSentMessageEvent(_params[i]); 78 } 79 } 80 81 function triggerRelayedMessageEvents( 82 bytes32[] memory _params 83 ) public { 84 for (uint256 i = 0; i < _params.length; i++) { 85 emit RelayedMessage(_params[i]); 86 successfulMessages[_params[i]] = true; 87 } 88 } 89 90 function triggerFailedRelayedMessageEvents( 91 bytes32[] memory _params 92 ) public { 93 for (uint256 i = 0; i < _params.length; i++) { 94 emit FailedRelayedMessage(_params[i]); 95 failedMessages[_params[i]] = true; 96 } 97 } 98 }