{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSAGE_VERSION","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"OTHER_MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"PORTAL","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimismPortal"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CALL_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CONSTANT_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_GAS_CHECK_BUFFER","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_RESERVED_GAS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"baseGas","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"failedMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"},{"name":"_portal","type":"address","internalType":"contract OptimismPortal"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"otherMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"portal","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimismPortal"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendMessage","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"successfulMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"FailedRelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"RelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"SentMessage","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"messageNonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SentMessageExtension1","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001f60008062000025565b6200027f565b600054600160a81b900460ff16158080156200004e57506000546001600160a01b90910460ff16105b806200008557506200006b30620001b960201b620014d61760201c565b158015620000855750600054600160a01b900460ff166001145b620000ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b17905580156200011c576000805460ff60a81b1916600160a81b1790555b60fb80546001600160a01b038086166001600160a01b03199283161790925560fc8054928516929091169190911790556200016b734200000000000000000000000000000000000007620001c8565b8015620001b4576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054600160a81b900460ff16620002375760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b60cc546001600160a01b03166200025d5760cc80546001600160a01b03191661dead1790555b60cf80546001600160a01b0319166001600160a01b0392909216919091179055565b611f94806200028f6000396000f3fe6080604052600436106101805760003560e01c80635c975abb116100d6578063a4e7f8bd1161007f578063d764ad0b11610059578063d764ad0b14610463578063db505d8014610476578063ecc70428146104a357600080fd5b8063a4e7f8bd146103e3578063b1b1b20914610413578063b28ade251461044357600080fd5b806383a74074116100b057806383a74074146103a15780638cbeeef2146102b85780639fce812c146103b857600080fd5b80635c975abb1461033a5780636425666b1461035f5780636e296e451461038c57600080fd5b80633dbb202b116101385780634c1d6a69116101125780634c1d6a69146102b857806354fd4d50146102ce5780635644cfdf1461032457600080fd5b80633dbb202b1461025b5780633f827a5a14610270578063485cc9551461029857600080fd5b80630ff754ea116101695780630ff754ea146101cd5780632828d7e81461021957806335e80ab31461022e57600080fd5b8063028f85f7146101855780630c568498146101b8575b600080fd5b34801561019157600080fd5b5061019a601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101c457600080fd5b5061019a603f81565b3480156101d957600080fd5b5060fc5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101af565b34801561022557600080fd5b5061019a604081565b34801561023a57600080fd5b5060fb546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b61026e610269366004611a22565b610508565b005b34801561027c57600080fd5b50610285600181565b60405161ffff90911681526020016101af565b3480156102a457600080fd5b5061026e6102b3366004611a89565b610765565b3480156102c457600080fd5b5061019a619c4081565b3480156102da57600080fd5b506103176040518060400160405280600581526020017f322e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516101af9190611b2d565b34801561033057600080fd5b5061019a61138881565b34801561034657600080fd5b5061034f6109d3565b60405190151581526020016101af565b34801561036b57600080fd5b5060fc546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039857600080fd5b506101f4610a6c565b3480156103ad57600080fd5b5061019a62030d4081565b3480156103c457600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166101f4565b3480156103ef57600080fd5b5061034f6103fe366004611b47565b60ce6020526000908152604090205460ff1681565b34801561041f57600080fd5b5061034f61042e366004611b47565b60cb6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061019a61045e366004611b60565b610b53565b61026e610471366004611bb4565b610bc1565b34801561048257600080fd5b5060cf546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104af57600080fd5b506104fa60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101af565b60cf5461063a9073ffffffffffffffffffffffffffffffffffffffff16610530858585610b53565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061059c60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105b89796959493929190611c83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526114f2565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385856106bf60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106d1959493929190611ce2565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b6000547501000000000000000000000000000000000000000000900460ff16158080156107b0575060005460017401000000000000000000000000000000000000000090910460ff16105b806107e25750303b1580156107e2575060005474010000000000000000000000000000000000000000900460ff166001145b610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156108f957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b60fb805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fc80549285169290911691909117905561096b73420000000000000000000000000000000000000761158b565b80156109ce57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60fb54604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611d30565b905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f74207365740000000000000000000000606482015260840161086a565b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f610b6f604063ffffffff8816611d81565b610b799190611db1565b610b84601088611d81565b610b919062030d40611dff565b610b9b9190611dff565b610ba59190611dff565b610baf9190611dff565b610bb99190611dff565b949350505050565b610bc96109d3565b15610c30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f7373446f6d61696e4d657373656e6765723a2070617573656400000000604482015260640161086a565b60f087901c60028110610ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161086a565b8061ffff16600003610de0576000610d3c878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506116c7915050565b600081815260cb602052604090205490915060ff1615610dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161086a565b505b6000610e26898989898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e692505050565b9050610e30611709565b15610e6857853414610e4457610e44611e2b565b600081815260ce602052604090205460ff1615610e6357610e63611e2b565b610fba565b3415610f1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161086a565b600081815260ce602052604090205460ff16610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161086a565b610fc3876117e5565b15611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161086a565b600081815260cb602052604090205460ff1615611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161086a565b61113685611127611388619c40611dff565b67ffffffffffffffff1661182b565b158061115c575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561127557600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b50506114cd565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061130688619c405a6112c99190611e5a565b8988888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061184992505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156113bc57600082815260cb602052604090205460ff161561135957611359611e2b565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26114c9565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016114c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60fc546040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e9e05c42908490611553908890839089906000908990600401611e71565b6000604051808303818588803b15801561156c57600080fd5b505af1158015611580573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff16611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161086a565b60cc5473ffffffffffffffffffffffffffffffffffffffff166116805760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006116d585858585611863565b805190602001209050949350505050565b60006116f68787878787876118fc565b8051906020012090509695505050505050565b60fc5460009073ffffffffffffffffffffffffffffffffffffffff1633148015610a67575060cf5460fc54604080517f9bf62d82000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691639bf62d82916004808201926020929091908290030181865afa1580156117a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c99190611ec9565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611825575060fc5473ffffffffffffffffffffffffffffffffffffffff8381169116145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b60608484848460405160240161187c9493929190611ee6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161191996959493929190611f30565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119bd57600080fd5b50565b60008083601f8401126119d257600080fd5b50813567ffffffffffffffff8111156119ea57600080fd5b602083019150836020828501011115611a0257600080fd5b9250929050565b803563ffffffff81168114611a1d57600080fd5b919050565b60008060008060608587031215611a3857600080fd5b8435611a438161199b565b9350602085013567ffffffffffffffff811115611a5f57600080fd5b611a6b878288016119c0565b9094509250611a7e905060408601611a09565b905092959194509250565b60008060408385031215611a9c57600080fd5b8235611aa78161199b565b91506020830135611ab78161199b565b809150509250929050565b6000815180845260005b81811015611ae857602081850181015186830182015201611acc565b81811115611afa576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b406020830184611ac2565b9392505050565b600060208284031215611b5957600080fd5b5035919050565b600080600060408486031215611b7557600080fd5b833567ffffffffffffffff811115611b8c57600080fd5b611b98868287016119c0565b9094509250611bab905060208501611a09565b90509250925092565b600080600080600080600060c0888a031215611bcf57600080fd5b873596506020880135611be18161199b565b95506040880135611bf18161199b565b9450606088013593506080880135925060a088013567ffffffffffffffff811115611c1b57600080fd5b611c278a828b016119c0565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611cd560c083018486611c3a565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611d12608083018688611c3a565b905083604083015263ffffffff831660608301529695505050505050565b600060208284031215611d4257600080fd5b81518015158114611b4057600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611da857611da8611d52565b02949350505050565b600067ffffffffffffffff80841680611df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611e2257611e22611d52565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611e6c57611e6c611d52565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a060808201526000611ebe60a0830184611ac2565b979650505050505050565b600060208284031215611edb57600080fd5b8151611b408161199b565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611f1f6080830185611ac2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611f7b60c0830184611ac2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"701:2432:130:-:0;;;1159:163;;;;;;;;;-1:-1:-1;1206:109:130::1;1263:1;::::0;1206:10:::1;:109::i;:::-;701:2432:::0;;1542:296;3111:19:27;3134:13;-1:-1:-1;;;3134:13:27;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;-1:-1:-1;;;3197:12:27;;;;;:16;3179:34;3178:108;;;;3220:44;3258:4;3220:29;;;;;:44;;:::i;:::-;3219:45;:66;;;;-1:-1:-1;3268:12:27;;-1:-1:-1;;;3268:12:27;;;;3284:1;3268:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:27;;216:2:357;3157:201:27;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3157:201:27;;;;;;;;;3368:12;:16;;-1:-1:-1;;;;3368:16:27;-1:-1:-1;;;3368:16:27;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;;;3428:20:27;-1:-1:-1;;;3428:20:27;;;3394:65;1651:16:130::1;:36:::0;;-1:-1:-1;;;;;1651:36:130;;::::1;-1:-1:-1::0;;;;;;1651:36:130;;::::1;;::::0;;;1697:6:::1;:16:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;1723:108:::1;480:42:199;1723:27:130;:108::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;;;3513:21:27;;;3553:14;;-1:-1:-1;581:36:357;;3553:14:27;;569:2:357;554:18;3553:14:27;;;;;;;3479:99;3101:483;1542:296:130;;:::o;1186:320:33:-;-1:-1:-1;;;;;1476:19:33;;:23;;;1186:320::o;18503:636:223:-;4910:13:27;;-1:-1:-1;;;4910:13:27;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;18988:16:223::1;::::0;-1:-1:-1;;;;;18988:16:223::1;18984:107;;19034:16;:46:::0;;-1:-1:-1;;;;;;19034:46:223::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;-1:-1:-1;;;;;;19100:32:223::1;-1:-1:-1::0;;;;;19100:32:223;;;::::1;::::0;;;::::1;::::0;;18503:636::o;628:407:357:-;701:2432:130;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101805760003560e01c80635c975abb116100d6578063a4e7f8bd1161007f578063d764ad0b11610059578063d764ad0b14610463578063db505d8014610476578063ecc70428146104a357600080fd5b8063a4e7f8bd146103e3578063b1b1b20914610413578063b28ade251461044357600080fd5b806383a74074116100b057806383a74074146103a15780638cbeeef2146102b85780639fce812c146103b857600080fd5b80635c975abb1461033a5780636425666b1461035f5780636e296e451461038c57600080fd5b80633dbb202b116101385780634c1d6a69116101125780634c1d6a69146102b857806354fd4d50146102ce5780635644cfdf1461032457600080fd5b80633dbb202b1461025b5780633f827a5a14610270578063485cc9551461029857600080fd5b80630ff754ea116101695780630ff754ea146101cd5780632828d7e81461021957806335e80ab31461022e57600080fd5b8063028f85f7146101855780630c568498146101b8575b600080fd5b34801561019157600080fd5b5061019a601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101c457600080fd5b5061019a603f81565b3480156101d957600080fd5b5060fc5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101af565b34801561022557600080fd5b5061019a604081565b34801561023a57600080fd5b5060fb546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b61026e610269366004611a22565b610508565b005b34801561027c57600080fd5b50610285600181565b60405161ffff90911681526020016101af565b3480156102a457600080fd5b5061026e6102b3366004611a89565b610765565b3480156102c457600080fd5b5061019a619c4081565b3480156102da57600080fd5b506103176040518060400160405280600581526020017f322e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516101af9190611b2d565b34801561033057600080fd5b5061019a61138881565b34801561034657600080fd5b5061034f6109d3565b60405190151581526020016101af565b34801561036b57600080fd5b5060fc546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039857600080fd5b506101f4610a6c565b3480156103ad57600080fd5b5061019a62030d4081565b3480156103c457600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166101f4565b3480156103ef57600080fd5b5061034f6103fe366004611b47565b60ce6020526000908152604090205460ff1681565b34801561041f57600080fd5b5061034f61042e366004611b47565b60cb6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061019a61045e366004611b60565b610b53565b61026e610471366004611bb4565b610bc1565b34801561048257600080fd5b5060cf546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104af57600080fd5b506104fa60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101af565b60cf5461063a9073ffffffffffffffffffffffffffffffffffffffff16610530858585610b53565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061059c60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105b89796959493929190611c83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526114f2565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385856106bf60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106d1959493929190611ce2565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b6000547501000000000000000000000000000000000000000000900460ff16158080156107b0575060005460017401000000000000000000000000000000000000000090910460ff16105b806107e25750303b1580156107e2575060005474010000000000000000000000000000000000000000900460ff166001145b610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156108f957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b60fb805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fc80549285169290911691909117905561096b73420000000000000000000000000000000000000761158b565b80156109ce57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60fb54604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611d30565b905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f74207365740000000000000000000000606482015260840161086a565b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f610b6f604063ffffffff8816611d81565b610b799190611db1565b610b84601088611d81565b610b919062030d40611dff565b610b9b9190611dff565b610ba59190611dff565b610baf9190611dff565b610bb99190611dff565b949350505050565b610bc96109d3565b15610c30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f7373446f6d61696e4d657373656e6765723a2070617573656400000000604482015260640161086a565b60f087901c60028110610ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161086a565b8061ffff16600003610de0576000610d3c878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506116c7915050565b600081815260cb602052604090205490915060ff1615610dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161086a565b505b6000610e26898989898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e692505050565b9050610e30611709565b15610e6857853414610e4457610e44611e2b565b600081815260ce602052604090205460ff1615610e6357610e63611e2b565b610fba565b3415610f1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161086a565b600081815260ce602052604090205460ff16610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161086a565b610fc3876117e5565b15611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161086a565b600081815260cb602052604090205460ff1615611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161086a565b61113685611127611388619c40611dff565b67ffffffffffffffff1661182b565b158061115c575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561127557600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b50506114cd565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061130688619c405a6112c99190611e5a565b8988888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061184992505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156113bc57600082815260cb602052604090205460ff161561135957611359611e2b565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26114c9565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016114c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60fc546040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e9e05c42908490611553908890839089906000908990600401611e71565b6000604051808303818588803b15801561156c57600080fd5b505af1158015611580573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff16611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161086a565b60cc5473ffffffffffffffffffffffffffffffffffffffff166116805760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006116d585858585611863565b805190602001209050949350505050565b60006116f68787878787876118fc565b8051906020012090509695505050505050565b60fc5460009073ffffffffffffffffffffffffffffffffffffffff1633148015610a67575060cf5460fc54604080517f9bf62d82000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691639bf62d82916004808201926020929091908290030181865afa1580156117a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c99190611ec9565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611825575060fc5473ffffffffffffffffffffffffffffffffffffffff8381169116145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b60608484848460405160240161187c9493929190611ee6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161191996959493929190611f30565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119bd57600080fd5b50565b60008083601f8401126119d257600080fd5b50813567ffffffffffffffff8111156119ea57600080fd5b602083019150836020828501011115611a0257600080fd5b9250929050565b803563ffffffff81168114611a1d57600080fd5b919050565b60008060008060608587031215611a3857600080fd5b8435611a438161199b565b9350602085013567ffffffffffffffff811115611a5f57600080fd5b611a6b878288016119c0565b9094509250611a7e905060408601611a09565b905092959194509250565b60008060408385031215611a9c57600080fd5b8235611aa78161199b565b91506020830135611ab78161199b565b809150509250929050565b6000815180845260005b81811015611ae857602081850181015186830182015201611acc565b81811115611afa576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b406020830184611ac2565b9392505050565b600060208284031215611b5957600080fd5b5035919050565b600080600060408486031215611b7557600080fd5b833567ffffffffffffffff811115611b8c57600080fd5b611b98868287016119c0565b9094509250611bab905060208501611a09565b90509250925092565b600080600080600080600060c0888a031215611bcf57600080fd5b873596506020880135611be18161199b565b95506040880135611bf18161199b565b9450606088013593506080880135925060a088013567ffffffffffffffff811115611c1b57600080fd5b611c278a828b016119c0565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611cd560c083018486611c3a565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611d12608083018688611c3a565b905083604083015263ffffffff831660608301529695505050505050565b600060208284031215611d4257600080fd5b81518015158114611b4057600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611da857611da8611d52565b02949350505050565b600067ffffffffffffffff80841680611df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611e2257611e22611d52565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611e6c57611e6c611d52565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a060808201526000611ebe60a0830184611ac2565b979650505050505050565b600060208284031215611edb57600080fd5b8151611b408161199b565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611f1f6080830185611ac2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611f7b60c0830184611ac2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"701:2432:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4456:53:223;;;;;;;;;;;;4507:2;4456:53;;;;;188:18:357;176:31;;;158:50;;146:2;131:18;4456:53:223;;;;;;;;4301:64;;;;;;;;;;;;4363:2;4301:64;;2107:87:130;;;;;;;;;;-1:-1:-1;2181:6:130;;;;2107:87;;;427:42:357;415:55;;;397:74;;385:2;370:18;2107:87:130;219:258:357;4146:62:223;;;;;;;;;;;;4206:2;4146:62;;822:40:130;;;;;;;;;;-1:-1:-1;822:40:130;;;;;;;;8628:995:223;;;;;;:::i;:::-;;:::i;:::-;;3879:42;;;;;;;;;;;;3920:1;3879:42;;;;;2213:6:357;2201:19;;;2183:38;;2171:2;2156:18;3879:42:223;2039:188:357;1542:296:130;;;;;;;;;;-1:-1:-1;1542:296:130;;;;;:::i;:::-;;:::i;4597:51:223:-;;;;;;;;;;;;4642:6;4597:51;;1048:40:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4943:53:223:-;;;;;;;;;;;;4991:5;4943:53;;3028:103:130;;;;;;;;;;;;;:::i;:::-;;;3601:14:357;;3594:22;3576:41;;3564:2;3549:18;3028:103:130;3436:187:357;950:28:130;;;;;;;;;;-1:-1:-1;950:28:130;;;;;;;;15764:250:223;;;;;;;;;;;;;:::i;3999:56::-;;;;;;;;;;;;4048:7;3999:56;;16317:108;;;;;;;;;;-1:-1:-1;16404:14:223;;;;16317:108;;6234:46;;;;;;;;;;-1:-1:-1;6234:46:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;5252:50;;;;;;;;;;-1:-1:-1;5252:50:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;17493:894;;;;;;;;;;-1:-1:-1;17493:894:223;;;;;:::i;:::-;;:::i;10311:5066::-;;;;;;:::i;:::-;;:::i;6386:42::-;;;;;;;;;;-1:-1:-1;6386:42:223;;;;;;;;16746:134;;;;;;;;;;;;16847:8;;;;4855:18:195;4852:30;;3028:103:130;16746:134:223;;;5835:25:357;;;5823:2;5808:18;16746:134:223;5689:177:357;8628:995:223;9128:14;;9088:326;;9128:14;;9168:31;9176:8;;9186:12;9168:7;:31::i;:::-;9221:9;9291:26;9319:14;16847:8;;;;4855:18:195;4852:30;;3028:103:130;9319:14:223;9335:10;9347:7;9356:9;9367:12;9381:8;;9251:152;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9088:12;:326::i;:::-;9442:7;9430:72;;;9451:10;9463:8;;9473:14;16847:8;;;;4855:18:195;4852:30;;3028:103:130;9473:14:223;9489:12;9430:72;;;;;;;;;;:::i;:::-;;;;;;;;9517:44;;9551:9;5835:25:357;;9539:10:223;;9517:44;;5823:2:357;5808:18;9517:44:223;;;;;;;-1:-1:-1;;9598:8:223;9596:10;;;;;;;;;;;;;;;;-1:-1:-1;;8628:995:223:o;1542:296:130:-;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;3197:12;;;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:27;1476:19:33;:23;;;3219:66:27;;-1:-1:-1;3268:12:27;;;;;;;3284:1;3268:17;3219:66;3157:201;;;;;;;7634:2:357;3157:201:27;;;7616:21:357;7673:2;7653:18;;;7646:30;7712:34;7692:18;;;7685:62;7783:16;7763:18;;;7756:44;7817:19;;3157:201:27;;;;;;;;;3368:12;:16;;;;;;;;3394:65;;;;3428:13;:20;;;;;;;;3394:65;1651:16:130::1;:36:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;1697:6:::1;:16:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;1723:108:::1;480:42:199;1723:27:130;:108::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;;;;;3553:14;;-1:-1:-1;7999:36:357;;3553:14:27;;7987:2:357;7972:18;3553:14:27;;;;;;;3479:99;3101:483;1542:296:130;;:::o;3028:103::-;3099:16;;:25;;;;;;;;3076:4;;3099:16;;;:23;;:25;;;;;;;;;;;;;;:16;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3092:32;;3028:103;:::o;15764:250:223:-;15859:16;;15819:7;;15859:47;:16;:47;;15838:135;;;;;;;8530:2:357;15838:135:223;;;8512:21:357;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;8679:23;8659:18;;;8652:51;8720:19;;15838:135:223;8328:417:357;15838:135:223;-1:-1:-1;15991:16:223;;;;;15764:250::o;17493:894::-;17577:6;4991:5;4796:6;;4363:2;17806:49;4206:2;17806:49;;;;:::i;:::-;17805:90;;;;:::i;:::-;17703:51;4507:2;17710:8;17703:51;:::i;:::-;17639:116;;4048:7;17639:116;:::i;:::-;:257;;;;:::i;:::-;:412;;;;:::i;:::-;:587;;;;:::i;:::-;:741;;;;:::i;:::-;17595:785;17493:894;-1:-1:-1;;;;17493:894:223:o;10311:5066::-;10722:8;:6;:8::i;:::-;:17;10714:58;;;;;;;10015:2:357;10714:58:223;;;9997:21:357;10054:2;10034:18;;;10027:30;10093;10073:18;;;10066:58;10141:18;;10714:58:223;9813:352:357;10714:58:223;5444:3:195;5440:16;;;10869:1:223;10859:11;;10851:101;;;;;;;10372:2:357;10851:101:223;;;10354:21:357;10411:2;10391:18;;;10384:30;10450:34;10430:18;;;10423:62;10521:34;10501:18;;;10494:62;10593:15;10572:19;;;10565:44;10626:19;;10851:101:223;10170:481:357;10851:101:223;11154:7;:12;;11165:1;11154:12;11150:247;;11182:15;11200:68;11233:7;11242;11251:8;;11200:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11261:6:223;;-1:-1:-1;11200:32:223;;-1:-1:-1;;11200:68:223:i;:::-;11290:27;;;;:18;:27;;;;;;11182:86;;-1:-1:-1;11290:27:223;;:36;11282:104;;;;;;;10858:2:357;11282:104:223;;;10840:21:357;10897:2;10877:18;;;10870:30;10936:34;10916:18;;;10909:62;11007:25;10987:18;;;10980:53;11050:19;;11282:104:223;10656:419:357;11282:104:223;11168:229;11150:247;11567:21;11603:90;11636:6;11644:7;11653;11662:6;11670:12;11684:8;;11603:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11603:32:223;;-1:-1:-1;;;11603:90:223:i;:::-;11567:126;;11708:19;:17;:19::i;:::-;11704:506;;;11897:6;11884:9;:19;11877:27;;;;:::i;:::-;11926:29;;;;:14;:29;;;;;;;;11925:30;11918:38;;;;:::i;:::-;11704:506;;;11995:9;:14;11987:107;;;;;;;11471:2:357;11987:107:223;;;11453:21:357;11510:2;11490:18;;;11483:30;11549:34;11529:18;;;11522:62;11620:34;11600:18;;;11593:62;11692:18;11671:19;;;11664:47;11728:19;;11987:107:223;11269:484:357;11987:107:223;12117:29;;;;:14;:29;;;;;;;;12109:90;;;;;;;11960:2:357;12109:90:223;;;11942:21:357;11999:2;11979:18;;;11972:30;12038:34;12018:18;;;12011:62;12109:18;12089;;;12082:46;12145:19;;12109:90:223;11758:412:357;12109:90:223;12241:24;12257:7;12241:15;:24::i;:::-;:33;12220:135;;;;;;;12377:2:357;12220:135:223;;;12359:21:357;12416:2;12396:18;;;12389:30;12455:34;12435:18;;;12428:62;12526:34;12506:18;;;12499:62;12598:5;12577:19;;;12570:34;12621:19;;12220:135:223;12175:471:357;12220:135:223;12374:33;;;;:18;:33;;;;;;;;:42;12366:109;;;;;;;12853:2:357;12366:109:223;;;12835:21:357;12892:2;12872:18;;;12865:30;12931:34;12911:18;;;12904:62;13002:24;12982:18;;;12975:52;13044:19;;12366:109:223;12651:418:357;12366:109:223;13169:77;13188:12;13202:43;4991:5;4796:6;13202:43;:::i;:::-;13169:77;;:18;:77::i;:::-;13168:78;:145;;;-1:-1:-1;13266:16:223;;:47;:16;1338:42:192;13266:47:223;;13168:145;13151:919;;;13338:29;;;;:14;:29;;;;;;:36;;;;13370:4;13338:36;;;13393:35;13353:13;;13393:35;;;13908:41;:9;:41;13904:135;;13969:55;;;;;13276:2:357;13969:55:223;;;13258:21:357;13315:2;13295:18;;;13288:30;13354:34;13334:18;;;13327:62;13425:15;13405:18;;;13398:43;13458:19;;13969:55:223;13074:409:357;13904:135:223;14053:7;;;;13151:919;14080:16;:26;;;;;;;;;;-1:-1:-1;14131:72:223;14145:7;4796:6;14154:9;:30;;;;:::i;:::-;14186:6;14194:8;;14131:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14131:13:223;;-1:-1:-1;;;14131:72:223:i;:::-;14213:16;:46;;;;1338:42:192;14213:46:223;;;14116:87;-1:-1:-1;14270:1101:223;;;;14484:33;;;;:18;:33;;;;;;;;:42;14477:50;;;;:::i;:::-;14541:33;;;;:18;:33;;;;;;:40;;;;14577:4;14541:40;;;14600:29;14560:13;;14600:29;;;14270:1101;;;14660:29;;;;:14;:29;;;;;;:36;;;;14692:4;14660:36;;;14715:35;14675:13;;14715:35;;;15230:41;:9;:41;15226:135;;15291:55;;;;;13276:2:357;15291:55:223;;;13258:21:357;13315:2;13295:18;;;13288:30;13354:34;13334:18;;;13327:62;13425:15;13405:18;;;13398:43;13458:19;;15291:55:223;13074:409:357;15226:135:223;10537:4840;;;10311:5066;;;;;;;;:::o;1186:320:33:-;1476:19;;;:23;;;1186:320::o;2241::130:-;2358:6;;:196;;;;;:6;;;;;:25;;2392:6;;2358:196;;2420:3;;2392:6;;2476:9;;2358:6;;2538:5;;2358:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:320;;;;:::o;18503:636:223:-;4910:13:27;;;;;;;4902:69;;;;;;;14412:2:357;4902:69:27;;;14394:21:357;14451:2;14431:18;;;14424:30;14490:34;14470:18;;;14463:62;14561:13;14541:18;;;14534:41;14592:19;;4902:69:27;14210:407:357;4902:69:27;18988:16:223::1;::::0;:30:::1;:16;18984:107;;19034:16;:46:::0;;;::::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;18503:636::o;3100:305:196:-;3289:7;3329:68;3365:7;3374;3383:5;3390:6;3329:35;:68::i;:::-;3319:79;;;;;;3312:86;;3100:305;;;;;;:::o;3877:375::-;4117:7;4157:87;4193:6;4201:7;4210;4219:6;4227:9;4238:5;4157:35;:87::i;:::-;4147:98;;;;;;4140:105;;3877:375;;;;;;;;:::o;2608:168:130:-;2714:6;;2669:4;;2714:6;;2692:10;:29;:77;;;;-1:-1:-1;2754:14:130;;2725:6;;:17;;;;;;;;2754:14;;;;;2725:6;;;;:15;;:17;;;;;;;;;;;;;;;:6;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;;2685:84;;2608:168;:::o;2823:158::-;2897:4;2920:24;;;2939:4;2920:24;;:54;;-1:-1:-1;2967:6:130;;;2948:26;;;2967:6;;2948:26;2920:54;2913:61;2823:158;-1:-1:-1;;2823:158:130:o;3615:365:200:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:200:o;1202:536::-;1305:4;1321:13;1668:1;1635;1594:9;1588:16;1554:2;1543:9;1539:18;1496:6;1454:7;1421:4;1395:302;1367:330;1202:536;-1:-1:-1;;;;;;1202:536:200:o;3073:336:195:-;3264:12;3370:7;3379;3388:5;3395:6;3299:103;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3073:336:195;;;;;;:::o;3883:516::-;4125:12;4272:6;4292:7;4313;4334:6;4354:9;4377:5;4160:232;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:516:195;;;;;;;;:::o;739:154:357:-;825:42;818:5;814:54;807:5;804:65;794:93;;883:1;880;873:12;794:93;739:154;:::o;898:347::-;949:8;959:6;1013:3;1006:4;998:6;994:17;990:27;980:55;;1031:1;1028;1021:12;980:55;-1:-1:-1;1054:20:357;;1097:18;1086:30;;1083:50;;;1129:1;1126;1119:12;1083:50;1166:4;1158:6;1154:17;1142:29;;1218:3;1211:4;1202:6;1194;1190:19;1186:30;1183:39;1180:59;;;1235:1;1232;1225:12;1180:59;898:347;;;;;:::o;1250:163::-;1317:20;;1377:10;1366:22;;1356:33;;1346:61;;1403:1;1400;1393:12;1346:61;1250:163;;;:::o;1418:616::-;1505:6;1513;1521;1529;1582:2;1570:9;1561:7;1557:23;1553:32;1550:52;;;1598:1;1595;1588:12;1550:52;1637:9;1624:23;1656:31;1681:5;1656:31;:::i;:::-;1706:5;-1:-1:-1;1762:2:357;1747:18;;1734:32;1789:18;1778:30;;1775:50;;;1821:1;1818;1811:12;1775:50;1860:58;1910:7;1901:6;1890:9;1886:22;1860:58;:::i;:::-;1937:8;;-1:-1:-1;1834:84:357;-1:-1:-1;1991:37:357;;-1:-1:-1;2024:2:357;2009:18;;1991:37;:::i;:::-;1981:47;;1418:616;;;;;;;:::o;2232:438::-;2350:6;2358;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;2466:9;2453:23;2485:31;2510:5;2485:31;:::i;:::-;2535:5;-1:-1:-1;2592:2:357;2577:18;;2564:32;2605:33;2564:32;2605:33;:::i;:::-;2657:7;2647:17;;;2232:438;;;;;:::o;2675:531::-;2717:3;2755:5;2749:12;2782:6;2777:3;2770:19;2807:1;2817:162;2831:6;2828:1;2825:13;2817:162;;;2893:4;2949:13;;;2945:22;;2939:29;2921:11;;;2917:20;;2910:59;2846:12;2817:162;;;2997:6;2994:1;2991:13;2988:87;;;3063:1;3056:4;3047:6;3042:3;3038:16;3034:27;3027:38;2988:87;-1:-1:-1;3120:2:357;3108:15;3125:66;3104:88;3095:98;;;;3195:4;3091:109;;2675:531;-1:-1:-1;;2675:531:357:o;3211:220::-;3360:2;3349:9;3342:21;3323:4;3380:45;3421:2;3410:9;3406:18;3398:6;3380:45;:::i;:::-;3372:53;3211:220;-1:-1:-1;;;3211:220:357:o;4121:180::-;4180:6;4233:2;4221:9;4212:7;4208:23;4204:32;4201:52;;;4249:1;4246;4239:12;4201:52;-1:-1:-1;4272:23:357;;4121:180;-1:-1:-1;4121:180:357:o;4306:481::-;4384:6;4392;4400;4453:2;4441:9;4432:7;4428:23;4424:32;4421:52;;;4469:1;4466;4459:12;4421:52;4509:9;4496:23;4542:18;4534:6;4531:30;4528:50;;;4574:1;4571;4564:12;4528:50;4613:58;4663:7;4654:6;4643:9;4639:22;4613:58;:::i;:::-;4690:8;;-1:-1:-1;4587:84:357;-1:-1:-1;4744:37:357;;-1:-1:-1;4777:2:357;4762:18;;4744:37;:::i;:::-;4734:47;;4306:481;;;;;:::o;4792:892::-;4907:6;4915;4923;4931;4939;4947;4955;5008:3;4996:9;4987:7;4983:23;4979:33;4976:53;;;5025:1;5022;5015:12;4976:53;5061:9;5048:23;5038:33;;5121:2;5110:9;5106:18;5093:32;5134:31;5159:5;5134:31;:::i;:::-;5184:5;-1:-1:-1;5241:2:357;5226:18;;5213:32;5254:33;5213:32;5254:33;:::i;:::-;5306:7;-1:-1:-1;5360:2:357;5345:18;;5332:32;;-1:-1:-1;5411:3:357;5396:19;;5383:33;;-1:-1:-1;5467:3:357;5452:19;;5439:33;5495:18;5484:30;;5481:50;;;5527:1;5524;5517:12;5481:50;5566:58;5616:7;5607:6;5596:9;5592:22;5566:58;:::i;:::-;4792:892;;;;-1:-1:-1;4792:892:357;;-1:-1:-1;4792:892:357;;;;5540:84;;-1:-1:-1;;;4792:892:357:o;5871:325::-;5959:6;5954:3;5947:19;6011:6;6004:5;5997:4;5992:3;5988:14;5975:43;;6063:1;6056:4;6047:6;6042:3;6038:16;6034:27;6027:38;5929:3;6185:4;6115:66;6110:2;6102:6;6098:15;6094:88;6089:3;6085:98;6081:109;6074:116;;5871:325;;;;:::o;6201:697::-;6496:6;6485:9;6478:25;6459:4;6522:42;6612:2;6604:6;6600:15;6595:2;6584:9;6580:18;6573:43;6664:2;6656:6;6652:15;6647:2;6636:9;6632:18;6625:43;;6704:6;6699:2;6688:9;6684:18;6677:34;6760:10;6752:6;6748:23;6742:3;6731:9;6727:19;6720:52;6809:3;6803;6792:9;6788:19;6781:32;6830:62;6887:3;6876:9;6872:19;6864:6;6856;6830:62;:::i;:::-;6822:70;6201:697;-1:-1:-1;;;;;;;;;6201:697:357:o;6903:524::-;7155:42;7147:6;7143:55;7132:9;7125:74;7235:3;7230:2;7219:9;7215:18;7208:31;7106:4;7256:62;7313:3;7302:9;7298:19;7290:6;7282;7256:62;:::i;:::-;7248:70;;7354:6;7349:2;7338:9;7334:18;7327:34;7409:10;7401:6;7397:23;7392:2;7381:9;7377:18;7370:51;6903:524;;;;;;;;:::o;8046:277::-;8113:6;8166:2;8154:9;8145:7;8141:23;8137:32;8134:52;;;8182:1;8179;8172:12;8134:52;8214:9;8208:16;8267:5;8260:13;8253:21;8246:5;8243:32;8233:60;;8289:1;8286;8279:12;8750:184;8802:77;8799:1;8792:88;8899:4;8896:1;8889:15;8923:4;8920:1;8913:15;8939:270;8978:7;9010:18;9055:2;9052:1;9048:10;9085:2;9082:1;9078:10;9141:3;9137:2;9133:12;9128:3;9125:21;9118:3;9111:11;9104:19;9100:47;9097:73;;;9150:18;;:::i;:::-;9190:13;;8939:270;-1:-1:-1;;;;8939:270:357:o;9214:353::-;9253:1;9279:18;9324:2;9321:1;9317:10;9346:3;9336:191;;9383:77;9380:1;9373:88;9484:4;9481:1;9474:15;9512:4;9509:1;9502:15;9336:191;9545:10;;9541:20;;;;;9214:353;-1:-1:-1;;9214:353:357:o;9572:236::-;9611:3;9639:18;9684:2;9681:1;9677:10;9714:2;9711:1;9707:10;9745:3;9741:2;9737:12;9732:3;9729:21;9726:47;;;9753:18;;:::i;:::-;9789:13;;9572:236;-1:-1:-1;;;;9572:236:357:o;11080:184::-;11132:77;11129:1;11122:88;11229:4;11226:1;11219:15;11253:4;11250:1;11243:15;13488:125;13528:4;13556:1;13553;13550:8;13547:34;;;13561:18;;:::i;:::-;-1:-1:-1;13598:9:357;;13488:125::o;13618:587::-;13881:42;13873:6;13869:55;13858:9;13851:74;13961:6;13956:2;13945:9;13941:18;13934:34;14016:18;14008:6;14004:31;13999:2;13988:9;13984:18;13977:59;14086:6;14079:14;14072:22;14067:2;14056:9;14052:18;14045:50;14132:3;14126;14115:9;14111:19;14104:32;13832:4;14153:46;14194:3;14183:9;14179:19;14171:6;14153:46;:::i;:::-;14145:54;13618:587;-1:-1:-1;;;;;;;13618:587:357:o;14622:251::-;14692:6;14745:2;14733:9;14724:7;14720:23;14716:32;14713:52;;;14761:1;14758;14751:12;14713:52;14793:9;14787:16;14812:31;14837:5;14812:31;:::i;14878:512::-;15072:4;15101:42;15182:2;15174:6;15170:15;15159:9;15152:34;15234:2;15226:6;15222:15;15217:2;15206:9;15202:18;15195:43;;15274:3;15269:2;15258:9;15254:18;15247:31;15295:46;15336:3;15325:9;15321:19;15313:6;15295:46;:::i;:::-;15287:54;;15377:6;15372:2;15361:9;15357:18;15350:34;14878:512;;;;;;;:::o;15395:656::-;15682:6;15671:9;15664:25;15645:4;15708:42;15798:2;15790:6;15786:15;15781:2;15770:9;15766:18;15759:43;15850:2;15842:6;15838:15;15833:2;15822:9;15818:18;15811:43;;15890:6;15885:2;15874:9;15870:18;15863:34;15934:6;15928:3;15917:9;15913:19;15906:35;15978:3;15972;15961:9;15957:19;15950:32;15999:46;16040:3;16029:9;16025:19;16017:6;15999:46;:::i;:::-;15991:54;15395:656;-1:-1:-1;;;;;;;;15395:656:357:o","linkReferences":{}},"methodIdentifiers":{"MESSAGE_VERSION()":"3f827a5a","MIN_GAS_CALLDATA_OVERHEAD()":"028f85f7","MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":"0c568498","MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":"2828d7e8","OTHER_MESSENGER()":"9fce812c","PORTAL()":"0ff754ea","RELAY_CALL_OVERHEAD()":"4c1d6a69","RELAY_CONSTANT_OVERHEAD()":"83a74074","RELAY_GAS_CHECK_BUFFER()":"5644cfdf","RELAY_RESERVED_GAS()":"8cbeeef2","baseGas(bytes,uint32)":"b28ade25","failedMessages(bytes32)":"a4e7f8bd","initialize(address,address)":"485cc955","messageNonce()":"ecc70428","otherMessenger()":"db505d80","paused()":"5c975abb","portal()":"6425666b","relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","sendMessage(address,bytes,uint32)":"3dbb202b","successfulMessages(bytes32)":"b1b1b209","superchainConfig()":"35e80ab3","version()":"54fd4d50","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"FailedRelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"RelayedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"messageNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"name\":\"SentMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SentMessageExtension1\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSAGE_VERSION\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_CALLDATA_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTAL\",\"outputs\":[{\"internalType\":\"contract OptimismPortal\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_CALL_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_CONSTANT_OVERHEAD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_GAS_CHECK_BUFFER\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RELAY_RESERVED_GAS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"}],\"name\":\"baseGas\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"_superchainConfig\",\"type\":\"address\"},{\"internalType\":\"contract OptimismPortal\",\"name\":\"_portal\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherMessenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"portal\",\"outputs\":[{\"internalType\":\"contract OptimismPortal\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"successfulMessages\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"superchainConfig\",\"outputs\":[{\"internalType\":\"contract SuperchainConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@title L1CrossDomainMessenger\",\"kind\":\"dev\",\"methods\":{\"OTHER_MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"CrossDomainMessenger contract on the other chain.\"}},\"PORTAL()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the OptimismPortal on this chain.\"}},\"baseGas(bytes,uint32)\":{\"params\":{\"_message\":\"Message to compute the amount of required gas for.\",\"_minGasLimit\":\"Minimum desired gas limit when message goes to target.\"},\"returns\":{\"_0\":\"Amount of gas required to guarantee message receipt.\"}},\"initialize(address,address)\":{\"params\":{\"_portal\":\"Contract of the OptimismPortal contract on this network.\",\"_superchainConfig\":\"Contract of the SuperchainConfig contract on this network.\"}},\"messageNonce()\":{\"returns\":{\"_0\":\"Nonce of the next message to be sent, with added message version.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}},\"relayMessage(uint256,address,address,uint256,uint256,bytes)\":{\"params\":{\"_message\":\"Message to send to the target.\",\"_minGasLimit\":\"Minimum amount of gas that the message can be executed with.\",\"_nonce\":\"Nonce of the message being relayed.\",\"_sender\":\"Address of the user who sent the message.\",\"_target\":\"Address that the message is targeted at.\",\"_value\":\"ETH value to send with the message.\"}},\"sendMessage(address,bytes,uint32)\":{\"params\":{\"_message\":\"Message to trigger the target address with.\",\"_minGasLimit\":\"Minimum gas limit that the message can be executed with.\",\"_target\":\"Target contract or wallet address.\"}},\"xDomainMessageSender()\":{\"returns\":{\"_0\":\"Address of the sender of the currently executing message on the other chain.\"}}},\"stateVariables\":{\"portal\":{\"custom:network-specific\":\"\"},\"version\":{\"custom:semver\":\"2.3.0\"}},\"version\":1},\"userdoc\":{\"events\":{\"FailedRelayedMessage(bytes32)\":{\"notice\":\"Emitted whenever a message fails to be relayed on this chain.\"},\"RelayedMessage(bytes32)\":{\"notice\":\"Emitted whenever a message is successfully relayed on this chain.\"},\"SentMessage(address,address,bytes,uint256,uint256)\":{\"notice\":\"Emitted whenever a message is sent to the other chain.\"},\"SentMessageExtension1(address,uint256)\":{\"notice\":\"Additional event data to emit, required as of Bedrock. Cannot be merged with the         SentMessage event without breaking the ABI of this contract, this is good enough.\"}},\"kind\":\"user\",\"methods\":{\"MESSAGE_VERSION()\":{\"notice\":\"Current message version identifier.\"},\"MIN_GAS_CALLDATA_OVERHEAD()\":{\"notice\":\"Extra gas added to base gas for each byte of calldata in a message.\"},\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()\":{\"notice\":\"Denominator for dynamic overhead added to the base gas for a message.\"},\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()\":{\"notice\":\"Numerator for dynamic overhead added to the base gas for a message.\"},\"OTHER_MESSENGER()\":{\"notice\":\"Retrieves the address of the paired CrossDomainMessenger contract on the other chain         Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\"},\"PORTAL()\":{\"notice\":\"Getter function for the OptimismPortal contract on this chain.         Public getter is legacy and will be removed in the future. Use `portal()` instead.\"},\"RELAY_CALL_OVERHEAD()\":{\"notice\":\"Gas reserved for performing the external call in `relayMessage`.\"},\"RELAY_CONSTANT_OVERHEAD()\":{\"notice\":\"Constant overhead added to the base gas for a message.\"},\"RELAY_GAS_CHECK_BUFFER()\":{\"notice\":\"Gas reserved for the execution between the `hasMinGas` check and the external         call in `relayMessage`.\"},\"RELAY_RESERVED_GAS()\":{\"notice\":\"Gas reserved for finalizing the execution of `relayMessage` after the safe call.\"},\"baseGas(bytes,uint32)\":{\"notice\":\"Computes the amount of gas required to guarantee that a given message will be         received on the other chain without running out of gas. Guaranteeing that a message         will not run out of gas is important because this ensures that a message can always         be replayed on the other chain if it fails to execute completely.\"},\"constructor\":{\"notice\":\"Constructs the L1CrossDomainMessenger contract.\"},\"failedMessages(bytes32)\":{\"notice\":\"Mapping of message hashes to a boolean if and only if the message has failed to be         executed at least once. A message will not be present in this mapping if it         successfully executed on the first attempt.\"},\"initialize(address,address)\":{\"notice\":\"Initializes the contract.\"},\"messageNonce()\":{\"notice\":\"Retrieves the next message nonce. Message version will be added to the upper two         bytes of the message nonce. Message version allows us to treat messages as having         different structures.\"},\"otherMessenger()\":{\"notice\":\"CrossDomainMessenger contract on the other chain.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op.\"},\"portal()\":{\"notice\":\"Contract of the OptimismPortal.\"},\"relayMessage(uint256,address,address,uint256,uint256,bytes)\":{\"notice\":\"Relays a message that was sent by the other CrossDomainMessenger contract. Can only         be executed via cross-chain call from the other messenger OR if the message was         already received once and is currently being replayed.\"},\"sendMessage(address,bytes,uint32)\":{\"notice\":\"Sends a message to some target address on the other chain. Note that if the call         always reverts, then the message will be unrelayable, and any ETH sent will be         permanently locked. The same will occur if the target on the other chain is         considered unsafe (see the _isUnsafeTarget() function).\"},\"successfulMessages(bytes32)\":{\"notice\":\"Mapping of message hashes to boolean receipt values. Note that a message will only         be present in this mapping if it has successfully been relayed on this chain, and         can therefore not be relayed again.\"},\"superchainConfig()\":{\"notice\":\"Contract of the SuperchainConfig.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"xDomainMessageSender()\":{\"notice\":\"Retrieves the address of the contract or wallet that initiated the currently         executing message on the other chain. Will throw an error if there is no message         currently being executed. Allows the recipient of a call to see who triggered it.\"}},\"notice\":\"The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible         for sending and receiving data on the L1 side. Users are encouraged to use this         interface instead of interacting with lower-level contracts directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/L1CrossDomainMessenger.sol\":\"L1CrossDomainMessenger\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L1CrossDomainMessenger.sol\":{\"keccak256\":\"0x1a93450f3f9e2262b32e7831709b01d4491befb79a90cc24509b569103674e06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2896f906f07fb6ceb7fea3cb31a10b8289db628142cb0612d9890d62bce265b1\",\"dweb:/ipfs/QmYGAMecafbcT4LRBbDCYFj6mPCa3u5hNGUq2tfjWU3s18\"]},\"src/L1/L2OutputOracle.sol\":{\"keccak256\":\"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303\",\"dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww\"]},\"src/L1/OptimismPortal.sol\":{\"keccak256\":\"0xf46a1158e86edcbb157d0b06a32db37867c0bc9d2aeeed6a8110547c7537201a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0aeb33d425db200953063e3576403b78c50e3a5e7b4f56ef4bead28919406ee2\",\"dweb:/ipfs/QmUFb1rEQnCFrGRZQPHgFFWJQ48SR7wodiSFLgQKu8Jx6k\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\",\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\"]},\"src/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"src/L1/SystemConfig.sol\":{\"keccak256\":\"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce\",\"dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\",\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\",\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/PortalErrors.sol\":{\"keccak256\":\"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957ab55bdade129adcf558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1\",\"dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a\",\"dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/libraries/trie/MerkleTrie.sol\":{\"keccak256\":\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74\",\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\"]},\"src/libraries/trie/SecureMerkleTrie.sol\":{\"keccak256\":\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\",\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\",\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"FailedRelayedMessage","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"RelayedMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"uint256","name":"messageNonce","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasLimit","type":"uint256","indexed":false}],"type":"event","name":"SentMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SentMessageExtension1","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSAGE_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTAL","outputs":[{"internalType":"contract OptimismPortal","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CALL_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CONSTANT_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_GAS_CHECK_BUFFER","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_RESERVED_GAS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"pure","type":"function","name":"baseGas","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"failedMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract SuperchainConfig","name":"_superchainConfig","type":"address"},{"internalType":"contract OptimismPortal","name":"_portal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherMessenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"portal","outputs":[{"internalType":"contract OptimismPortal","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"payable","type":"function","name":"sendMessage"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"successfulMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"OTHER_MESSENGER()":{"custom:legacy":"","returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"PORTAL()":{"custom:legacy":"","returns":{"_0":"Contract of the OptimismPortal on this chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address,address)":{"params":{"_portal":"Contract of the OptimismPortal contract on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain         Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"PORTAL()":{"notice":"Getter function for the OptimismPortal contract on this chain.         Public getter is legacy and will be removed in the future. Use `portal()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external         call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be         received on the other chain without running out of gas. Guaranteeing that a message         will not run out of gas is important because this ensures that a message can always         be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L1CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be         executed at least once. A message will not be present in this mapping if it         successfully executed on the first attempt."},"initialize(address,address)":{"notice":"Initializes the contract."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two         bytes of the message nonce. Message version allows us to treat messages as having         different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op."},"portal()":{"notice":"Contract of the OptimismPortal."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only         be executed via cross-chain call from the other messenger OR if the message was         already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call         always reverts, then the message will be unrelayable, and any ETH sent will be         permanently locked. The same will occur if the target on the other chain is         considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only         be present in this mapping if it has successfully been relayed on this chain, and         can therefore not be relayed again."},"superchainConfig()":{"notice":"Contract of the SuperchainConfig."},"version()":{"notice":"Semantic version."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently         executing message on the other chain. Will throw an error if there is no message         currently being executed. Allows the recipient of a call to see who triggered it."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/L1CrossDomainMessenger.sol":"L1CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1CrossDomainMessenger.sol":{"keccak256":"0x1a93450f3f9e2262b32e7831709b01d4491befb79a90cc24509b569103674e06","urls":["bzz-raw://2896f906f07fb6ceb7fea3cb31a10b8289db628142cb0612d9890d62bce265b1","dweb:/ipfs/QmYGAMecafbcT4LRBbDCYFj6mPCa3u5hNGUq2tfjWU3s18"],"license":"MIT"},"src/L1/L2OutputOracle.sol":{"keccak256":"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42","urls":["bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303","dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww"],"license":"MIT"},"src/L1/OptimismPortal.sol":{"keccak256":"0xf46a1158e86edcbb157d0b06a32db37867c0bc9d2aeeed6a8110547c7537201a","urls":["bzz-raw://0aeb33d425db200953063e3576403b78c50e3a5e7b4f56ef4bead28919406ee2","dweb:/ipfs/QmUFb1rEQnCFrGRZQPHgFFWJQ48SR7wodiSFLgQKu8Jx6k"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L1/SystemConfig.sol":{"keccak256":"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a","urls":["bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce","dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/PortalErrors.sol":{"keccak256":"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957ab55bdade129adcf558","urls":["bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1","dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPReader.sol":{"keccak256":"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb","urls":["bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a","dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/libraries/trie/MerkleTrie.sol":{"keccak256":"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c","urls":["bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74","dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE"],"license":"MIT"},"src/libraries/trie/SecureMerkleTrie.sol":{"keccak256":"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288","urls":["bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681","dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":108324,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_0_0_20","offset":0,"slot":"0","type":"t_address"},{"astId":46970,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"_initialized","offset":20,"slot":"0","type":"t_uint8"},{"astId":46973,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"_initializing","offset":21,"slot":"0","type":"t_bool"},{"astId":108331,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_1_0_1600","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":108334,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_51_0_20","offset":0,"slot":"51","type":"t_address"},{"astId":108339,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_52_0_1568","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":108342,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_101_0_1","offset":0,"slot":"101","type":"t_bool"},{"astId":108347,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_102_0_1568","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":108350,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_151_0_32","offset":0,"slot":"151","type":"t_uint256"},{"astId":108355,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_152_0_1568","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":108360,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_201_0_32","offset":0,"slot":"201","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108365,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_202_0_32","offset":0,"slot":"202","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108410,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"successfulMessages","offset":0,"slot":"203","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108413,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"xDomainMsgSender","offset":0,"slot":"204","type":"t_address"},{"astId":108416,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"msgNonce","offset":0,"slot":"205","type":"t_uint240"},{"astId":108421,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"failedMessages","offset":0,"slot":"206","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108425,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"otherMessenger","offset":0,"slot":"207","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108430,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"__gap","offset":0,"slot":"208","type":"t_array(t_uint256)43_storage"},{"astId":84986,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"superchainConfig","offset":0,"slot":"251","type":"t_contract(SuperchainConfig)88793"},{"astId":84990,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"portal","offset":0,"slot":"252","type":"t_contract(OptimismPortal)87104"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)43_storage":{"encoding":"inplace","label":"uint256[43]","numberOfBytes":"1376","base":"t_uint256"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(OptimismPortal)87104":{"encoding":"inplace","label":"contract OptimismPortal","numberOfBytes":"20"},"t_contract(SuperchainConfig)88793":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain         Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"PORTAL()":{"notice":"Getter function for the OptimismPortal contract on this chain.         Public getter is legacy and will be removed in the future. Use `portal()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external         call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be         received on the other chain without running out of gas. Guaranteeing that a message         will not run out of gas is important because this ensures that a message can always         be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L1CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be         executed at least once. A message will not be present in this mapping if it         successfully executed on the first attempt."},"initialize(address,address)":{"notice":"Initializes the contract."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two         bytes of the message nonce. Message version allows us to treat messages as having         different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op."},"portal()":{"notice":"Contract of the OptimismPortal."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only         be executed via cross-chain call from the other messenger OR if the message was         already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call         always reverts, then the message will be unrelayable, and any ETH sent will be         permanently locked. The same will occur if the target on the other chain is         considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only         be present in this mapping if it has successfully been relayed on this chain, and         can therefore not be relayed again."},"superchainConfig()":{"notice":"Contract of the SuperchainConfig."},"version()":{"notice":"Semantic version."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently         executing message on the other chain. Will throw an error if there is no message         currently being executed. Allows the recipient of a call to see who triggered it."}},"events":{"FailedRelayedMessage(bytes32)":{"notice":"Emitted whenever a message fails to be relayed on this chain."},"RelayedMessage(bytes32)":{"notice":"Emitted whenever a message is successfully relayed on this chain."},"SentMessage(address,address,bytes,uint256,uint256)":{"notice":"Emitted whenever a message is sent to the other chain."},"SentMessageExtension1(address,uint256)":{"notice":"Additional event data to emit, required as of Bedrock. Cannot be merged with the         SentMessage event without breaking the ABI of this contract, this is good enough."}},"notice":"The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible         for sending and receiving data on the L1 side. Users are encouraged to use this         interface instead of interacting with lower-level contracts directly."},"devdoc":{"version":1,"kind":"dev","methods":{"OTHER_MESSENGER()":{"returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"PORTAL()":{"returns":{"_0":"Contract of the OptimismPortal on this chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address,address)":{"params":{"_portal":"Contract of the OptimismPortal contract on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}}},"ast":{"absolutePath":"src/L1/L1CrossDomainMessenger.sol","id":85146,"exportedSymbols":{"CrossDomainMessenger":[108888],"ISemver":[109417],"L1CrossDomainMessenger":[85145],"OptimismPortal":[87104],"Predeploys":[104124],"SuperchainConfig":[88793]},"nodeType":"SourceUnit","src":"32:3102:130","nodes":[{"id":84967,"nodeType":"PragmaDirective","src":"32:23:130","nodes":[],"literals":["solidity","0.8",".15"]},{"id":84969,"nodeType":"ImportDirective","src":"57:58:130","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":84968,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"66:10:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84971,"nodeType":"ImportDirective","src":"116:59:130","nodes":[],"absolutePath":"src/L1/OptimismPortal.sol","file":"src/L1/OptimismPortal.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":87105,"symbolAliases":[{"foreign":{"id":84970,"name":"OptimismPortal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87104,"src":"125:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84973,"nodeType":"ImportDirective","src":"176:78:130","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":84972,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"185:20:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84975,"nodeType":"ImportDirective","src":"255:52:130","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":84974,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"264:7:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84977,"nodeType":"ImportDirective","src":"308:63:130","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":88794,"symbolAliases":[{"foreign":{"id":84976,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"317:16:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85145,"nodeType":"ContractDefinition","src":"701:2432:130","nodes":[{"id":84986,"nodeType":"VariableDeclaration","src":"822:40:130","nodes":[],"constant":false,"documentation":{"id":84983,"nodeType":"StructuredDocumentation","src":"772:45:130","text":"@notice Contract of the SuperchainConfig."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"846:16:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":84985,"nodeType":"UserDefinedTypeName","pathNode":{"id":84984,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"822:16:130"},"referencedDeclaration":88793,"src":"822:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":84990,"nodeType":"VariableDeclaration","src":"950:28:130","nodes":[],"constant":false,"documentation":{"id":84987,"nodeType":"StructuredDocumentation","src":"869:76:130","text":"@notice Contract of the OptimismPortal.\n @custom:network-specific"},"functionSelector":"6425666b","mutability":"mutable","name":"portal","nameLocation":"972:6:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":84989,"nodeType":"UserDefinedTypeName","pathNode":{"id":84988,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"950:14:130"},"referencedDeclaration":87104,"src":"950:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"public"},{"id":84994,"nodeType":"VariableDeclaration","src":"1048:40:130","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":84991,"nodeType":"StructuredDocumentation","src":"985:58:130","text":"@notice Semantic version.\n @custom:semver 2.3.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1071:7:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":84992,"name":"string","nodeType":"ElementaryTypeName","src":"1048:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e332e30","id":84993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1081:7:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_22fd31a466cd79bdd552fae6268088a4b5436c44416a9eb8cc3035d8d9e397ab","typeString":"literal_string \"2.3.0\""},"value":"2.3.0"},"visibility":"public"},{"id":85019,"nodeType":"FunctionDefinition","src":"1159:163:130","nodes":[],"body":{"id":85018,"nodeType":"Block","src":"1196:126:130","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1263:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1255:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85002,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:130","typeDescriptions":{}}},"id":85005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1255:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85001,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"1238:16:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$88793_$","typeString":"type(contract SuperchainConfig)"}},"id":85006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1238:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1300:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85010,"name":"address","nodeType":"ElementaryTypeName","src":"1300:7:130","typeDescriptions":{}}},"id":85013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1300:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1292:8:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":85008,"name":"address","nodeType":"ElementaryTypeName","src":"1292:8:130","stateMutability":"payable","typeDescriptions":{}}},"id":85014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1292:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":85007,"name":"OptimismPortal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87104,"src":"1277:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OptimismPortal_$87104_$","typeString":"type(contract OptimismPortal)"}},"id":85015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1277:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85000,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85047,"src":"1206:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_SuperchainConfig_$88793_$_t_contract$_OptimismPortal_$87104_$returns$__$","typeString":"function (contract SuperchainConfig,contract OptimismPortal)"}},"id":85016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_superchainConfig","_portal"],"nodeType":"FunctionCall","src":"1206:109:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85017,"nodeType":"ExpressionStatement","src":"1206:109:130"}]},"documentation":{"id":84995,"nodeType":"StructuredDocumentation","src":"1095:59:130","text":"@notice Constructs the L1CrossDomainMessenger contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":84998,"kind":"baseConstructorSpecifier","modifierName":{"id":84997,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1173:20:130"},"nodeType":"ModifierInvocation","src":"1173:22:130"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":84996,"nodeType":"ParameterList","parameters":[],"src":"1170:2:130"},"returnParameters":{"id":84999,"nodeType":"ParameterList","parameters":[],"src":"1196:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85047,"nodeType":"FunctionDefinition","src":"1542:296:130","nodes":[],"body":{"id":85046,"nodeType":"Block","src":"1641:197:130","nodes":[],"statements":[{"expression":{"id":85033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85031,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84986,"src":"1651:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85032,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85023,"src":"1670:17:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"src":"1651:36:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85034,"nodeType":"ExpressionStatement","src":"1651:36:130"},{"expression":{"id":85037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85035,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"1697:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85036,"name":"_portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85026,"src":"1706:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"src":"1697:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85038,"nodeType":"ExpressionStatement","src":"1697:16:130"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":85041,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"1791:10:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":85042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","nodeType":"MemberAccess","referencedDeclaration":104004,"src":"1791:36:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85040,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1770:20:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":85043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1770:58:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":85039,"name":"__CrossDomainMessenger_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108852,"src":"1723:27:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$returns$__$","typeString":"function (contract CrossDomainMessenger)"}},"id":85044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_otherMessenger"],"nodeType":"FunctionCall","src":"1723:108:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85045,"nodeType":"ExpressionStatement","src":"1723:108:130"}]},"documentation":{"id":85020,"nodeType":"StructuredDocumentation","src":"1328:209:130","text":"@notice Initializes the contract.\n @param _superchainConfig Contract of the SuperchainConfig contract on this network.\n @param _portal Contract of the OptimismPortal contract on this network."},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":85029,"kind":"modifierInvocation","modifierName":{"id":85028,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47034,"src":"1629:11:130"},"nodeType":"ModifierInvocation","src":"1629:11:130"}],"name":"initialize","nameLocation":"1551:10:130","parameters":{"id":85027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85023,"mutability":"mutable","name":"_superchainConfig","nameLocation":"1579:17:130","nodeType":"VariableDeclaration","scope":85047,"src":"1562:34:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85022,"nodeType":"UserDefinedTypeName","pathNode":{"id":85021,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"1562:16:130"},"referencedDeclaration":88793,"src":"1562:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"internal"},{"constant":false,"id":85026,"mutability":"mutable","name":"_portal","nameLocation":"1613:7:130","nodeType":"VariableDeclaration","scope":85047,"src":"1598:22:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":85025,"nodeType":"UserDefinedTypeName","pathNode":{"id":85024,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"1598:14:130"},"referencedDeclaration":87104,"src":"1598:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"internal"}],"src":"1561:60:130"},"returnParameters":{"id":85030,"nodeType":"ParameterList","parameters":[],"src":"1641:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85057,"nodeType":"FunctionDefinition","src":"2107:87:130","nodes":[],"body":{"id":85056,"nodeType":"Block","src":"2164:30:130","nodes":[],"statements":[{"expression":{"id":85054,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2181:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"functionReturnParameters":85053,"id":85055,"nodeType":"Return","src":"2174:13:130"}]},"documentation":{"id":85048,"nodeType":"StructuredDocumentation","src":"1844:258:130","text":"@notice Getter function for the OptimismPortal contract on this chain.\n         Public getter is legacy and will be removed in the future. Use `portal()` instead.\n @return Contract of the OptimismPortal on this chain.\n @custom:legacy"},"functionSelector":"0ff754ea","implemented":true,"kind":"function","modifiers":[],"name":"PORTAL","nameLocation":"2116:6:130","parameters":{"id":85049,"nodeType":"ParameterList","parameters":[],"src":"2122:2:130"},"returnParameters":{"id":85053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85057,"src":"2148:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":85051,"nodeType":"UserDefinedTypeName","pathNode":{"id":85050,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"2148:14:130"},"referencedDeclaration":87104,"src":"2148:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"internal"}],"src":"2147:16:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":85083,"nodeType":"FunctionDefinition","src":"2241:320:130","nodes":[],"body":{"id":85082,"nodeType":"Block","src":"2348:213:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":85075,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85060,"src":"2420:3:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85076,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85064,"src":"2445:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85077,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85062,"src":"2476:9:130","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"66616c7365","id":85078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2512:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":85079,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85066,"src":"2538:5:130","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85070,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2358:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depositTransaction","nodeType":"MemberAccess","referencedDeclaration":87068,"src":"2358:25:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint64,bool,bytes memory) payable external"}},"id":85074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":85073,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85064,"src":"2392:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2358:42:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,uint256,uint64,bool,bytes memory) payable external"}},"id":85080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_to","_value","_gasLimit","_isCreation","_data"],"nodeType":"FunctionCall","src":"2358:196:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85081,"nodeType":"ExpressionStatement","src":"2358:196:130"}]},"baseFunctions":[108864],"documentation":{"id":85058,"nodeType":"StructuredDocumentation","src":"2200:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessage","nameLocation":"2250:12:130","overrides":{"id":85068,"nodeType":"OverrideSpecifier","overrides":[],"src":"2339:8:130"},"parameters":{"id":85067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85060,"mutability":"mutable","name":"_to","nameLocation":"2271:3:130","nodeType":"VariableDeclaration","scope":85083,"src":"2263:11:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85059,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85062,"mutability":"mutable","name":"_gasLimit","nameLocation":"2283:9:130","nodeType":"VariableDeclaration","scope":85083,"src":"2276:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":85061,"name":"uint64","nodeType":"ElementaryTypeName","src":"2276:6:130","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":85064,"mutability":"mutable","name":"_value","nameLocation":"2302:6:130","nodeType":"VariableDeclaration","scope":85083,"src":"2294:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85063,"name":"uint256","nodeType":"ElementaryTypeName","src":"2294:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85066,"mutability":"mutable","name":"_data","nameLocation":"2323:5:130","nodeType":"VariableDeclaration","scope":85083,"src":"2310:18:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85065,"name":"bytes","nodeType":"ElementaryTypeName","src":"2310:5:130","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2262:67:130"},"returnParameters":{"id":85069,"nodeType":"ParameterList","parameters":[],"src":"2348:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85108,"nodeType":"FunctionDefinition","src":"2608:168:130","nodes":[],"body":{"id":85107,"nodeType":"Block","src":"2675:101:130","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85090,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2692:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2692:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85094,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2714:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2706:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85092,"name":"address","nodeType":"ElementaryTypeName","src":"2706:7:130","typeDescriptions":{}}},"id":85095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2706:15:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2692:29:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85097,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2725:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l2Sender","nodeType":"MemberAccess","referencedDeclaration":86489,"src":"2725:15:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":85099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2725:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85102,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108425,"src":"2754:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":85101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2746:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85100,"name":"address","nodeType":"ElementaryTypeName","src":"2746:7:130","typeDescriptions":{}}},"id":85103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2746:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2725:44:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2692:77:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85089,"id":85106,"nodeType":"Return","src":"2685:84:130"}]},"baseFunctions":[108870],"documentation":{"id":85084,"nodeType":"StructuredDocumentation","src":"2567:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isOtherMessenger","nameLocation":"2617:17:130","overrides":{"id":85086,"nodeType":"OverrideSpecifier","overrides":[],"src":"2651:8:130"},"parameters":{"id":85085,"nodeType":"ParameterList","parameters":[],"src":"2634:2:130"},"returnParameters":{"id":85089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85108,"src":"2669:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85087,"name":"bool","nodeType":"ElementaryTypeName","src":"2669:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2668:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":85132,"nodeType":"FunctionDefinition","src":"2823:158:130","nodes":[],"body":{"id":85131,"nodeType":"Block","src":"2903:78:130","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85117,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85111,"src":"2920:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85120,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2939:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_L1CrossDomainMessenger_$85145","typeString":"contract L1CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1CrossDomainMessenger_$85145","typeString":"contract L1CrossDomainMessenger"}],"id":85119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2931:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85118,"name":"address","nodeType":"ElementaryTypeName","src":"2931:7:130","typeDescriptions":{}}},"id":85121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2931:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2920:24:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85123,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85111,"src":"2948:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85126,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2967:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2959:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85124,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:130","typeDescriptions":{}}},"id":85127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2959:15:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2948:26:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2920:54:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85116,"id":85130,"nodeType":"Return","src":"2913:61:130"}]},"baseFunctions":[108878],"documentation":{"id":85109,"nodeType":"StructuredDocumentation","src":"2782:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isUnsafeTarget","nameLocation":"2832:15:130","overrides":{"id":85113,"nodeType":"OverrideSpecifier","overrides":[],"src":"2879:8:130"},"parameters":{"id":85112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85111,"mutability":"mutable","name":"_target","nameLocation":"2856:7:130","nodeType":"VariableDeclaration","scope":85132,"src":"2848:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85110,"name":"address","nodeType":"ElementaryTypeName","src":"2848:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2847:17:130"},"returnParameters":{"id":85116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85132,"src":"2897:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85114,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2896:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":85144,"nodeType":"FunctionDefinition","src":"3028:103:130","nodes":[],"body":{"id":85143,"nodeType":"Block","src":"3082:49:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85139,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84986,"src":"3099:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":88707,"src":"3099:23:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":85141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3099:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85138,"id":85142,"nodeType":"Return","src":"3092:32:130"}]},"baseFunctions":[108887],"documentation":{"id":85133,"nodeType":"StructuredDocumentation","src":"2987:36:130","text":"@inheritdoc CrossDomainMessenger"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"3037:6:130","overrides":{"id":85135,"nodeType":"OverrideSpecifier","overrides":[],"src":"3058:8:130"},"parameters":{"id":85134,"nodeType":"ParameterList","parameters":[],"src":"3043:2:130"},"returnParameters":{"id":85138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85144,"src":"3076:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85136,"name":"bool","nodeType":"ElementaryTypeName","src":"3076:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3075:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":84979,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"736:20:130"},"id":84980,"nodeType":"InheritanceSpecifier","src":"736:20:130"},{"baseName":{"id":84981,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"758:7:130"},"id":84982,"nodeType":"InheritanceSpecifier","src":"758:7:130"}],"canonicalName":"L1CrossDomainMessenger","contractDependencies":[],"contractKind":"contract","documentation":{"id":84978,"nodeType":"StructuredDocumentation","src":"373:328:130","text":"@custom:proxied\n @title L1CrossDomainMessenger\n @notice The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible\n         for sending and receiving data on the L1 side. Users are encouraged to use this\n         interface instead of interacting with lower-level contracts directly."},"fullyImplemented":true,"linearizedBaseContracts":[85145,109417,108888,108366,47114,108325],"name":"L1CrossDomainMessenger","nameLocation":"710:22:130","scope":85146,"usedErrors":[]}],"license":"MIT"},"id":130}