{"abi":[{"type":"constructor","inputs":[{"name":"MessageCancellationDelay","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelL1ToL2Message","inputs":[{"name":"toAddress","type":"uint256","internalType":"uint256"},{"name":"selector","type":"uint256","internalType":"uint256"},{"name":"payload","type":"uint256[]","internalType":"uint256[]"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"consumeMessageFromL2","inputs":[{"name":"fromAddress","type":"uint256","internalType":"uint256"},{"name":"payload","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMaxL1MsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"l1ToL2MessageCancellations","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"l1ToL2MessageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"l1ToL2Messages","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"l2ToL1Messages","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"messageCancellationDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mockConsumeMessageFromL2","inputs":[{"name":"fromAddress","type":"uint256","internalType":"uint256"},{"name":"toAddress","type":"uint256","internalType":"uint256"},{"name":"payload","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockSendMessageFromL2","inputs":[{"name":"fromAddress","type":"uint256","internalType":"uint256"},{"name":"toAddress","type":"uint256","internalType":"uint256"},{"name":"payload","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendMessageToL2","inputs":[{"name":"toAddress","type":"uint256","internalType":"uint256"},{"name":"selector","type":"uint256","internalType":"uint256"},{"name":"payload","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"startL1ToL2MessageCancellation","inputs":[{"name":"toAddress","type":"uint256","internalType":"uint256"},{"name":"selector","type":"uint256","internalType":"uint256"},{"name":"payload","type":"uint256[]","internalType":"uint256[]"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"event","name":"ConsumedMessageToL1","inputs":[{"name":"fromAddress","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"ConsumedMessageToL2","inputs":[{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"toAddress","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"selector","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"payload","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"LogMessageToL1","inputs":[{"name":"fromAddress","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"LogMessageToL2","inputs":[{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"toAddress","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"selector","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"payload","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MessageToL2Canceled","inputs":[{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"toAddress","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"selector","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"payload","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MessageToL2CancellationStarted","inputs":[{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"toAddress","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"selector","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"payload","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516112683803806112688339818101604052602081101561003357600080fd5b505161003e81610044565b506100ed565b6100706040518060600160405280602d815260200161123b602d91398261007360201b610db01760201c565b50565b6000826040516020018082805190602001908083835b602083106100a85780518252601f199092019160209182019101610089565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001209050818155505050565b61113f806100fc6000396000f3fe6080604052600436106100a75760003560e01c80637a98660b116100645780637a98660b146102ae5780638303bd8a146103355780639be446bf1461034a578063a46efaf314610374578063d1fb15091461039e578063dc3f76a114610427576100a7565b8063018cccdf146100ac5780632c9dd5c0146100d35780633e3aa6c51461015557806354eccba4146101e85780636170ff1b146101fd57806377c7d7a914610284575b600080fd5b3480156100b857600080fd5b506100c16104ae565b60408051918252519081900360200190f35b3480156100df57600080fd5b506100c1600480360360408110156100f657600080fd5b81359190810190604081016020820135600160201b81111561011757600080fd5b82018360208201111561012957600080fd5b803590602001918460208302840111600160201b8311171561014a57600080fd5b5090925090506104f3565b6101cf6004803603606081101561016b57600080fd5b813591602081013591810190606081016040820135600160201b81111561019157600080fd5b8201836020820111156101a357600080fd5b803590602001918460208302840111600160201b831117156101c457600080fd5b509092509050610652565b6040805192835260208301919091528051918290030190f35b3480156101f457600080fd5b506100c16107f6565b34801561020957600080fd5b506100c16004803603608081101561022057600080fd5b813591602081013591810190606081016040820135600160201b81111561024657600080fd5b82018360208201111561025857600080fd5b803590602001918460208302840111600160201b8311171561027957600080fd5b919350915035610802565b34801561029057600080fd5b506100c1600480360360208110156102a757600080fd5b5035610a13565b3480156102ba57600080fd5b506100c1600480360360808110156102d157600080fd5b813591602081013591810190606081016040820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460208302840111600160201b8311171561032a57600080fd5b919350915035610a2e565b34801561034157600080fd5b506100c1610b41565b34801561035657600080fd5b506100c16004803603602081101561036d57600080fd5b5035610b64565b34801561038057600080fd5b506100c16004803603602081101561039757600080fd5b5035610b6e565b3480156103aa57600080fd5b50610425600480360360608110156103c157600080fd5b813591602081013591810190606081016040820135600160201b8111156103e757600080fd5b8201836020820111156103f957600080fd5b803590602001918460208302840111600160201b8311171561041a57600080fd5b509092509050610b78565b005b34801561043357600080fd5b506104256004803603606081101561044a57600080fd5b813591602081013591810190606081016040820135600160201b81111561047057600080fd5b82018360208201111561048257600080fd5b803590602001918460208302840111600160201b831117156104a357600080fd5b509092509050610c5f565b60006104ee6040518060400160405280602081526020017f535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4e4f4e4345815250610e2a565b905090565b60008084336001600160a01b03168585905086866040516020018086815260200185815260200184815260200183836020028082843780830192505050955050505050506040516020818303038152906040528051906020012090506000610559610ea7565b60008381526020919091526040902054116105bb576040805162461bcd60e51b815260206004820152601a60248201527f494e56414c49445f4d4553534147455f544f5f434f4e53554d45000000000000604482015290519081900360640190fd5b336001600160a01b0316857f7a06c571aa77f34d9706c51e5d8122b5595aebeaa34233bfe866f22befb973b1868660405180806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f19169092018290039550909350505050a36001610633610ea7565b6000838152602091909152604090208054919091039055949350505050565b600080600034116106945760405162461bcd60e51b81526004018080602001828103825260218152602001806110e96021913960400191505060405180910390fd5b61069c6107f6565b3411156106f0576040805162461bcd60e51b815260206004820152601760248201527f4d41585f4c315f4d53475f4645455f4558434545444544000000000000000000604482015290519081900360640190fd5b60006106fa6104ae565b905061073e6040518060400160405280602081526020017f535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4e4f4e434581525082600101610db0565b8587336001600160a01b03167fdb80dd488acf86d17c747445b0eabb5d57c541d3bd7b6b87af987858e5066b2b8888863460405180806020018481526020018381526020018281038252868682818152602001925060200280828437600083820152604051601f909101601f191690920182900397509095505050505050a460006107cc8888888886610eca565b9050346001016107da610f3e565b6000838152602091909152604090205597909650945050505050565b670de0b6b3a764000090565b60008486336001600160a01b03167f8abd2ec2e0a10c82f5b60ea00455fa96c41fd144f225fcc52b8d83d94f803ed887878760405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a4600061088a8787878787610eca565b90506000610896610f3e565b600083815260209190915260409020549050806108f1576040805162461bcd60e51b81526020600482015260146024820152731393d7d35154d4d051d157d513d7d0d05390d15360621b604482015290519081900360640190fd5b60006108fb610f61565b600084815260209190915260409020549050806109495760405162461bcd60e51b81526004018080602001828103825260228152602001806110c76022913960400191505060405180910390fd5b6000610953610b41565b82019050818110156109ac576040805162461bcd60e51b815260206004820152601c60248201527f43414e43454c5f414c4c4f5745445f54494d455f4f564552464c4f5700000000604482015290519081900360640190fd5b804210156109eb5760405162461bcd60e51b8152600401808060200182810382526024815260200180610ffd6024913960400191505060405180910390fd5b60006109f5610f3e565b60008681526020919091526040902055509198975050505050505050565b6000610a1d610f3e565b600092835260205250604090205490565b60008486336001600160a01b03167f2e00dccd686fd6823ec7dc3e125582aa82881b6ff5f6b5a73856e1ea8338a3be87878760405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a46000610ab68787878787610eca565b90506000610ac2610f3e565b60008381526020919091526040902054905080610b1d576040805162461bcd60e51b81526020600482015260146024820152731393d7d35154d4d051d157d513d7d0d05390d15360621b604482015290519081900360640190fd5b42610b26610f61565b60008481526020919091526040902055509695505050505050565b60006104ee6040518060600160405280602d8152602001611051602d9139610e2a565b6000610a1d610f61565b6000610a1d610ea7565b600084848484905085856040516020018086815260200185815260200184815260200183836020028082843780830192505050955050505050506040516020818303038152906040528051906020012090506001610bd4610ea7565b60008381526020918252604090819020805490930190925581518181528082018590526001600160a01b0387169288927f4264ac208b5fde633ccdd42e0f12c3d6d443a4f3779bbf886925b94665b63a22928892889282918201908590850280828437600083820152604051601f909101601f19169092018290039550909350505050a35050505050565b600084848484905085856040516020018086815260200185815260200184815260200183836020028082843780830192505050955050505050506040516020818303038152906040528051906020012090506000610cbb610ea7565b6000838152602091909152604090205411610d1d576040805162461bcd60e51b815260206004820152601a60248201527f494e56414c49445f4d4553534147455f544f5f434f4e53554d45000000000000604482015290519081900360640190fd5b336001600160a01b0316857f7a06c571aa77f34d9706c51e5d8122b5595aebeaa34233bfe866f22befb973b1858560405180806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f19169092018290039550909350505050a36001610d95610ea7565b60009283526020526040909120805491909103905550505050565b6000826040516020018082805190602001908083835b60208310610de55780518252601f199092019160209182019101610dc6565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001209050818155505050565b600080826040516020018082805190602001908083835b60208310610e605780518252601f199092019160209182019101610e41565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012090508054915050919050565b60006104ee60405180606001604052806023815260200161107e60239139610f80565b6000336001600160a01b0316868387878790508888604051602001808881526020018781526020018681526020018581526020018481526020018383602002808284378083019250505097505050505050505060405160208183030381529060405280519060200120905095945050505050565b60006104ee6040518060600160405280602681526020016110a160269139610f80565b60006104ee604051806060016040528060308152602001611021603091395b600080826040516020018082805190602001908083835b60208310610fb65780518252601f199092019160209182019101610f97565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012090508091505091905056fe4d4553534147455f43414e43454c4c4154494f4e5f4e4f545f414c4c4f5745445f594554535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f4d41505050494e47535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f44454c4159535441524b4e45545f312e305f4d5347494e475f4c32544f4c315f4d41505050494e47535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4d41505050494e475f56324d4553534147455f43414e43454c4c4154494f4e5f4e4f545f5245515545535445444c315f4d53475f4645455f4d5553545f42455f475245415445525f5448414e5f30a26469706673582212202147135ed213514201a7d05d2211409f2cc0244858b3876d10baedaf83e0a34064736f6c634300060c0033535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f44454c4159","sourceMap":"101:1216:20:-:0;;;159:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;159:120:20;222:50;159:120;222:24;:50::i;:::-;159:120;101:1216;;2198:162:22;2275:78;2301:35;;;;;;;;;;;;;;;;;2338:14;2275:25;;;;;:78;;:::i;:::-;2198:162;:::o;1680:192:21:-;1756:12;1798:4;1781:22;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1781:22:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1771:33;;;;;;1756:48;;1850:5;1844:4;1837:19;1823:43;;;:::o;101:1216:20:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100a75760003560e01c80637a98660b116100645780637a98660b146102ae5780638303bd8a146103355780639be446bf1461034a578063a46efaf314610374578063d1fb15091461039e578063dc3f76a114610427576100a7565b8063018cccdf146100ac5780632c9dd5c0146100d35780633e3aa6c51461015557806354eccba4146101e85780636170ff1b146101fd57806377c7d7a914610284575b600080fd5b3480156100b857600080fd5b506100c16104ae565b60408051918252519081900360200190f35b3480156100df57600080fd5b506100c1600480360360408110156100f657600080fd5b81359190810190604081016020820135600160201b81111561011757600080fd5b82018360208201111561012957600080fd5b803590602001918460208302840111600160201b8311171561014a57600080fd5b5090925090506104f3565b6101cf6004803603606081101561016b57600080fd5b813591602081013591810190606081016040820135600160201b81111561019157600080fd5b8201836020820111156101a357600080fd5b803590602001918460208302840111600160201b831117156101c457600080fd5b509092509050610652565b6040805192835260208301919091528051918290030190f35b3480156101f457600080fd5b506100c16107f6565b34801561020957600080fd5b506100c16004803603608081101561022057600080fd5b813591602081013591810190606081016040820135600160201b81111561024657600080fd5b82018360208201111561025857600080fd5b803590602001918460208302840111600160201b8311171561027957600080fd5b919350915035610802565b34801561029057600080fd5b506100c1600480360360208110156102a757600080fd5b5035610a13565b3480156102ba57600080fd5b506100c1600480360360808110156102d157600080fd5b813591602081013591810190606081016040820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460208302840111600160201b8311171561032a57600080fd5b919350915035610a2e565b34801561034157600080fd5b506100c1610b41565b34801561035657600080fd5b506100c16004803603602081101561036d57600080fd5b5035610b64565b34801561038057600080fd5b506100c16004803603602081101561039757600080fd5b5035610b6e565b3480156103aa57600080fd5b50610425600480360360608110156103c157600080fd5b813591602081013591810190606081016040820135600160201b8111156103e757600080fd5b8201836020820111156103f957600080fd5b803590602001918460208302840111600160201b8311171561041a57600080fd5b509092509050610b78565b005b34801561043357600080fd5b506104256004803603606081101561044a57600080fd5b813591602081013591810190606081016040820135600160201b81111561047057600080fd5b82018360208201111561048257600080fd5b803590602001918460208302840111600160201b831117156104a357600080fd5b509092509050610c5f565b60006104ee6040518060400160405280602081526020017f535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4e4f4e4345815250610e2a565b905090565b60008084336001600160a01b03168585905086866040516020018086815260200185815260200184815260200183836020028082843780830192505050955050505050506040516020818303038152906040528051906020012090506000610559610ea7565b60008381526020919091526040902054116105bb576040805162461bcd60e51b815260206004820152601a60248201527f494e56414c49445f4d4553534147455f544f5f434f4e53554d45000000000000604482015290519081900360640190fd5b336001600160a01b0316857f7a06c571aa77f34d9706c51e5d8122b5595aebeaa34233bfe866f22befb973b1868660405180806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f19169092018290039550909350505050a36001610633610ea7565b6000838152602091909152604090208054919091039055949350505050565b600080600034116106945760405162461bcd60e51b81526004018080602001828103825260218152602001806110e96021913960400191505060405180910390fd5b61069c6107f6565b3411156106f0576040805162461bcd60e51b815260206004820152601760248201527f4d41585f4c315f4d53475f4645455f4558434545444544000000000000000000604482015290519081900360640190fd5b60006106fa6104ae565b905061073e6040518060400160405280602081526020017f535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4e4f4e434581525082600101610db0565b8587336001600160a01b03167fdb80dd488acf86d17c747445b0eabb5d57c541d3bd7b6b87af987858e5066b2b8888863460405180806020018481526020018381526020018281038252868682818152602001925060200280828437600083820152604051601f909101601f191690920182900397509095505050505050a460006107cc8888888886610eca565b9050346001016107da610f3e565b6000838152602091909152604090205597909650945050505050565b670de0b6b3a764000090565b60008486336001600160a01b03167f8abd2ec2e0a10c82f5b60ea00455fa96c41fd144f225fcc52b8d83d94f803ed887878760405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a4600061088a8787878787610eca565b90506000610896610f3e565b600083815260209190915260409020549050806108f1576040805162461bcd60e51b81526020600482015260146024820152731393d7d35154d4d051d157d513d7d0d05390d15360621b604482015290519081900360640190fd5b60006108fb610f61565b600084815260209190915260409020549050806109495760405162461bcd60e51b81526004018080602001828103825260228152602001806110c76022913960400191505060405180910390fd5b6000610953610b41565b82019050818110156109ac576040805162461bcd60e51b815260206004820152601c60248201527f43414e43454c5f414c4c4f5745445f54494d455f4f564552464c4f5700000000604482015290519081900360640190fd5b804210156109eb5760405162461bcd60e51b8152600401808060200182810382526024815260200180610ffd6024913960400191505060405180910390fd5b60006109f5610f3e565b60008681526020919091526040902055509198975050505050505050565b6000610a1d610f3e565b600092835260205250604090205490565b60008486336001600160a01b03167f2e00dccd686fd6823ec7dc3e125582aa82881b6ff5f6b5a73856e1ea8338a3be87878760405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a46000610ab68787878787610eca565b90506000610ac2610f3e565b60008381526020919091526040902054905080610b1d576040805162461bcd60e51b81526020600482015260146024820152731393d7d35154d4d051d157d513d7d0d05390d15360621b604482015290519081900360640190fd5b42610b26610f61565b60008481526020919091526040902055509695505050505050565b60006104ee6040518060600160405280602d8152602001611051602d9139610e2a565b6000610a1d610f61565b6000610a1d610ea7565b600084848484905085856040516020018086815260200185815260200184815260200183836020028082843780830192505050955050505050506040516020818303038152906040528051906020012090506001610bd4610ea7565b60008381526020918252604090819020805490930190925581518181528082018590526001600160a01b0387169288927f4264ac208b5fde633ccdd42e0f12c3d6d443a4f3779bbf886925b94665b63a22928892889282918201908590850280828437600083820152604051601f909101601f19169092018290039550909350505050a35050505050565b600084848484905085856040516020018086815260200185815260200184815260200183836020028082843780830192505050955050505050506040516020818303038152906040528051906020012090506000610cbb610ea7565b6000838152602091909152604090205411610d1d576040805162461bcd60e51b815260206004820152601a60248201527f494e56414c49445f4d4553534147455f544f5f434f4e53554d45000000000000604482015290519081900360640190fd5b336001600160a01b0316857f7a06c571aa77f34d9706c51e5d8122b5595aebeaa34233bfe866f22befb973b1858560405180806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f19169092018290039550909350505050a36001610d95610ea7565b60009283526020526040909120805491909103905550505050565b6000826040516020018082805190602001908083835b60208310610de55780518252601f199092019160209182019101610dc6565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001209050818155505050565b600080826040516020018082805190602001908083835b60208310610e605780518252601f199092019160209182019101610e41565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012090508054915050919050565b60006104ee60405180606001604052806023815260200161107e60239139610f80565b6000336001600160a01b0316868387878790508888604051602001808881526020018781526020018681526020018581526020018481526020018383602002808284378083019250505097505050505050505060405160208183030381529060405280519060200120905095945050505050565b60006104ee6040518060600160405280602681526020016110a160269139610f80565b60006104ee604051806060016040528060308152602001611021603091395b600080826040516020018082805190602001908083835b60208310610fb65780518252601f199092019160209182019101610f97565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012090508091505091905056fe4d4553534147455f43414e43454c4c4154494f4e5f4e4f545f414c4c4f5745445f594554535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f4d41505050494e47535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f44454c4159535441524b4e45545f312e305f4d5347494e475f4c32544f4c315f4d41505050494e47535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4d41505050494e475f56324d4553534147455f43414e43454c4c4154494f4e5f4e4f545f5245515545535445444c315f4d53475f4645455f4d5553545f42455f475245415445525f5448414e5f30a26469706673582212202147135ed213514201a7d05d2211409f2cc0244858b3876d10baedaf83e0a34064736f6c634300060c0033","sourceMap":"101:1216:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1901:133:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4529:497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4529:497:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4529:497:22;;;;;;;;;;-1:-1:-1;4529:497:22;;-1:-1:-1;4529:497:22;-1:-1:-1;4529:497:22;:::i;3564:844::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3564:844:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3564:844:22;;;;;;;;;;-1:-1:-1;3564:844:22;;-1:-1:-1;3564:844:22;-1:-1:-1;3564:844:22;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1047:103;;;;;;;;;;;;;:::i;5622:1148::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5622:1148:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5622:1148:22;;;;;;;;;;;;-1:-1:-1;5622:1148:22;-1:-1:-1;5622:1148:22;;:::i;1297:122::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1297:122:22;;:::i;5032:584::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5032:584:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5032:584:22;;;;;;;;;;;;-1:-1:-1;5032:584:22;-1:-1:-1;5032:584:22;;:::i;2040:152::-;;;;;;;;;;;;;:::i;2564:146::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2564:146:22;;:::i;1425:122::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1425:122:22;;:::i;337:444:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;337:444:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;337:444:20;;;;;;;;;;-1:-1:-1;337:444:20;;-1:-1:-1;337:444:20;-1:-1:-1;337:444:20;:::i;:::-;;854:461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;854:461:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;854:461:20;;;;;;;;;;-1:-1:-1;854:461:20;;-1:-1:-1;854:461:20;-1:-1:-1;854:461:20;:::i;1901:133:22:-;1952:7;1978:49;2004:22;;;;;;;;;;;;;;;;;1978:25;:49::i;:::-;1971:56;;1901:133;:::o;4529:497::-;4659:7;4682:15;4740:11;4761:10;-1:-1:-1;;;;;4753:19:22;4774:7;;:14;;4790:7;;4723:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4700:108;;;;;;4682:126;;4855:1;4827:16;:14;:16::i;:::-;:25;;;;;;;;;;;;;:29;4819:68;;;;;-1:-1:-1;;;4819:68:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;4935:10;-1:-1:-1;;;;;4902:53:22;4922:11;4902:53;4947:7;;4902:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4902:53:22;;;;;;;;-1:-1:-1;4902:53:22;;-1:-1:-1;;;;4902:53:22;4994:1;4965:16;:14;:16::i;:::-;:25;;;;;;;;;;;;:30;;;;;;;;:25;4529:497;-1:-1:-1;;;;4529:497:22:o;3564:844::-;3719:7;3728;3767:1;3755:9;:13;3747:59;;;;-1:-1:-1;;;3747:59:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3837:16;:14;:16::i;:::-;3824:9;:29;;3816:65;;;;;-1:-1:-1;;;3816:65:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;3891:13;3907:20;:18;:20::i;:::-;3891:36;;3937:60;3963:22;;;;;;;;;;;;;;;;;3987:5;3995:1;3987:9;3937:25;:60::i;:::-;4050:8;4039:9;4027:10;-1:-1:-1;;;;;4012:74:22;;4060:7;;4069:5;4076:9;4012:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4012:74:22;;;;;;;;-1:-1:-1;4012:74:22;;-1:-1:-1;;;;;;4012:74:22;4096:15;4114:53;4131:9;4142:8;4152:7;;4161:5;4114:16;:53::i;:::-;4096:71;;4355:9;4367:1;4355:13;4327:16;:14;:16::i;:::-;:25;;;;;;;;;;;;:41;:25;4395:5;;-1:-1:-1;3564:844:22;-1:-1:-1;;;;;3564:844:22:o;1047:103::-;1033:7;1047:103;:::o;5622:1148::-;5796:7;5863:8;5852:9;5840:10;-1:-1:-1;;;;;5820:68:22;;5873:7;;5882:5;5820:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5820:68:22;;;;;;;;-1:-1:-1;5820:68:22;;-1:-1:-1;;;;;5820:68:22;6106:15;6124:53;6141:9;6152:8;6162:7;;6171:5;6124:16;:53::i;:::-;6106:71;;6187:21;6211:16;:14;:16::i;:::-;:25;;;;;;;;;;;;;;-1:-1:-1;6254:18:22;6246:51;;;;;-1:-1:-1;;;6246:51:22;;;;;;;;;;;;-1:-1:-1;;;6246:51:22;;;;;;;;;;;;;;;6308:19;6330:28;:26;:28::i;:::-;:37;;;;;;;;;;;;;;-1:-1:-1;6385:16:22;6377:63;;;;-1:-1:-1;;;6377:63:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6451:25;6493:26;:24;:26::i;:::-;6479:11;:40;6451:68;;6558:11;6537:17;:32;;6529:73;;;;;-1:-1:-1;;;6529:73:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:17;6620:15;:36;;6612:85;;;;-1:-1:-1;;;6612:85:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6736:1;6708:16;:14;:16::i;:::-;:25;;;;;;;;;;;;:29;-1:-1:-1;6708:25:22;;5622:1148;-1:-1:-1;;;;;;;;5622:1148:22:o;1297:122::-;1361:7;1387:16;:14;:16::i;:::-;:25;;;;;;-1:-1:-1;1387:25:22;;;;;1297:122::o;5032:584::-;5217:7;5295:8;5284:9;5272:10;-1:-1:-1;;;;;5241:79:22;;5305:7;;5314:5;5241:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5241:79:22;;;;;;;;-1:-1:-1;5241:79:22;;-1:-1:-1;;;;;5241:79:22;5330:15;5348:53;5365:9;5376:8;5386:7;;5395:5;5348:16;:53::i;:::-;5330:71;;5411:21;5435:16;:14;:16::i;:::-;:25;;;;;;;;;;;;;;-1:-1:-1;5478:17:22;5470:50;;;;;-1:-1:-1;;;5470:50:22;;;;;;;;;;;;-1:-1:-1;;;5470:50:22;;;;;;;;;;;;;;;5570:15;5530:28;:26;:28::i;:::-;:37;;;;;;;;;;;;:55;-1:-1:-1;5530:37:22;5032:584;-1:-1:-1;;;;;;5032:584:22:o;2040:152::-;2097:7;2123:62;2149:35;;;;;;;;;;;;;;;;;2123:25;:62::i;2564:146::-;2640:7;2666:28;:26;:28::i;1425:122::-;1489:7;1515:16;:14;:16::i;337:444:20:-;485:15;543:11;556:9;567:7;;:14;;583:7;;526:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;503:98;;;;;;485:116;;640:1;611:16;:14;:16::i;:::-;:25;;;;;;;;;;;;;:30;;;;;;;;718:56;;;;;;;;;;;-1:-1:-1;;;;;718:56:20;;;733:11;;718:56;;766:7;;;;718:56;;;;;766:7;;718:56;;;766:7;718:56;;;;;;;;;;;;;-1:-1:-1;;718:56:20;;;;;;;;-1:-1:-1;718:56:20;;-1:-1:-1;;;;718:56:20;337:444;;;;;:::o;854:461::-;1005:15;1063:11;1076:9;1087:7;;:14;;1103:7;;1046:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:98;;;;;;1005:116;;1168:1;1140:16;:14;:16::i;:::-;:25;;;;;;;;;;;;;:29;1132:68;;;;;-1:-1:-1;;;1132:68:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;1248:10;-1:-1:-1;;;;;1215:53:20;1235:11;1215:53;1260:7;;1215:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1215:53:20;;;;;;;;-1:-1:-1;1215:53:20;;-1:-1:-1;;;;1215:53:20;1307:1;1278:16;:14;:16::i;:::-;:25;;;;;;;;;;:30;;;;;;;;-1:-1:-1;;;;854:461:20:o;1680:192:21:-;1756:12;1798:4;1781:22;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1781:22:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1771:33;;;;;;1756:48;;1850:5;1844:4;1837:19;1823:43;;;:::o;1465:209::-;1530:14;1556:12;1598:4;1581:22;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1581:22:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1571:33;;;;;;1556:48;;1653:4;1647:11;1637:21;;1623:45;;;;:::o;1727:168:22:-;1776:35;1830:58;1867:20;;;;;;;;;;;;;;;;;1830:36;:58::i;3021:481::-;3188:7;3299:10;-1:-1:-1;;;;;3291:19:22;3332:9;3363:5;3390:8;3420:7;;:14;;3456:7;;3253:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3226:269;;;;;;3207:288;;3021:481;;;;;;;:::o;1553:168::-;1602:35;1656:58;1693:20;;;;;;;;;;;;;;;;;1656:36;:58::i;2716:221::-;2801:35;2859:71;2896:33;;;;;;;;;;;;;;;;;258:298:21;358:50;424:16;470:4;453:22;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;453:22:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;443:33;;;;;;424:52;;532:8;509:31;;495:55;;;;:::o","linkReferences":{}},"methodIdentifiers":{"cancelL1ToL2Message(uint256,uint256,uint256[],uint256)":"6170ff1b","consumeMessageFromL2(uint256,uint256[])":"2c9dd5c0","getMaxL1MsgFee()":"54eccba4","l1ToL2MessageCancellations(bytes32)":"9be446bf","l1ToL2MessageNonce()":"018cccdf","l1ToL2Messages(bytes32)":"77c7d7a9","l2ToL1Messages(bytes32)":"a46efaf3","messageCancellationDelay()":"8303bd8a","mockConsumeMessageFromL2(uint256,uint256,uint256[])":"dc3f76a1","mockSendMessageFromL2(uint256,uint256,uint256[])":"d1fb1509","sendMessageToL2(uint256,uint256,uint256[])":"3e3aa6c5","startL1ToL2MessageCancellation(uint256,uint256,uint256[],uint256)":"7a98660b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"MessageCancellationDelay\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"ConsumedMessageToL1\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"ConsumedMessageToL2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"LogMessageToL1\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"LogMessageToL2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MessageToL2Canceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MessageToL2CancellationStarted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"cancelL1ToL2Message\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"consumeMessageFromL2\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxL1MsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"l1ToL2MessageCancellations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1ToL2MessageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"l1ToL2Messages\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"l2ToL1Messages\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageCancellationDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"mockConsumeMessageFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"mockSendMessageFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"sendMessageToL2\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"startL1ToL2MessageCancellation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelL1ToL2Message(uint256,uint256,uint256[],uint256)\":{\"notice\":\"Cancels an L1 to L2 message, this function should be called at least messageCancellationDelay() seconds after the call to startL1ToL2MessageCancellation(). A message may only be cancelled by its sender. If the message is missing, the call will revert. Note that the message fee is not refunded.\"},\"consumeMessageFromL2(uint256,uint256[])\":{\"notice\":\"Consumes a message that was sent from an L2 contract. Returns the hash of the message.\"},\"getMaxL1MsgFee()\":{\"notice\":\"Returns the max fee (in Wei) that StarkNet will accept per single message.\"},\"l1ToL2MessageCancellations(bytes32)\":{\"notice\":\"Returns the timestamp at the time cancelL1ToL2Message was called with a message matching 'msgHash'. The function returns 0 if cancelL1ToL2Message was never called.\"},\"l1ToL2Messages(bytes32)\":{\"notice\":\"Returns the msg_fee + 1 for the message with the given 'msgHash', or 0 if no message with such a hash is pending.\"},\"mockConsumeMessageFromL2(uint256,uint256,uint256[])\":{\"notice\":\"Mocks consumption of a message from L2 to L1.\"},\"mockSendMessageFromL2(uint256,uint256,uint256[])\":{\"notice\":\"Mocks a message from L2 to L1.\"},\"sendMessageToL2(uint256,uint256,uint256[])\":{\"notice\":\"Sends a message to an L2 contract.\"},\"startL1ToL2MessageCancellation(uint256,uint256,uint256[],uint256)\":{\"notice\":\"Starts the cancellation of an L1 to L2 message. A message can be canceled messageCancellationDelay() seconds after this function is called. Note: This function may only be called for a message that is currently pending and the caller must be the sender of the that message.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MockStarknetMessaging.sol\":\"MockStarknetMessaging\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/IStarknetMessaging.sol\":{\"keccak256\":\"0x75d3dad61854e3115a97fa314066cd3ff4544fa712bea1a6595bbac7ef8e92f8\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://d5a07d8e15bfba827443a9f79f0465f1e24df4960a581754c6139964b56124c5\",\"dweb:/ipfs/QmUqBMSiC8b3T6L6mRFcxR83ByHK1q2KVo3nCoKsph8DJH\"]},\"src/IStarknetMessagingEvents.sol\":{\"keccak256\":\"0xfeac71f229049b84eb47fbdae456f9de2074016828a4529e00abd4eddc8bb844\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://c9acd4424ec21178670c3b1793f2f8d2c4d59ff0f22063ba5f60100f18f47b95\",\"dweb:/ipfs/QmTHjQARTTVRFnCeThphAVocQYSk2hXCYT2yDr6TmZccJP\"]},\"src/MockStarknetMessaging.sol\":{\"keccak256\":\"0xc70ac295b478f869a8ba3b95b9698ae2263a38a702993f622b3e36702f209f56\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://fcdc2494eafde351987c3ada66be602edc379cf7b41917563b6bea6d13b88150\",\"dweb:/ipfs/QmYUeK8GBydyFz6VfV6DzEWyEZt8SxLgDcLKGveZ7KVTRi\"]},\"src/NamedStorage.sol\":{\"keccak256\":\"0x014ba48551c965e42b7e8f2e22f6f5f559f1ecaa6b1ce2dbf965e2b9808514ee\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://fb77540fd0d17b382d61e597862b29d164256f7224f0f39a534d2e1c3c161140\",\"dweb:/ipfs/QmYCombekr8CQvCCjBDFVniNCnreg9Z2TT78ZjdS3FGNsk\"]},\"src/StarknetMessaging.sol\":{\"keccak256\":\"0x719a1abf0a6214cadd3e48f3dcdf270a96b23ab441b87d5df254ee703ab75233\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://e8844f6e9e9cf6f5ec223f02d43ab1b1897263b4256bbc3ff8c9c6d8040d039c\",\"dweb:/ipfs/QmQ2yDB3vLYmBdLswLqAVe59RgVtpffSTyvPp4eVdaixV9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"MessageCancellationDelay","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"fromAddress","type":"uint256","indexed":true},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256[]","name":"payload","type":"uint256[]","indexed":false}],"type":"event","name":"ConsumedMessageToL1","anonymous":false},{"inputs":[{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"toAddress","type":"uint256","indexed":true},{"internalType":"uint256","name":"selector","type":"uint256","indexed":true},{"internalType":"uint256[]","name":"payload","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"ConsumedMessageToL2","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromAddress","type":"uint256","indexed":true},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256[]","name":"payload","type":"uint256[]","indexed":false}],"type":"event","name":"LogMessageToL1","anonymous":false},{"inputs":[{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"toAddress","type":"uint256","indexed":true},{"internalType":"uint256","name":"selector","type":"uint256","indexed":true},{"internalType":"uint256[]","name":"payload","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"LogMessageToL2","anonymous":false},{"inputs":[{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"toAddress","type":"uint256","indexed":true},{"internalType":"uint256","name":"selector","type":"uint256","indexed":true},{"internalType":"uint256[]","name":"payload","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"MessageToL2Canceled","anonymous":false},{"inputs":[{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"toAddress","type":"uint256","indexed":true},{"internalType":"uint256","name":"selector","type":"uint256","indexed":true},{"internalType":"uint256[]","name":"payload","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"MessageToL2CancellationStarted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"toAddress","type":"uint256"},{"internalType":"uint256","name":"selector","type":"uint256"},{"internalType":"uint256[]","name":"payload","type":"uint256[]"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancelL1ToL2Message","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"fromAddress","type":"uint256"},{"internalType":"uint256[]","name":"payload","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"consumeMessageFromL2","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getMaxL1MsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"l1ToL2MessageCancellations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1ToL2MessageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"l1ToL2Messages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"l2ToL1Messages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageCancellationDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"fromAddress","type":"uint256"},{"internalType":"uint256","name":"toAddress","type":"uint256"},{"internalType":"uint256[]","name":"payload","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"mockConsumeMessageFromL2"},{"inputs":[{"internalType":"uint256","name":"fromAddress","type":"uint256"},{"internalType":"uint256","name":"toAddress","type":"uint256"},{"internalType":"uint256[]","name":"payload","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"mockSendMessageFromL2"},{"inputs":[{"internalType":"uint256","name":"toAddress","type":"uint256"},{"internalType":"uint256","name":"selector","type":"uint256"},{"internalType":"uint256[]","name":"payload","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"sendMessageToL2","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"toAddress","type":"uint256"},{"internalType":"uint256","name":"selector","type":"uint256"},{"internalType":"uint256[]","name":"payload","type":"uint256[]"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startL1ToL2MessageCancellation","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"cancelL1ToL2Message(uint256,uint256,uint256[],uint256)":{"notice":"Cancels an L1 to L2 message, this function should be called at least messageCancellationDelay() seconds after the call to startL1ToL2MessageCancellation(). A message may only be cancelled by its sender. If the message is missing, the call will revert. Note that the message fee is not refunded."},"consumeMessageFromL2(uint256,uint256[])":{"notice":"Consumes a message that was sent from an L2 contract. Returns the hash of the message."},"getMaxL1MsgFee()":{"notice":"Returns the max fee (in Wei) that StarkNet will accept per single message."},"l1ToL2MessageCancellations(bytes32)":{"notice":"Returns the timestamp at the time cancelL1ToL2Message was called with a message matching 'msgHash'. The function returns 0 if cancelL1ToL2Message was never called."},"l1ToL2Messages(bytes32)":{"notice":"Returns the msg_fee + 1 for the message with the given 'msgHash', or 0 if no message with such a hash is pending."},"mockConsumeMessageFromL2(uint256,uint256,uint256[])":{"notice":"Mocks consumption of a message from L2 to L1."},"mockSendMessageFromL2(uint256,uint256,uint256[])":{"notice":"Mocks a message from L2 to L1."},"sendMessageToL2(uint256,uint256,uint256[])":{"notice":"Sends a message to an L2 contract."},"startL1ToL2MessageCancellation(uint256,uint256,uint256[],uint256)":{"notice":"Starts the cancellation of an L1 to L2 message. A message can be canceled messageCancellationDelay() seconds after this function is called. Note: This function may only be called for a message that is currently pending and the caller must be the sender of the that message."}},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MockStarknetMessaging.sol":"MockStarknetMessaging"},"libraries":{}},"sources":{"src/IStarknetMessaging.sol":{"keccak256":"0x75d3dad61854e3115a97fa314066cd3ff4544fa712bea1a6595bbac7ef8e92f8","urls":["bzz-raw://d5a07d8e15bfba827443a9f79f0465f1e24df4960a581754c6139964b56124c5","dweb:/ipfs/QmUqBMSiC8b3T6L6mRFcxR83ByHK1q2KVo3nCoKsph8DJH"],"license":"Apache-2.0."},"src/IStarknetMessagingEvents.sol":{"keccak256":"0xfeac71f229049b84eb47fbdae456f9de2074016828a4529e00abd4eddc8bb844","urls":["bzz-raw://c9acd4424ec21178670c3b1793f2f8d2c4d59ff0f22063ba5f60100f18f47b95","dweb:/ipfs/QmTHjQARTTVRFnCeThphAVocQYSk2hXCYT2yDr6TmZccJP"],"license":"Apache-2.0."},"src/MockStarknetMessaging.sol":{"keccak256":"0xc70ac295b478f869a8ba3b95b9698ae2263a38a702993f622b3e36702f209f56","urls":["bzz-raw://fcdc2494eafde351987c3ada66be602edc379cf7b41917563b6bea6d13b88150","dweb:/ipfs/QmYUeK8GBydyFz6VfV6DzEWyEZt8SxLgDcLKGveZ7KVTRi"],"license":"Apache-2.0."},"src/NamedStorage.sol":{"keccak256":"0x014ba48551c965e42b7e8f2e22f6f5f559f1ecaa6b1ce2dbf965e2b9808514ee","urls":["bzz-raw://fb77540fd0d17b382d61e597862b29d164256f7224f0f39a534d2e1c3c161140","dweb:/ipfs/QmYCombekr8CQvCCjBDFVniNCnreg9Z2TT78ZjdS3FGNsk"],"license":"Apache-2.0."},"src/StarknetMessaging.sol":{"keccak256":"0x719a1abf0a6214cadd3e48f3dcdf270a96b23ab441b87d5df254ee703ab75233","urls":["bzz-raw://e8844f6e9e9cf6f5ec223f02d43ab1b1897263b4256bbc3ff8c9c6d8040d039c","dweb:/ipfs/QmQ2yDB3vLYmBdLswLqAVe59RgVtpffSTyvPp4eVdaixV9"],"license":"Apache-2.0."}},"version":1},"ast":{"absolutePath":"src/MockStarknetMessaging.sol","id":40817,"exportedSymbols":{"MockStarknetMessaging":[40816]},"nodeType":"SourceUnit","src":"40:1278:20","nodes":[{"id":40712,"nodeType":"PragmaDirective","src":"40:24:20","nodes":[],"literals":["solidity","^","0.6",".12"]},{"id":40713,"nodeType":"ImportDirective","src":"66:33:20","nodes":[],"absolutePath":"src/StarknetMessaging.sol","file":"./StarknetMessaging.sol","scope":40817,"sourceUnit":41530,"symbolAliases":[],"unitAlias":""},{"id":40816,"nodeType":"ContractDefinition","src":"101:1216:20","nodes":[{"id":40725,"nodeType":"FunctionDefinition","src":"159:120:20","nodes":[],"body":{"id":40724,"nodeType":"Block","src":"212:67:20","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":40721,"name":"MessageCancellationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40717,"src":"247:24:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40720,"name":"messageCancellationDelay","nodeType":"Identifier","overloadedDeclarations":[41165,41178],"referencedDeclaration":41178,"src":"222:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":40722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"222:50:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40723,"nodeType":"ExpressionStatement","src":"222:50:20"}]},"documentation":null,"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":40718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40717,"mutability":"mutable","name":"MessageCancellationDelay","nodeType":"VariableDeclaration","overrides":null,"scope":40725,"src":"171:32:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40716,"name":"uint256","nodeType":"ElementaryTypeName","src":"171:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"170:34:20"},"returnParameters":{"id":40719,"nodeType":"ParameterList","parameters":[],"src":"212:0:20"},"scope":40816,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40766,"nodeType":"FunctionDefinition","src":"337:444:20","nodes":[],"body":{"id":40765,"nodeType":"Block","src":"475:306:20","nodes":[],"statements":[{"assignments":[40737],"declarations":[{"constant":false,"id":40737,"mutability":"mutable","name":"msgHash","nodeType":"VariableDeclaration","overrides":null,"scope":40765,"src":"485:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"485:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":40748,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":40741,"name":"fromAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40728,"src":"543:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":40742,"name":"toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40730,"src":"556:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":40743,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40733,"src":"567:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":40744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"567:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":40745,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40733,"src":"583:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"expression":{"argumentTypes":null,"id":40739,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"526:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"526:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"526:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40738,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"503:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"503:98:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"485:116:20"},{"expression":{"argumentTypes":null,"id":40754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":40749,"name":"l2ToL1Messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41143,"src":"611:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"function () pure returns (mapping(bytes32 => uint256))"}},"id":40750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"611:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":40752,"indexExpression":{"argumentTypes":null,"id":40751,"name":"msgHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40737,"src":"628:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"611:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"hexValue":"31","id":40753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"640:1:20","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"611:30:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40755,"nodeType":"ExpressionStatement","src":"611:30:20"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":40757,"name":"fromAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40728,"src":"733:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":40760,"name":"toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40730,"src":"754:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"746:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40758,"name":"address","nodeType":"ElementaryTypeName","src":"746:7:20","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":40761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"746:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":40762,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40733,"src":"766:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"id":40756,"name":"LogMessageToL1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40487,"src":"718:14:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256,address,uint256[] memory)"}},"id":40763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"718:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40764,"nodeType":"EmitStatement","src":"713:61:20"}]},"documentation":{"id":40726,"nodeType":"StructuredDocumentation","src":"285:47:20","text":"Mocks a message from L2 to L1."},"functionSelector":"d1fb1509","implemented":true,"kind":"function","modifiers":[],"name":"mockSendMessageFromL2","overrides":null,"parameters":{"id":40734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40728,"mutability":"mutable","name":"fromAddress","nodeType":"VariableDeclaration","overrides":null,"scope":40766,"src":"377:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40727,"name":"uint256","nodeType":"ElementaryTypeName","src":"377:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":40730,"mutability":"mutable","name":"toAddress","nodeType":"VariableDeclaration","overrides":null,"scope":40766,"src":"406:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40729,"name":"uint256","nodeType":"ElementaryTypeName","src":"406:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":40733,"mutability":"mutable","name":"payload","nodeType":"VariableDeclaration","overrides":null,"scope":40766,"src":"433:26:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":40731,"name":"uint256","nodeType":"ElementaryTypeName","src":"433:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40732,"length":null,"nodeType":"ArrayTypeName","src":"433:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"367:98:20"},"returnParameters":{"id":40735,"nodeType":"ParameterList","parameters":[],"src":"475:0:20"},"scope":40816,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40815,"nodeType":"FunctionDefinition","src":"854:461:20","nodes":[],"body":{"id":40814,"nodeType":"Block","src":"995:320:20","nodes":[],"statements":[{"assignments":[40778],"declarations":[{"constant":false,"id":40778,"mutability":"mutable","name":"msgHash","nodeType":"VariableDeclaration","overrides":null,"scope":40814,"src":"1005:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1005:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":40789,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":40782,"name":"fromAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40769,"src":"1063:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":40783,"name":"toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40771,"src":"1076:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":40784,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40774,"src":"1087:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":40785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1087:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":40786,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40774,"src":"1103:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"expression":{"argumentTypes":null,"id":40780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1046:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1046:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1046:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40779,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1023:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1023:98:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1005:116:20"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":40791,"name":"l2ToL1Messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41143,"src":"1140:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"function () pure returns (mapping(bytes32 => uint256))"}},"id":40792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1140:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":40794,"indexExpression":{"argumentTypes":null,"id":40793,"name":"msgHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40778,"src":"1157:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1140:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":40795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1168:1:20","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1140:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"494e56414c49445f4d4553534147455f544f5f434f4e53554d45","id":40797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1171:28:20","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c033f391b5e4a8a647eb9e27dd2cb79e7636b1247d32add7af730d1fb34669d3","typeString":"literal_string \"INVALID_MESSAGE_TO_CONSUME\""},"value":"INVALID_MESSAGE_TO_CONSUME"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c033f391b5e4a8a647eb9e27dd2cb79e7636b1247d32add7af730d1fb34669d3","typeString":"literal_string \"INVALID_MESSAGE_TO_CONSUME\""}],"id":40790,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1132:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":40798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1132:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40799,"nodeType":"ExpressionStatement","src":"1132:68:20"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":40801,"name":"fromAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40769,"src":"1235:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":40802,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1248:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":40803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1248:10:20","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":40804,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40774,"src":"1260:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"id":40800,"name":"ConsumedMessageToL1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40511,"src":"1215:19:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256,address,uint256[] memory)"}},"id":40805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1215:53:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40806,"nodeType":"EmitStatement","src":"1210:58:20"},{"expression":{"argumentTypes":null,"id":40812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":40807,"name":"l2ToL1Messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41143,"src":"1278:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"function () pure returns (mapping(bytes32 => uint256))"}},"id":40808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1278:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":40810,"indexExpression":{"argumentTypes":null,"id":40809,"name":"msgHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40778,"src":"1295:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1278:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"hexValue":"31","id":40811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1307:1:20","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1278:30:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40813,"nodeType":"ExpressionStatement","src":"1278:30:20"}]},"documentation":{"id":40767,"nodeType":"StructuredDocumentation","src":"787:62:20","text":"Mocks consumption of a message from L2 to L1."},"functionSelector":"dc3f76a1","implemented":true,"kind":"function","modifiers":[],"name":"mockConsumeMessageFromL2","overrides":null,"parameters":{"id":40775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40769,"mutability":"mutable","name":"fromAddress","nodeType":"VariableDeclaration","overrides":null,"scope":40815,"src":"897:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40768,"name":"uint256","nodeType":"ElementaryTypeName","src":"897:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":40771,"mutability":"mutable","name":"toAddress","nodeType":"VariableDeclaration","overrides":null,"scope":40815,"src":"926:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40770,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":40774,"mutability":"mutable","name":"payload","nodeType":"VariableDeclaration","overrides":null,"scope":40815,"src":"953:26:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":40772,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40773,"length":null,"nodeType":"ArrayTypeName","src":"953:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"887:98:20"},"returnParameters":{"id":40776,"nodeType":"ParameterList","parameters":[],"src":"995:0:20"},"scope":40816,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":40714,"name":"StarknetMessaging","nodeType":"UserDefinedTypeName","referencedDeclaration":41529,"src":"135:17:20","typeDescriptions":{"typeIdentifier":"t_contract$_StarknetMessaging_$41529","typeString":"contract StarknetMessaging"}},"id":40715,"nodeType":"InheritanceSpecifier","src":"135:17:20"}],"contractDependencies":[40476,40551,41529],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[40816,41529,40476,40551],"name":"MockStarknetMessaging","scope":40817}],"license":"Apache-2.0."},"id":20}