github.com/ethereum-optimism/optimism@v1.7.2/packages/sdk/test/contracts/MockBridge.sol (about) 1 pragma solidity ^0.8.9; 2 3 import { MockMessenger } from "./MockMessenger.sol"; 4 5 contract MockBridge { 6 event ETHDepositInitiated( 7 address indexed _from, 8 address indexed _to, 9 uint256 _amount, 10 bytes _data 11 ); 12 13 event ERC20DepositInitiated( 14 address indexed _l1Token, 15 address indexed _l2Token, 16 address indexed _from, 17 address _to, 18 uint256 _amount, 19 bytes _data 20 ); 21 22 event ERC20WithdrawalFinalized( 23 address indexed _l1Token, 24 address indexed _l2Token, 25 address indexed _from, 26 address _to, 27 uint256 _amount, 28 bytes _data 29 ); 30 31 event WithdrawalInitiated( 32 address indexed _l1Token, 33 address indexed _l2Token, 34 address indexed _from, 35 address _to, 36 uint256 _amount, 37 bytes _data 38 ); 39 40 event DepositFinalized( 41 address indexed _l1Token, 42 address indexed _l2Token, 43 address indexed _from, 44 address _to, 45 uint256 _amount, 46 bytes _data 47 ); 48 49 event DepositFailed( 50 address indexed _l1Token, 51 address indexed _l2Token, 52 address indexed _from, 53 address _to, 54 uint256 _amount, 55 bytes _data 56 ); 57 58 struct TokenEventStruct { 59 address l1Token; 60 address l2Token; 61 address from; 62 address to; 63 uint256 amount; 64 bytes data; 65 } 66 67 MockMessenger public messenger; 68 69 constructor(MockMessenger _messenger) { 70 messenger = _messenger; 71 } 72 73 function emitERC20DepositInitiated( 74 TokenEventStruct memory _params 75 ) public { 76 emit ERC20DepositInitiated(_params.l1Token, _params.l2Token, _params.from, _params.to, _params.amount, _params.data); 77 messenger.triggerSentMessageEvent( 78 MockMessenger.SentMessageEventParams( 79 address(0), 80 address(0), 81 hex"1234", 82 1234, 83 12345678, 84 0 85 ) 86 ); 87 } 88 89 function emitERC20WithdrawalFinalized( 90 TokenEventStruct memory _params 91 ) public { 92 emit ERC20WithdrawalFinalized(_params.l1Token, _params.l2Token, _params.from, _params.to, _params.amount, _params.data); 93 } 94 95 function emitWithdrawalInitiated( 96 TokenEventStruct memory _params 97 ) public { 98 emit WithdrawalInitiated(_params.l1Token, _params.l2Token, _params.from, _params.to, _params.amount, _params.data); 99 messenger.triggerSentMessageEvent( 100 MockMessenger.SentMessageEventParams( 101 address(0), 102 address(0), 103 hex"1234", 104 1234, 105 12345678, 106 0 107 ) 108 ); 109 } 110 111 function emitDepositFinalized( 112 TokenEventStruct memory _params 113 ) public { 114 emit DepositFinalized(_params.l1Token, _params.l2Token, _params.from, _params.to, _params.amount, _params.data); 115 } 116 117 function emitDepositFailed( 118 TokenEventStruct memory _params 119 ) public { 120 emit DepositFailed(_params.l1Token, _params.l2Token, _params.from, _params.to, _params.amount, _params.data); 121 } 122 123 function depositETH( 124 uint32 _l2GasLimit, 125 bytes memory _data 126 ) 127 public 128 payable 129 { 130 emit ETHDepositInitiated( 131 msg.sender, 132 msg.sender, 133 msg.value, 134 _data 135 ); 136 } 137 138 function withdraw( 139 address _l2Token, 140 uint256 _amount, 141 uint32 _l1Gas, 142 bytes calldata _data 143 ) 144 public 145 payable 146 { 147 emit WithdrawalInitiated( 148 address(0), 149 _l2Token, 150 msg.sender, 151 msg.sender, 152 _amount, 153 _data 154 ); 155 } 156 }