diff --git a/op-bindings/bindings/l1crossdomainmessenger.go b/op-bindings/bindings/l1crossdomainmessenger.go index 25552e5c8095..8d82c123dcaa 100644 --- a/op-bindings/bindings/l1crossdomainmessenger.go +++ b/op-bindings/bindings/l1crossdomainmessenger.go @@ -31,7 +31,7 @@ var ( // L1CrossDomainMessengerMetaData contains all meta data concerning the L1CrossDomainMessenger contract. var L1CrossDomainMessengerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"contractOptimismPortal\",\"name\":\"_portal\",\"type\":\"address\"}],\"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\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"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_CONSTANT_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\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTAL\",\"outputs\":[{\"internalType\":\"contractOptimismPortal\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}]", - Bin: "0x6101206040523480156200001257600080fd5b5060405162002d1038038062002d1083398101604081905262000035916200046a565b734200000000000000000000000000000000000007608052600160a081905260c052600060e08190526001600160a01b0382166101005262000077906200007e565b506200049c565b600054600160a81b900460ff1615808015620000a757506000546001600160a01b90910460ff16105b80620000de5750620000c430620001d760201b620014411760201c565b158015620000de5750600054600160a01b900460ff166001145b620001475760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b179055801562000175576000805460ff60a81b1916600160a81b1790555b6200017f620001e6565b6200018a8262000282565b8015620001d3576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054600160a81b900460ff16620002445760405162461bcd60e51b815260206004820152602b602482015260008051602062002cf083398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b60cc80546001600160a01b03191661dead17905562000262620002d4565b6200026c62000332565b620002766200039b565b6200028062000405565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054600160a81b900460ff16620002805760405162461bcd60e51b815260206004820152602b602482015260008051602062002cf083398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b600054600160a81b900460ff16620003905760405162461bcd60e51b815260206004820152602b602482015260008051602062002cf083398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b620002803362000282565b600054600160a81b900460ff16620003f95760405162461bcd60e51b815260206004820152602b602482015260008051602062002cf083398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6065805460ff19169055565b600054600160a81b900460ff16620004635760405162461bcd60e51b815260206004820152602b602482015260008051602062002cf083398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6001609755565b6000602082840312156200047d57600080fd5b81516001600160a01b03811681146200049557600080fd5b9392505050565b60805160a05160c05160e051610100516127e56200050b600039600081816101d50152818161149a01528181611aa501528181611b060152611bd2015260006107860152600061075d0152600061073401526000818161035d015281816104bc0152611acf01526127e56000f3fe6080604052600436106101755760003560e01c80637dea7cc3116100cb578063b1b1b2091161007f578063d764ad0b11610059578063d764ad0b1461041f578063ecc7042814610432578063f2fde38b1461049757600080fd5b8063b1b1b209146103af578063b28ade25146103df578063c4d66de8146103ff57600080fd5b80638da5cb5b116100b05780638da5cb5b146103205780639fce812c1461034b578063a4e7f8bd1461037f57600080fd5b80637dea7cc3146102f45780638456cb591461030b57600080fd5b80633f4ba83a1161012d5780635c975abb116101075780635c975abb146102a65780636e296e45146102ca578063715018a6146102df57600080fd5b80633f4ba83a146102475780633f827a5a1461025c57806354fd4d501461028457600080fd5b80630ff754ea1161015e5780630ff754ea146101c35780632828d7e81461021c5780633dbb202b1461023257600080fd5b8063028f85f71461017a5780630c568498146101ad575b600080fd5b34801561018657600080fd5b5061018f601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101b957600080fd5b5061018f6103e881565b3480156101cf57600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a4565b34801561022857600080fd5b5061018f6103f881565b61024561024036600461214e565b6104b7565b005b34801561025357600080fd5b5061024561071b565b34801561026857600080fd5b50610271600181565b60405161ffff90911681526020016101a4565b34801561029057600080fd5b5061029961072d565b6040516101a4919061222f565b3480156102b257600080fd5b5060655460ff165b60405190151581526020016101a4565b3480156102d657600080fd5b506101f76107d0565b3480156102eb57600080fd5b506102456108bc565b34801561030057600080fd5b5061018f62030d4081565b34801561031757600080fd5b506102456108ce565b34801561032c57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166101f7565b34801561035757600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b34801561038b57600080fd5b506102ba61039a366004612249565b60ce6020526000908152604090205460ff1681565b3480156103bb57600080fd5b506102ba6103ca366004612249565b60cb6020526000908152604090205460ff1681565b3480156103eb57600080fd5b5061018f6103fa366004612262565b6108de565b34801561040b57600080fd5b5061024561041a3660046122b6565b61092a565b61024561042d3660046122d3565b610b31565b34801561043e57600080fd5b5061048960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101a4565b3480156104a357600080fd5b506102456104b23660046122b6565b61138a565b6105f07f00000000000000000000000000000000000000000000000000000000000000006104e68585856108de565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061055260cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c60405160240161056e97969594939291906123a2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261145d565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561067560cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b86604051610687959493929190612401565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b610723611512565b61072b611593565b565b60606107587f0000000000000000000000000000000000000000000000000000000000000000611610565b6107817f0000000000000000000000000000000000000000000000000000000000000000611610565b6107aa7f0000000000000000000000000000000000000000000000000000000000000000611610565b6040516020016107bc9392919061244f565b604051602081830303815290604052905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21530161089f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6108c4611512565b61072b6000611745565b6108d6611512565b61072b6117bc565b600062030d406108ef6010856124f4565b6103e86109046103f863ffffffff87166124f4565b61090e9190612553565b610918919061257a565b610922919061257a565b949350505050565b6000547501000000000000000000000000000000000000000000900460ff1615808015610975575060005460017401000000000000000000000000000000000000000090910460ff16105b806109a75750303b1580156109a7575060005474010000000000000000000000000000000000000000900460ff166001145b610a33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610896565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610ab957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610ac1611817565b610aca82611745565b8015610b2d57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610b75878787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061190e92505050565b600081815260cf602052604090205460ff1615610bee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610896565b600081815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610c2d6119dc565b60f088901c6000819003610d31576000610c8d888a87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d611a49565b600081815260cb602052604090205490915060ff1615610d2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c617965640000000000000000006064820152608401610896565b505b6000610d778a8a8a8a8a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6892505050565b9050610d81611a8b565b15610db957863414610d9557610d956125a6565b600081815260ce602052604090205460ff1615610db457610db46125a6565b610f0b565b3415610e6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a401610896565b600081815260ce602052604090205460ff16610f0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c61796564000000000000000000000000000000006064820152608401610896565b610f1488611baf565b15610fc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a401610896565b600081815260cb602052604090205460ff1615611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c61796564000000000000000000006064820152608401610896565b61107261afc8876125d5565b5a1015611101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d6573736167650000000000000000006064820152608401610896565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b16179055600061119d8961115561138861afc86125ed565b5a61116091906125ed565b8a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2692505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080151560010361123857600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611345565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3201611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610896565b505050600090815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050565b905090565b611392611512565b73ffffffffffffffffffffffffffffffffffffffff8116611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610896565b61143e81611745565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e9e05c429084906114da908890839089906000908990600401612604565b6000604051808303818588803b1580156114f357600080fd5b505af1158015611507573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610896565b61159b611c40565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60608160000361165357505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561167d57806116678161265c565b91506116769050600a83612694565b9150611657565b60008167ffffffffffffffff811115611698576116986126a8565b6040519080825280601f01601f1916602001820160405280156116c2576020820181803683370190505b5090505b8415610922576116d76001836125ed565b91506116e4600a866126d7565b6116ef9060306125d5565b60f81b818381518110611704576117046126eb565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061173e600a86612694565b94506116c6565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6117c46119dc565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115e63390565b6000547501000000000000000000000000000000000000000000900460ff166118c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790556118f6611cac565b6118fe611d57565b611906611e0b565b61072b611ee0565b600060f087901c808203611930576119288688858b611a49565b9150506119d2565b8061ffff1660010361194a57611928888888888888611a68565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f48617368696e673a20756e6b6e6f776e2063726f737320646f6d61696e206d6560448201527f73736167652076657273696f6e000000000000000000000000000000000000006064820152608401610896565b9695505050505050565b60655460ff161561072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610896565b6000611a5785858585611f92565b805190602001209050949350505050565b6000611a7887878787878761202b565b8051906020012090509695505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561138557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639bf62d826040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b93919061271a565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611c2057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b92915050565b600080600080845160208601878a8af19695505050505050565b60655460ff1661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610896565b6000547501000000000000000000000000000000000000000000900460ff1661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b6000547501000000000000000000000000000000000000000000900460ff16611e02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b61072b33611745565b6000547501000000000000000000000000000000000000000000900460ff16611eb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000547501000000000000000000000000000000000000000000900460ff16611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b6001609755565b606084848484604051602401611fab9493929190612737565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161204896959493929190612781565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461143e57600080fd5b60008083601f8401126120fe57600080fd5b50813567ffffffffffffffff81111561211657600080fd5b60208301915083602082850101111561212e57600080fd5b9250929050565b803563ffffffff8116811461214957600080fd5b919050565b6000806000806060858703121561216457600080fd5b843561216f816120ca565b9350602085013567ffffffffffffffff81111561218b57600080fd5b612197878288016120ec565b90945092506121aa905060408601612135565b905092959194509250565b60005b838110156121d05781810151838201526020016121b8565b838111156121df576000848401525b50505050565b600081518084526121fd8160208601602086016121b5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061224260208301846121e5565b9392505050565b60006020828403121561225b57600080fd5b5035919050565b60008060006040848603121561227757600080fd5b833567ffffffffffffffff81111561228e57600080fd5b61229a868287016120ec565b90945092506122ad905060208501612135565b90509250925092565b6000602082840312156122c857600080fd5b8135612242816120ca565b600080600080600080600060c0888a0312156122ee57600080fd5b873596506020880135612300816120ca565b95506040880135612310816120ca565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561233a57600080fd5b6123468a828b016120ec565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a08301526123f460c083018486612359565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000612431608083018688612359565b905083604083015263ffffffff831660608301529695505050505050565b600084516124618184602089016121b5565b80830190507f2e00000000000000000000000000000000000000000000000000000000000000808252855161249d816001850160208a016121b5565b600192019182015283516124b88160028401602088016121b5565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168185168183048111821515161561251b5761251b6124c5565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff8084168061256e5761256e612524565b92169190910492915050565b600067ffffffffffffffff80831681851680830382111561259d5761259d6124c5565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082198211156125e8576125e86124c5565b500190565b6000828210156125ff576125ff6124c5565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a06080820152600061265160a08301846121e5565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361268d5761268d6124c5565b5060010190565b6000826126a3576126a3612524565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000826126e6576126e6612524565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561272c57600080fd5b8151612242816120ca565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261277060808301856121e5565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526127cc60c08301846121e5565b9897505050505050505056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", + Bin: "0x6101206040523480156200001257600080fd5b5060405162002caa38038062002caa83398101604081905262000035916200046a565b734200000000000000000000000000000000000007608052600160a081905260c052600060e08190526001600160a01b0382166101005262000077906200007e565b506200049c565b600054600160a81b900460ff1615808015620000a757506000546001600160a01b90910460ff16105b80620000de5750620000c430620001d760201b620014a91760201c565b158015620000de5750600054600160a01b900460ff166001145b620001475760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b179055801562000175576000805460ff60a81b1916600160a81b1790555b6200017f620001e6565b6200018a8262000282565b8015620001d3576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054600160a81b900460ff16620002445760405162461bcd60e51b815260206004820152602b602482015260008051602062002c8a83398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b60cc80546001600160a01b03191661dead17905562000262620002d4565b6200026c62000332565b620002766200039b565b6200028062000405565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054600160a81b900460ff16620002805760405162461bcd60e51b815260206004820152602b602482015260008051602062002c8a83398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b600054600160a81b900460ff16620003905760405162461bcd60e51b815260206004820152602b602482015260008051602062002c8a83398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b620002803362000282565b600054600160a81b900460ff16620003f95760405162461bcd60e51b815260206004820152602b602482015260008051602062002c8a83398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6065805460ff19169055565b600054600160a81b900460ff16620004635760405162461bcd60e51b815260206004820152602b602482015260008051602062002c8a83398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6001609755565b6000602082840312156200047d57600080fd5b81516001600160a01b03811681146200049557600080fd5b9392505050565b60805160a05160c05160e0516101005161277f6200050b600039600081816101d50152818161150201528181611a3f01528181611aa00152611b6c015260006107860152600061075d0152600061073401526000818161035d015281816104bc0152611a69015261277f6000f3fe6080604052600436106101755760003560e01c80637dea7cc3116100cb578063b1b1b2091161007f578063d764ad0b11610059578063d764ad0b1461041f578063ecc7042814610432578063f2fde38b1461049757600080fd5b8063b1b1b209146103af578063b28ade25146103df578063c4d66de8146103ff57600080fd5b80638da5cb5b116100b05780638da5cb5b146103205780639fce812c1461034b578063a4e7f8bd1461037f57600080fd5b80637dea7cc3146102f45780638456cb591461030b57600080fd5b80633f4ba83a1161012d5780635c975abb116101075780635c975abb146102a65780636e296e45146102ca578063715018a6146102df57600080fd5b80633f4ba83a146102475780633f827a5a1461025c57806354fd4d501461028457600080fd5b80630ff754ea1161015e5780630ff754ea146101c35780632828d7e81461021c5780633dbb202b1461023257600080fd5b8063028f85f71461017a5780630c568498146101ad575b600080fd5b34801561018657600080fd5b5061018f601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101b957600080fd5b5061018f6103e881565b3480156101cf57600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a4565b34801561022857600080fd5b5061018f6103f881565b6102456102403660046120e8565b6104b7565b005b34801561025357600080fd5b5061024561071b565b34801561026857600080fd5b50610271600181565b60405161ffff90911681526020016101a4565b34801561029057600080fd5b5061029961072d565b6040516101a491906121c9565b3480156102b257600080fd5b5060655460ff165b60405190151581526020016101a4565b3480156102d657600080fd5b506101f76107d0565b3480156102eb57600080fd5b506102456108bc565b34801561030057600080fd5b5061018f62030d4081565b34801561031757600080fd5b506102456108ce565b34801561032c57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166101f7565b34801561035757600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b34801561038b57600080fd5b506102ba61039a3660046121e3565b60ce6020526000908152604090205460ff1681565b3480156103bb57600080fd5b506102ba6103ca3660046121e3565b60cb6020526000908152604090205460ff1681565b3480156103eb57600080fd5b5061018f6103fa3660046121fc565b6108de565b34801561040b57600080fd5b5061024561041a366004612250565b61092a565b61024561042d36600461226d565b610b31565b34801561043e57600080fd5b5061048960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101a4565b3480156104a357600080fd5b506102456104b2366004612250565b6113f2565b6105f07f00000000000000000000000000000000000000000000000000000000000000006104e68585856108de565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061055260cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c60405160240161056e979695949392919061233c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526114c5565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561067560cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b8660405161068795949392919061239b565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b61072361157a565b61072b6115fb565b565b60606107587f0000000000000000000000000000000000000000000000000000000000000000611678565b6107817f0000000000000000000000000000000000000000000000000000000000000000611678565b6107aa7f0000000000000000000000000000000000000000000000000000000000000000611678565b6040516020016107bc939291906123e9565b604051602081830303815290604052905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21530161089f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6108c461157a565b61072b60006117ad565b6108d661157a565b61072b611824565b600062030d406108ef60108561248e565b6103e86109046103f863ffffffff871661248e565b61090e91906124ed565b6109189190612514565b6109229190612514565b949350505050565b6000547501000000000000000000000000000000000000000000900460ff1615808015610975575060005460017401000000000000000000000000000000000000000090910460ff16105b806109a75750303b1580156109a7575060005474010000000000000000000000000000000000000000900460ff166001145b610a33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610896565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610ab957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610ac161187f565b610aca826117ad565b8015610b2d57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610b39611976565b60f087901c60028110610bf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a401610896565b8061ffff16600003610ce9576000610c45878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506119e3915050565b600081815260cb602052604090205490915060ff1615610ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c617965640000000000000000006064820152608401610896565b505b6000610d2f898989898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0292505050565b600081815260cf602052604090205490915060ff1615610dab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610896565b600081815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610dea611a25565b15610e2257853414610dfe57610dfe612540565b600081815260ce602052604090205460ff1615610e1d57610e1d612540565b610f74565b3415610ed6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a401610896565b600081815260ce602052604090205460ff16610f74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c61796564000000000000000000000000000000006064820152608401610896565b610f7d87611b49565b15611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a401610896565b600081815260cb602052604090205460ff16156110cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c61796564000000000000000000006064820152608401610896565b6110db61afc88661256f565b5a101561116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d6573736167650000000000000000006064820152608401610896565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a161790556000611206886111be61138861afc8612587565b5a6111c99190612587565b8988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bc092505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905590508015156001036112a157600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26113ae565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016113ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610896565b50600090815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050505050505050565b905090565b6113fa61157a565b73ffffffffffffffffffffffffffffffffffffffff811661149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610896565b6114a6816117ad565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e9e05c4290849061154290889083908990600090899060040161259e565b6000604051808303818588803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610896565b611603611bda565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6060816000036116bb57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156116e557806116cf816125f6565b91506116de9050600a8361262e565b91506116bf565b60008167ffffffffffffffff81111561170057611700612642565b6040519080825280601f01601f19166020018201604052801561172a576020820181803683370190505b5090505b84156109225761173f600183612587565b915061174c600a86612671565b61175790603061256f565b60f81b81838151811061176c5761176c612685565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506117a6600a8661262e565b945061172e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61182c611976565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861164e3390565b6000547501000000000000000000000000000000000000000000900460ff1661192a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905561195e611c46565b611966611cf1565b61196e611da5565b61072b611e7a565b60655460ff161561072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610896565b60006119f185858585611f2c565b805190602001209050949350505050565b6000611a12878787878787611fc5565b8051906020012090509695505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480156113ed57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639bf62d826040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2d91906126b4565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611bba57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b92915050565b600080600080845160208601878a8af19695505050505050565b60655460ff1661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610896565b6000547501000000000000000000000000000000000000000000900460ff1661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b6000547501000000000000000000000000000000000000000000900460ff16611d9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b61072b336117ad565b6000547501000000000000000000000000000000000000000000900460ff16611e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000547501000000000000000000000000000000000000000000900460ff16611f25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b6001609755565b606084848484604051602401611f4594939291906126d1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611fe29695949392919061271b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146114a657600080fd5b60008083601f84011261209857600080fd5b50813567ffffffffffffffff8111156120b057600080fd5b6020830191508360208285010111156120c857600080fd5b9250929050565b803563ffffffff811681146120e357600080fd5b919050565b600080600080606085870312156120fe57600080fd5b843561210981612064565b9350602085013567ffffffffffffffff81111561212557600080fd5b61213187828801612086565b90945092506121449050604086016120cf565b905092959194509250565b60005b8381101561216a578181015183820152602001612152565b83811115612179576000848401525b50505050565b6000815180845261219781602086016020860161214f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006121dc602083018461217f565b9392505050565b6000602082840312156121f557600080fd5b5035919050565b60008060006040848603121561221157600080fd5b833567ffffffffffffffff81111561222857600080fd5b61223486828701612086565b90945092506122479050602085016120cf565b90509250925092565b60006020828403121561226257600080fd5b81356121dc81612064565b600080600080600080600060c0888a03121561228857600080fd5b87359650602088013561229a81612064565b955060408801356122aa81612064565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156122d457600080fd5b6122e08a828b01612086565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a083015261238e60c0830184866122f3565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006123cb6080830186886122f3565b905083604083015263ffffffff831660608301529695505050505050565b600084516123fb81846020890161214f565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612437816001850160208a0161214f565b6001920191820152835161245281600284016020880161214f565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818516818304811182151516156124b5576124b561245f565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff80841680612508576125086124be565b92169190910492915050565b600067ffffffffffffffff8083168185168083038211156125375761253761245f565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082198211156125825761258261245f565b500190565b6000828210156125995761259961245f565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a0608082015260006125eb60a083018461217f565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126275761262761245f565b5060010190565b60008261263d5761263d6124be565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612680576126806124be565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156126c657600080fd5b81516121dc81612064565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261270a608083018561217f565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261276660c083018461217f565b9897505050505050505056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", } // L1CrossDomainMessengerABI is the input ABI used to generate the binding from. diff --git a/op-bindings/bindings/l1crossdomainmessenger_more.go b/op-bindings/bindings/l1crossdomainmessenger_more.go index e5f7741d5cb2..e9bd8ebf4466 100644 --- a/op-bindings/bindings/l1crossdomainmessenger_more.go +++ b/op-bindings/bindings/l1crossdomainmessenger_more.go @@ -13,7 +13,7 @@ const L1CrossDomainMessengerStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\ var L1CrossDomainMessengerStorageLayout = new(solc.StorageLayout) -var L1CrossDomainMessengerDeployedBin = "0x6080604052600436106101755760003560e01c80637dea7cc3116100cb578063b1b1b2091161007f578063d764ad0b11610059578063d764ad0b1461041f578063ecc7042814610432578063f2fde38b1461049757600080fd5b8063b1b1b209146103af578063b28ade25146103df578063c4d66de8146103ff57600080fd5b80638da5cb5b116100b05780638da5cb5b146103205780639fce812c1461034b578063a4e7f8bd1461037f57600080fd5b80637dea7cc3146102f45780638456cb591461030b57600080fd5b80633f4ba83a1161012d5780635c975abb116101075780635c975abb146102a65780636e296e45146102ca578063715018a6146102df57600080fd5b80633f4ba83a146102475780633f827a5a1461025c57806354fd4d501461028457600080fd5b80630ff754ea1161015e5780630ff754ea146101c35780632828d7e81461021c5780633dbb202b1461023257600080fd5b8063028f85f71461017a5780630c568498146101ad575b600080fd5b34801561018657600080fd5b5061018f601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101b957600080fd5b5061018f6103e881565b3480156101cf57600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a4565b34801561022857600080fd5b5061018f6103f881565b61024561024036600461214e565b6104b7565b005b34801561025357600080fd5b5061024561071b565b34801561026857600080fd5b50610271600181565b60405161ffff90911681526020016101a4565b34801561029057600080fd5b5061029961072d565b6040516101a4919061222f565b3480156102b257600080fd5b5060655460ff165b60405190151581526020016101a4565b3480156102d657600080fd5b506101f76107d0565b3480156102eb57600080fd5b506102456108bc565b34801561030057600080fd5b5061018f62030d4081565b34801561031757600080fd5b506102456108ce565b34801561032c57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166101f7565b34801561035757600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b34801561038b57600080fd5b506102ba61039a366004612249565b60ce6020526000908152604090205460ff1681565b3480156103bb57600080fd5b506102ba6103ca366004612249565b60cb6020526000908152604090205460ff1681565b3480156103eb57600080fd5b5061018f6103fa366004612262565b6108de565b34801561040b57600080fd5b5061024561041a3660046122b6565b61092a565b61024561042d3660046122d3565b610b31565b34801561043e57600080fd5b5061048960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101a4565b3480156104a357600080fd5b506102456104b23660046122b6565b61138a565b6105f07f00000000000000000000000000000000000000000000000000000000000000006104e68585856108de565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061055260cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c60405160240161056e97969594939291906123a2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261145d565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561067560cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b86604051610687959493929190612401565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b610723611512565b61072b611593565b565b60606107587f0000000000000000000000000000000000000000000000000000000000000000611610565b6107817f0000000000000000000000000000000000000000000000000000000000000000611610565b6107aa7f0000000000000000000000000000000000000000000000000000000000000000611610565b6040516020016107bc9392919061244f565b604051602081830303815290604052905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21530161089f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6108c4611512565b61072b6000611745565b6108d6611512565b61072b6117bc565b600062030d406108ef6010856124f4565b6103e86109046103f863ffffffff87166124f4565b61090e9190612553565b610918919061257a565b610922919061257a565b949350505050565b6000547501000000000000000000000000000000000000000000900460ff1615808015610975575060005460017401000000000000000000000000000000000000000090910460ff16105b806109a75750303b1580156109a7575060005474010000000000000000000000000000000000000000900460ff166001145b610a33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610896565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610ab957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610ac1611817565b610aca82611745565b8015610b2d57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610b75878787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061190e92505050565b600081815260cf602052604090205460ff1615610bee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610896565b600081815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610c2d6119dc565b60f088901c6000819003610d31576000610c8d888a87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d611a49565b600081815260cb602052604090205490915060ff1615610d2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c617965640000000000000000006064820152608401610896565b505b6000610d778a8a8a8a8a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6892505050565b9050610d81611a8b565b15610db957863414610d9557610d956125a6565b600081815260ce602052604090205460ff1615610db457610db46125a6565b610f0b565b3415610e6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a401610896565b600081815260ce602052604090205460ff16610f0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c61796564000000000000000000000000000000006064820152608401610896565b610f1488611baf565b15610fc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a401610896565b600081815260cb602052604090205460ff1615611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c61796564000000000000000000006064820152608401610896565b61107261afc8876125d5565b5a1015611101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d6573736167650000000000000000006064820152608401610896565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b16179055600061119d8961115561138861afc86125ed565b5a61116091906125ed565b8a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2692505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080151560010361123857600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611345565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3201611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610896565b505050600090815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050565b905090565b611392611512565b73ffffffffffffffffffffffffffffffffffffffff8116611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610896565b61143e81611745565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e9e05c429084906114da908890839089906000908990600401612604565b6000604051808303818588803b1580156114f357600080fd5b505af1158015611507573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610896565b61159b611c40565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60608160000361165357505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561167d57806116678161265c565b91506116769050600a83612694565b9150611657565b60008167ffffffffffffffff811115611698576116986126a8565b6040519080825280601f01601f1916602001820160405280156116c2576020820181803683370190505b5090505b8415610922576116d76001836125ed565b91506116e4600a866126d7565b6116ef9060306125d5565b60f81b818381518110611704576117046126eb565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061173e600a86612694565b94506116c6565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6117c46119dc565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115e63390565b6000547501000000000000000000000000000000000000000000900460ff166118c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790556118f6611cac565b6118fe611d57565b611906611e0b565b61072b611ee0565b600060f087901c808203611930576119288688858b611a49565b9150506119d2565b8061ffff1660010361194a57611928888888888888611a68565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f48617368696e673a20756e6b6e6f776e2063726f737320646f6d61696e206d6560448201527f73736167652076657273696f6e000000000000000000000000000000000000006064820152608401610896565b9695505050505050565b60655460ff161561072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610896565b6000611a5785858585611f92565b805190602001209050949350505050565b6000611a7887878787878761202b565b8051906020012090509695505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561138557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639bf62d826040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b93919061271a565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611c2057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b92915050565b600080600080845160208601878a8af19695505050505050565b60655460ff1661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610896565b6000547501000000000000000000000000000000000000000000900460ff1661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b6000547501000000000000000000000000000000000000000000900460ff16611e02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b61072b33611745565b6000547501000000000000000000000000000000000000000000900460ff16611eb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000547501000000000000000000000000000000000000000000900460ff16611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b6001609755565b606084848484604051602401611fab9493929190612737565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161204896959493929190612781565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461143e57600080fd5b60008083601f8401126120fe57600080fd5b50813567ffffffffffffffff81111561211657600080fd5b60208301915083602082850101111561212e57600080fd5b9250929050565b803563ffffffff8116811461214957600080fd5b919050565b6000806000806060858703121561216457600080fd5b843561216f816120ca565b9350602085013567ffffffffffffffff81111561218b57600080fd5b612197878288016120ec565b90945092506121aa905060408601612135565b905092959194509250565b60005b838110156121d05781810151838201526020016121b8565b838111156121df576000848401525b50505050565b600081518084526121fd8160208601602086016121b5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061224260208301846121e5565b9392505050565b60006020828403121561225b57600080fd5b5035919050565b60008060006040848603121561227757600080fd5b833567ffffffffffffffff81111561228e57600080fd5b61229a868287016120ec565b90945092506122ad905060208501612135565b90509250925092565b6000602082840312156122c857600080fd5b8135612242816120ca565b600080600080600080600060c0888a0312156122ee57600080fd5b873596506020880135612300816120ca565b95506040880135612310816120ca565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561233a57600080fd5b6123468a828b016120ec565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a08301526123f460c083018486612359565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000612431608083018688612359565b905083604083015263ffffffff831660608301529695505050505050565b600084516124618184602089016121b5565b80830190507f2e00000000000000000000000000000000000000000000000000000000000000808252855161249d816001850160208a016121b5565b600192019182015283516124b88160028401602088016121b5565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168185168183048111821515161561251b5761251b6124c5565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff8084168061256e5761256e612524565b92169190910492915050565b600067ffffffffffffffff80831681851680830382111561259d5761259d6124c5565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082198211156125e8576125e86124c5565b500190565b6000828210156125ff576125ff6124c5565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a06080820152600061265160a08301846121e5565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361268d5761268d6124c5565b5060010190565b6000826126a3576126a3612524565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000826126e6576126e6612524565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561272c57600080fd5b8151612242816120ca565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261277060808301856121e5565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526127cc60c08301846121e5565b9897505050505050505056fea164736f6c634300080f000a" +var L1CrossDomainMessengerDeployedBin = "0x6080604052600436106101755760003560e01c80637dea7cc3116100cb578063b1b1b2091161007f578063d764ad0b11610059578063d764ad0b1461041f578063ecc7042814610432578063f2fde38b1461049757600080fd5b8063b1b1b209146103af578063b28ade25146103df578063c4d66de8146103ff57600080fd5b80638da5cb5b116100b05780638da5cb5b146103205780639fce812c1461034b578063a4e7f8bd1461037f57600080fd5b80637dea7cc3146102f45780638456cb591461030b57600080fd5b80633f4ba83a1161012d5780635c975abb116101075780635c975abb146102a65780636e296e45146102ca578063715018a6146102df57600080fd5b80633f4ba83a146102475780633f827a5a1461025c57806354fd4d501461028457600080fd5b80630ff754ea1161015e5780630ff754ea146101c35780632828d7e81461021c5780633dbb202b1461023257600080fd5b8063028f85f71461017a5780630c568498146101ad575b600080fd5b34801561018657600080fd5b5061018f601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101b957600080fd5b5061018f6103e881565b3480156101cf57600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a4565b34801561022857600080fd5b5061018f6103f881565b6102456102403660046120e8565b6104b7565b005b34801561025357600080fd5b5061024561071b565b34801561026857600080fd5b50610271600181565b60405161ffff90911681526020016101a4565b34801561029057600080fd5b5061029961072d565b6040516101a491906121c9565b3480156102b257600080fd5b5060655460ff165b60405190151581526020016101a4565b3480156102d657600080fd5b506101f76107d0565b3480156102eb57600080fd5b506102456108bc565b34801561030057600080fd5b5061018f62030d4081565b34801561031757600080fd5b506102456108ce565b34801561032c57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166101f7565b34801561035757600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b34801561038b57600080fd5b506102ba61039a3660046121e3565b60ce6020526000908152604090205460ff1681565b3480156103bb57600080fd5b506102ba6103ca3660046121e3565b60cb6020526000908152604090205460ff1681565b3480156103eb57600080fd5b5061018f6103fa3660046121fc565b6108de565b34801561040b57600080fd5b5061024561041a366004612250565b61092a565b61024561042d36600461226d565b610b31565b34801561043e57600080fd5b5061048960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101a4565b3480156104a357600080fd5b506102456104b2366004612250565b6113f2565b6105f07f00000000000000000000000000000000000000000000000000000000000000006104e68585856108de565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061055260cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c60405160240161056e979695949392919061233c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526114c5565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561067560cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b8660405161068795949392919061239b565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b61072361157a565b61072b6115fb565b565b60606107587f0000000000000000000000000000000000000000000000000000000000000000611678565b6107817f0000000000000000000000000000000000000000000000000000000000000000611678565b6107aa7f0000000000000000000000000000000000000000000000000000000000000000611678565b6040516020016107bc939291906123e9565b604051602081830303815290604052905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21530161089f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6108c461157a565b61072b60006117ad565b6108d661157a565b61072b611824565b600062030d406108ef60108561248e565b6103e86109046103f863ffffffff871661248e565b61090e91906124ed565b6109189190612514565b6109229190612514565b949350505050565b6000547501000000000000000000000000000000000000000000900460ff1615808015610975575060005460017401000000000000000000000000000000000000000090910460ff16105b806109a75750303b1580156109a7575060005474010000000000000000000000000000000000000000900460ff166001145b610a33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610896565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610ab957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610ac161187f565b610aca826117ad565b8015610b2d57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610b39611976565b60f087901c60028110610bf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a401610896565b8061ffff16600003610ce9576000610c45878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506119e3915050565b600081815260cb602052604090205490915060ff1615610ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c617965640000000000000000006064820152608401610896565b505b6000610d2f898989898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0292505050565b600081815260cf602052604090205490915060ff1615610dab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610896565b600081815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610dea611a25565b15610e2257853414610dfe57610dfe612540565b600081815260ce602052604090205460ff1615610e1d57610e1d612540565b610f74565b3415610ed6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a401610896565b600081815260ce602052604090205460ff16610f74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c61796564000000000000000000000000000000006064820152608401610896565b610f7d87611b49565b15611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a401610896565b600081815260cb602052604090205460ff16156110cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c61796564000000000000000000006064820152608401610896565b6110db61afc88661256f565b5a101561116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d6573736167650000000000000000006064820152608401610896565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a161790556000611206886111be61138861afc8612587565b5a6111c99190612587565b8988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bc092505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905590508015156001036112a157600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26113ae565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016113ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d657373616765000000000000000000000000000000000000006064820152608401610896565b50600090815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050505050505050565b905090565b6113fa61157a565b73ffffffffffffffffffffffffffffffffffffffff811661149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610896565b6114a6816117ad565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e9e05c4290849061154290889083908990600090899060040161259e565b6000604051808303818588803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610896565b611603611bda565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6060816000036116bb57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156116e557806116cf816125f6565b91506116de9050600a8361262e565b91506116bf565b60008167ffffffffffffffff81111561170057611700612642565b6040519080825280601f01601f19166020018201604052801561172a576020820181803683370190505b5090505b84156109225761173f600183612587565b915061174c600a86612671565b61175790603061256f565b60f81b81838151811061176c5761176c612685565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506117a6600a8661262e565b945061172e565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61182c611976565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861164e3390565b6000547501000000000000000000000000000000000000000000900460ff1661192a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905561195e611c46565b611966611cf1565b61196e611da5565b61072b611e7a565b60655460ff161561072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610896565b60006119f185858585611f2c565b805190602001209050949350505050565b6000611a12878787878787611fc5565b8051906020012090509695505050505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480156113ed57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639bf62d826040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2d91906126b4565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611bba57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b92915050565b600080600080845160208601878a8af19695505050505050565b60655460ff1661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610896565b6000547501000000000000000000000000000000000000000000900460ff1661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b6000547501000000000000000000000000000000000000000000900460ff16611d9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b61072b336117ad565b6000547501000000000000000000000000000000000000000000900460ff16611e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000547501000000000000000000000000000000000000000000900460ff16611f25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610896565b6001609755565b606084848484604051602401611f4594939291906126d1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611fe29695949392919061271b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146114a657600080fd5b60008083601f84011261209857600080fd5b50813567ffffffffffffffff8111156120b057600080fd5b6020830191508360208285010111156120c857600080fd5b9250929050565b803563ffffffff811681146120e357600080fd5b919050565b600080600080606085870312156120fe57600080fd5b843561210981612064565b9350602085013567ffffffffffffffff81111561212557600080fd5b61213187828801612086565b90945092506121449050604086016120cf565b905092959194509250565b60005b8381101561216a578181015183820152602001612152565b83811115612179576000848401525b50505050565b6000815180845261219781602086016020860161214f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006121dc602083018461217f565b9392505050565b6000602082840312156121f557600080fd5b5035919050565b60008060006040848603121561221157600080fd5b833567ffffffffffffffff81111561222857600080fd5b61223486828701612086565b90945092506122479050602085016120cf565b90509250925092565b60006020828403121561226257600080fd5b81356121dc81612064565b600080600080600080600060c0888a03121561228857600080fd5b87359650602088013561229a81612064565b955060408801356122aa81612064565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156122d457600080fd5b6122e08a828b01612086565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a083015261238e60c0830184866122f3565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006123cb6080830186886122f3565b905083604083015263ffffffff831660608301529695505050505050565b600084516123fb81846020890161214f565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612437816001850160208a0161214f565b6001920191820152835161245281600284016020880161214f565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818516818304811182151516156124b5576124b561245f565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff80841680612508576125086124be565b92169190910492915050565b600067ffffffffffffffff8083168185168083038211156125375761253761245f565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082198211156125825761258261245f565b500190565b6000828210156125995761259961245f565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a0608082015260006125eb60a083018461217f565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126275761262761245f565b5060010190565b60008261263d5761263d6124be565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612680576126806124be565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156126c657600080fd5b81516121dc81612064565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261270a608083018561217f565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261276660c083018461217f565b9897505050505050505056fea164736f6c634300080f000a" func init() { if err := json.Unmarshal([]byte(L1CrossDomainMessengerStorageLayoutJSON), L1CrossDomainMessengerStorageLayout); err != nil { diff --git a/op-bindings/bindings/l2crossdomainmessenger.go b/op-bindings/bindings/l2crossdomainmessenger.go index 5b0d1c338314..e57cb0e7d179 100644 --- a/op-bindings/bindings/l2crossdomainmessenger.go +++ b/op-bindings/bindings/l2crossdomainmessenger.go @@ -31,7 +31,7 @@ var ( // L2CrossDomainMessengerMetaData contains all meta data concerning the L2CrossDomainMessenger contract. var L2CrossDomainMessengerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1CrossDomainMessenger\",\"type\":\"address\"}],\"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\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"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_CONSTANT_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\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1CrossDomainMessenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}]", - Bin: "0x6101006040523480156200001257600080fd5b5060405162002b6038038062002b60833981016040819052620000359162000442565b6001600160a01b038116608052600160a081905260c052600060e0526200005b62000062565b5062000474565b600054600160a81b900460ff16158080156200008b57506000546001600160a01b90910460ff16105b80620000c25750620000a830620001af60201b620014791760201c565b158015620000c25750600054600160a01b900460ff166001145b6200012b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b179055801562000159576000805460ff60a81b1916600160a81b1790555b62000163620001be565b8015620001ac576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6001600160a01b03163b151590565b600054600160a81b900460ff166200021c5760405162461bcd60e51b815260206004820152602b602482015260008051602062002b4083398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b60cc80546001600160a01b03191661dead1790556200023a6200025a565b62000244620002b8565b6200024e62000321565b620002586200038b565b565b600054600160a81b900460ff16620002585760405162461bcd60e51b815260206004820152602b602482015260008051602062002b4083398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b600054600160a81b900460ff16620003165760405162461bcd60e51b815260206004820152602b602482015260008051602062002b4083398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b6200025833620003f0565b600054600160a81b900460ff166200037f5760405162461bcd60e51b815260206004820152602b602482015260008051602062002b4083398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b6065805460ff19169055565b600054600160a81b900460ff16620003e95760405162461bcd60e51b815260206004820152602b602482015260008051602062002b4083398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b6001609755565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200045557600080fd5b81516001600160a01b03811681146200046d57600080fd5b9392505050565b60805160a05160c05160e05161267d620004c3600039600061077a015260006107510152600061072801526000818161033e0152818161039f015281816104b00152610d9f015261267d6000f3fe6080604052600436106101755760003560e01c80638129fc1c116100cb578063a71198691161007f578063d764ad0b11610059578063d764ad0b14610413578063ecc7042814610426578063f2fde38b1461048b57600080fd5b8063a711986914610390578063b1b1b209146103c3578063b28ade25146103f357600080fd5b80638da5cb5b116100b05780638da5cb5b146103015780639fce812c1461032c578063a4e7f8bd1461036057600080fd5b80638129fc1c146102d75780638456cb59146102ec57600080fd5b80633f827a5a1161012d5780636e296e45116101075780636e296e4514610271578063715018a6146102ab5780637dea7cc3146102c057600080fd5b80633f827a5a1461020357806354fd4d501461022b5780635c975abb1461024d57600080fd5b80632828d7e81161015e5780632828d7e8146101c35780633dbb202b146101d95780633f4ba83a146101ee57600080fd5b8063028f85f71461017a5780630c568498146101ad575b600080fd5b34801561018657600080fd5b5061018f601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101b957600080fd5b5061018f6103e881565b3480156101cf57600080fd5b5061018f6103f881565b6101ec6101e736600461201b565b6104ab565b005b3480156101fa57600080fd5b506101ec61070f565b34801561020f57600080fd5b50610218600181565b60405161ffff90911681526020016101a4565b34801561023757600080fd5b50610240610721565b6040516101a491906120fa565b34801561025957600080fd5b5060655460ff165b60405190151581526020016101a4565b34801561027d57600080fd5b506102866107c4565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a4565b3480156102b757600080fd5b506101ec6108b0565b3480156102cc57600080fd5b5061018f62030d4081565b3480156102e357600080fd5b506101ec6108c2565b3480156102f857600080fd5b506101ec610abf565b34801561030d57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610286565b34801561033857600080fd5b506102867f000000000000000000000000000000000000000000000000000000000000000081565b34801561036c57600080fd5b5061026161037b366004612114565b60ce6020526000908152604090205460ff1681565b34801561039c57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610286565b3480156103cf57600080fd5b506102616103de366004612114565b60cb6020526000908152604090205460ff1681565b3480156103ff57600080fd5b5061018f61040e36600461212d565b610acf565b6101ec610421366004612181565b610b1b565b34801561043257600080fd5b5061047d60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101a4565b34801561049757600080fd5b506101ec6104a6366004612203565b6113c5565b6105e47f00000000000000000000000000000000000000000000000000000000000000006104da858585610acf565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061054660cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105629796959493929190612267565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611495565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561066960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b8660405161067b9594939291906122c6565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b610717611523565b61071f6115a4565b565b606061074c7f0000000000000000000000000000000000000000000000000000000000000000611621565b6107757f0000000000000000000000000000000000000000000000000000000000000000611621565b61079e7f0000000000000000000000000000000000000000000000000000000000000000611621565b6040516020016107b093929190612314565b604051602081830303815290604052905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6108b8611523565b61071f6000611756565b6000547501000000000000000000000000000000000000000000900460ff161580801561090d575060005460017401000000000000000000000000000000000000000090910460ff16105b8061093f5750303b15801561093f575060005474010000000000000000000000000000000000000000900460ff166001145b6109cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161088a565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610a5157600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610a596117cd565b8015610abc57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b610ac7611523565b61071f6118c4565b600062030d40610ae06010856123b9565b6103e8610af56103f863ffffffff87166123b9565b610aff9190612418565b610b09919061243f565b610b13919061243f565b949350505050565b610b5f878787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061191f92505050565b600081815260cf602052604090205460ff1615610bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161088a565b600081815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610c176119ed565b60f088901c6000819003610d1b576000610c77888a87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d611a5a565b600081815260cb602052604090205490915060ff1615610d19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161088a565b505b6000610d618a8a8a8a8a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a7992505050565b905073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef330181167f000000000000000000000000000000000000000000000000000000000000000090911603610df957863414610dd557610dd561246b565b600081815260ce602052604090205460ff1615610df457610df461246b565b610f4b565b3415610ead576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161088a565b600081815260ce602052604090205460ff16610f4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161088a565b610f5488611a9c565b15611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161088a565b600081815260cb602052604090205460ff16156110a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161088a565b6110b261afc88761249a565b5a1015611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d657373616765000000000000000000606482015260840161088a565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b1617905560006111dd8961119561138861afc86124b2565b5a6111a091906124b2565b8a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611af192505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080151560010361127857600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611385565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3201611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161088a565b505050600090815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050565b6113cd611523565b73ffffffffffffffffffffffffffffffffffffffff8116611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161088a565b610abc81611756565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac9084906114eb908890889087906004016124c9565b6000604051808303818588803b15801561150457600080fd5b505af1158015611518573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088a565b6115ac611b0b565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60608160000361166457505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561168e578061167881612511565b91506116879050600a83612549565b9150611668565b60008167ffffffffffffffff8111156116a9576116a961255d565b6040519080825280601f01601f1916602001820160405280156116d3576020820181803683370190505b5090505b8415610b13576116e86001836124b2565b91506116f5600a8661258c565b61170090603061249a565b60f81b818381518110611715576117156125a0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061174f600a86612549565b94506116d7565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000547501000000000000000000000000000000000000000000900460ff16611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790556118ac611b77565b6118b4611c22565b6118bc611cd6565b61071f611dab565b6118cc6119ed565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115f73390565b600060f087901c808203611941576119398688858b611a5a565b9150506119e3565b8061ffff1660010361195b57611939888888888888611a79565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f48617368696e673a20756e6b6e6f776e2063726f737320646f6d61696e206d6560448201527f73736167652076657273696f6e00000000000000000000000000000000000000606482015260840161088a565b9695505050505050565b60655460ff161561071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161088a565b6000611a6885858585611e5d565b805190602001209050949350505050565b6000611a89878787878787611ef6565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611aeb575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080600080845160208601878a8af19695505050505050565b60655460ff1661071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161088a565b6000547501000000000000000000000000000000000000000000900460ff1661071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b6000547501000000000000000000000000000000000000000000900460ff16611ccd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b61071f33611756565b6000547501000000000000000000000000000000000000000000900460ff16611d81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000547501000000000000000000000000000000000000000000900460ff16611e56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b6001609755565b606084848484604051602401611e7694939291906125cf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611f1396959493929190612619565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611fb957600080fd5b919050565b60008083601f840112611fd057600080fd5b50813567ffffffffffffffff811115611fe857600080fd5b60208301915083602082850101111561200057600080fd5b9250929050565b803563ffffffff81168114611fb957600080fd5b6000806000806060858703121561203157600080fd5b61203a85611f95565b9350602085013567ffffffffffffffff81111561205657600080fd5b61206287828801611fbe565b9094509250612075905060408601612007565b905092959194509250565b60005b8381101561209b578181015183820152602001612083565b838111156120aa576000848401525b50505050565b600081518084526120c8816020860160208601612080565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061210d60208301846120b0565b9392505050565b60006020828403121561212657600080fd5b5035919050565b60008060006040848603121561214257600080fd5b833567ffffffffffffffff81111561215957600080fd5b61216586828701611fbe565b9094509250612178905060208501612007565b90509250925092565b600080600080600080600060c0888a03121561219c57600080fd5b873596506121ac60208901611f95565b95506121ba60408901611f95565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156121e457600080fd5b6121f08a828b01611fbe565b989b979a50959850939692959293505050565b60006020828403121561221557600080fd5b61210d82611f95565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a08301526122b960c08301848661221e565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006122f660808301868861221e565b905083604083015263ffffffff831660608301529695505050505050565b60008451612326818460208901612080565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612362816001850160208a01612080565b6001920191820152835161237d816002840160208801612080565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818516818304811182151516156123e0576123e061238a565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff80841680612433576124336123e9565b92169190910492915050565b600067ffffffffffffffff8083168185168083038211156124625761246261238a565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082198211156124ad576124ad61238a565b500190565b6000828210156124c4576124c461238a565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff8316602082015260606040820152600061250860608301846120b0565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125425761254261238a565b5060010190565b600082612558576125586123e9565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008261259b5761259b6123e9565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261260860808301856120b0565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261266460c08301846120b0565b9897505050505050505056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", + Bin: "0x6101006040523480156200001257600080fd5b5060405162002b1738038062002b17833981016040819052620000359162000442565b6001600160a01b038116608052600160a081905260c052600060e0526200005b62000062565b5062000474565b600054600160a81b900460ff16158080156200008b57506000546001600160a01b90910460ff16105b80620000c25750620000a830620001af60201b620014fe1760201c565b158015620000c25750600054600160a01b900460ff166001145b6200012b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b179055801562000159576000805460ff60a81b1916600160a81b1790555b62000163620001be565b8015620001ac576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6001600160a01b03163b151590565b600054600160a81b900460ff166200021c5760405162461bcd60e51b815260206004820152602b602482015260008051602062002af783398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b60cc80546001600160a01b03191661dead1790556200023a6200025a565b62000244620002b8565b6200024e62000321565b620002586200038b565b565b600054600160a81b900460ff16620002585760405162461bcd60e51b815260206004820152602b602482015260008051602062002af783398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b600054600160a81b900460ff16620003165760405162461bcd60e51b815260206004820152602b602482015260008051602062002af783398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b6200025833620003f0565b600054600160a81b900460ff166200037f5760405162461bcd60e51b815260206004820152602b602482015260008051602062002af783398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b6065805460ff19169055565b600054600160a81b900460ff16620003e95760405162461bcd60e51b815260206004820152602b602482015260008051602062002af783398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000122565b6001609755565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200045557600080fd5b81516001600160a01b03811681146200046d57600080fd5b9392505050565b60805160a05160c05160e051612634620004c3600039600061077a015260006107510152600061072801526000818161033e0152818161039f015281816104b00152610de801526126346000f3fe6080604052600436106101755760003560e01c80638129fc1c116100cb578063a71198691161007f578063d764ad0b11610059578063d764ad0b14610413578063ecc7042814610426578063f2fde38b1461048b57600080fd5b8063a711986914610390578063b1b1b209146103c3578063b28ade25146103f357600080fd5b80638da5cb5b116100b05780638da5cb5b146103015780639fce812c1461032c578063a4e7f8bd1461036057600080fd5b80638129fc1c146102d75780638456cb59146102ec57600080fd5b80633f827a5a1161012d5780636e296e45116101075780636e296e4514610271578063715018a6146102ab5780637dea7cc3146102c057600080fd5b80633f827a5a1461020357806354fd4d501461022b5780635c975abb1461024d57600080fd5b80632828d7e81161015e5780632828d7e8146101c35780633dbb202b146101d95780633f4ba83a146101ee57600080fd5b8063028f85f71461017a5780630c568498146101ad575b600080fd5b34801561018657600080fd5b5061018f601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101b957600080fd5b5061018f6103e881565b3480156101cf57600080fd5b5061018f6103f881565b6101ec6101e7366004611fd2565b6104ab565b005b3480156101fa57600080fd5b506101ec61070f565b34801561020f57600080fd5b50610218600181565b60405161ffff90911681526020016101a4565b34801561023757600080fd5b50610240610721565b6040516101a491906120b1565b34801561025957600080fd5b5060655460ff165b60405190151581526020016101a4565b34801561027d57600080fd5b506102866107c4565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a4565b3480156102b757600080fd5b506101ec6108b0565b3480156102cc57600080fd5b5061018f62030d4081565b3480156102e357600080fd5b506101ec6108c2565b3480156102f857600080fd5b506101ec610abf565b34801561030d57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610286565b34801561033857600080fd5b506102867f000000000000000000000000000000000000000000000000000000000000000081565b34801561036c57600080fd5b5061026161037b3660046120cb565b60ce6020526000908152604090205460ff1681565b34801561039c57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610286565b3480156103cf57600080fd5b506102616103de3660046120cb565b60cb6020526000908152604090205460ff1681565b3480156103ff57600080fd5b5061018f61040e3660046120e4565b610acf565b6101ec610421366004612138565b610b1b565b34801561043257600080fd5b5061047d60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101a4565b34801561049757600080fd5b506101ec6104a63660046121ba565b61144a565b6105e47f00000000000000000000000000000000000000000000000000000000000000006104da858585610acf565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061054660cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c604051602401610562979695949392919061221e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261151a565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561066960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b8660405161067b95949392919061227d565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b6107176115a8565b61071f611629565b565b606061074c7f00000000000000000000000000000000000000000000000000000000000000006116a6565b6107757f00000000000000000000000000000000000000000000000000000000000000006116a6565b61079e7f00000000000000000000000000000000000000000000000000000000000000006116a6565b6040516020016107b0939291906122cb565b604051602081830303815290604052905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6108b86115a8565b61071f60006117db565b6000547501000000000000000000000000000000000000000000900460ff161580801561090d575060005460017401000000000000000000000000000000000000000090910460ff16105b8061093f5750303b15801561093f575060005474010000000000000000000000000000000000000000900460ff166001145b6109cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161088a565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610a5157600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610a59611852565b8015610abc57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b610ac76115a8565b61071f611949565b600062030d40610ae0601085612370565b6103e8610af56103f863ffffffff8716612370565b610aff91906123cf565b610b0991906123f6565b610b1391906123f6565b949350505050565b610b236119a4565b60f087901c60028110610bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161088a565b8061ffff16600003610cd3576000610c2f878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f9250611a11915050565b600081815260cb602052604090205490915060ff1615610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161088a565b505b6000610d19898989898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a3092505050565b600081815260cf602052604090205490915060ff1615610d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161088a565b600081815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610e47600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef330173ffffffffffffffffffffffffffffffffffffffff1614905090565b15610e7f57853414610e5b57610e5b612422565b600081815260ce602052604090205460ff1615610e7a57610e7a612422565b610fd1565b3415610f33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161088a565b600081815260ce602052604090205460ff16610fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161088a565b610fda87611a53565b1561108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161088a565b600081815260cb602052604090205460ff161561112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161088a565b61113861afc886612451565b5a10156111c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d657373616765000000000000000000606482015260840161088a565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a1617905560006112638861121b61138861afc8612469565b5a6112269190612469565b8988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611aa892505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905590508015156001036112fe57600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a261140b565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161088a565b50600090815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050505050505050565b6114526115a8565b73ffffffffffffffffffffffffffffffffffffffff81166114f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161088a565b610abc816117db565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac90849061157090889088908790600401612480565b6000604051808303818588803b15801561158957600080fd5b505af115801561159d573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088a565b611631611ac2565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6060816000036116e957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561171357806116fd816124c8565b915061170c9050600a83612500565b91506116ed565b60008167ffffffffffffffff81111561172e5761172e612514565b6040519080825280601f01601f191660200182016040528015611758576020820181803683370190505b5090505b8415610b135761176d600183612469565b915061177a600a86612543565b611785906030612451565b60f81b81838151811061179a5761179a612557565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506117d4600a86612500565b945061175c565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000547501000000000000000000000000000000000000000000900460ff166118fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055611931611b2e565b611939611bd9565b611941611c8d565b61071f611d62565b6119516119a4565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861167c3390565b60655460ff161561071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161088a565b6000611a1f85858585611e14565b805190602001209050949350505050565b6000611a40878787878787611ead565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611aa2575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080600080845160208601878a8af19695505050505050565b60655460ff1661071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161088a565b6000547501000000000000000000000000000000000000000000900460ff1661071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b6000547501000000000000000000000000000000000000000000900460ff16611c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b61071f336117db565b6000547501000000000000000000000000000000000000000000900460ff16611d38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000547501000000000000000000000000000000000000000000900460ff16611e0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b6001609755565b606084848484604051602401611e2d9493929190612586565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611eca969594939291906125d0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611f7057600080fd5b919050565b60008083601f840112611f8757600080fd5b50813567ffffffffffffffff811115611f9f57600080fd5b602083019150836020828501011115611fb757600080fd5b9250929050565b803563ffffffff81168114611f7057600080fd5b60008060008060608587031215611fe857600080fd5b611ff185611f4c565b9350602085013567ffffffffffffffff81111561200d57600080fd5b61201987828801611f75565b909450925061202c905060408601611fbe565b905092959194509250565b60005b8381101561205257818101518382015260200161203a565b83811115612061576000848401525b50505050565b6000815180845261207f816020860160208601612037565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006120c46020830184612067565b9392505050565b6000602082840312156120dd57600080fd5b5035919050565b6000806000604084860312156120f957600080fd5b833567ffffffffffffffff81111561211057600080fd5b61211c86828701611f75565b909450925061212f905060208501611fbe565b90509250925092565b600080600080600080600060c0888a03121561215357600080fd5b8735965061216360208901611f4c565b955061217160408901611f4c565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561219b57600080fd5b6121a78a828b01611f75565b989b979a50959850939692959293505050565b6000602082840312156121cc57600080fd5b6120c482611f4c565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a083015261227060c0830184866121d5565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006122ad6080830186886121d5565b905083604083015263ffffffff831660608301529695505050505050565b600084516122dd818460208901612037565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612319816001850160208a01612037565b60019201918201528351612334816002840160208801612037565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168185168183048111821515161561239757612397612341565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff808416806123ea576123ea6123a0565b92169190910492915050565b600067ffffffffffffffff80831681851680830382111561241957612419612341565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000821982111561246457612464612341565b500190565b60008282101561247b5761247b612341565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff831660208201526060604082015260006124bf6060830184612067565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124f9576124f9612341565b5060010190565b60008261250f5761250f6123a0565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612552576125526123a0565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526125bf6080830185612067565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261261b60c0830184612067565b9897505050505050505056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", } // L2CrossDomainMessengerABI is the input ABI used to generate the binding from. diff --git a/op-bindings/bindings/l2crossdomainmessenger_more.go b/op-bindings/bindings/l2crossdomainmessenger_more.go index 9b06d83e3ef6..3506181cceda 100644 --- a/op-bindings/bindings/l2crossdomainmessenger_more.go +++ b/op-bindings/bindings/l2crossdomainmessenger_more.go @@ -13,7 +13,7 @@ const L2CrossDomainMessengerStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\ var L2CrossDomainMessengerStorageLayout = new(solc.StorageLayout) -var L2CrossDomainMessengerDeployedBin = "0x6080604052600436106101755760003560e01c80638129fc1c116100cb578063a71198691161007f578063d764ad0b11610059578063d764ad0b14610413578063ecc7042814610426578063f2fde38b1461048b57600080fd5b8063a711986914610390578063b1b1b209146103c3578063b28ade25146103f357600080fd5b80638da5cb5b116100b05780638da5cb5b146103015780639fce812c1461032c578063a4e7f8bd1461036057600080fd5b80638129fc1c146102d75780638456cb59146102ec57600080fd5b80633f827a5a1161012d5780636e296e45116101075780636e296e4514610271578063715018a6146102ab5780637dea7cc3146102c057600080fd5b80633f827a5a1461020357806354fd4d501461022b5780635c975abb1461024d57600080fd5b80632828d7e81161015e5780632828d7e8146101c35780633dbb202b146101d95780633f4ba83a146101ee57600080fd5b8063028f85f71461017a5780630c568498146101ad575b600080fd5b34801561018657600080fd5b5061018f601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101b957600080fd5b5061018f6103e881565b3480156101cf57600080fd5b5061018f6103f881565b6101ec6101e736600461201b565b6104ab565b005b3480156101fa57600080fd5b506101ec61070f565b34801561020f57600080fd5b50610218600181565b60405161ffff90911681526020016101a4565b34801561023757600080fd5b50610240610721565b6040516101a491906120fa565b34801561025957600080fd5b5060655460ff165b60405190151581526020016101a4565b34801561027d57600080fd5b506102866107c4565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a4565b3480156102b757600080fd5b506101ec6108b0565b3480156102cc57600080fd5b5061018f62030d4081565b3480156102e357600080fd5b506101ec6108c2565b3480156102f857600080fd5b506101ec610abf565b34801561030d57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610286565b34801561033857600080fd5b506102867f000000000000000000000000000000000000000000000000000000000000000081565b34801561036c57600080fd5b5061026161037b366004612114565b60ce6020526000908152604090205460ff1681565b34801561039c57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610286565b3480156103cf57600080fd5b506102616103de366004612114565b60cb6020526000908152604090205460ff1681565b3480156103ff57600080fd5b5061018f61040e36600461212d565b610acf565b6101ec610421366004612181565b610b1b565b34801561043257600080fd5b5061047d60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101a4565b34801561049757600080fd5b506101ec6104a6366004612203565b6113c5565b6105e47f00000000000000000000000000000000000000000000000000000000000000006104da858585610acf565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061054660cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105629796959493929190612267565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611495565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561066960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b8660405161067b9594939291906122c6565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b610717611523565b61071f6115a4565b565b606061074c7f0000000000000000000000000000000000000000000000000000000000000000611621565b6107757f0000000000000000000000000000000000000000000000000000000000000000611621565b61079e7f0000000000000000000000000000000000000000000000000000000000000000611621565b6040516020016107b093929190612314565b604051602081830303815290604052905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6108b8611523565b61071f6000611756565b6000547501000000000000000000000000000000000000000000900460ff161580801561090d575060005460017401000000000000000000000000000000000000000090910460ff16105b8061093f5750303b15801561093f575060005474010000000000000000000000000000000000000000900460ff166001145b6109cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161088a565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610a5157600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610a596117cd565b8015610abc57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b610ac7611523565b61071f6118c4565b600062030d40610ae06010856123b9565b6103e8610af56103f863ffffffff87166123b9565b610aff9190612418565b610b09919061243f565b610b13919061243f565b949350505050565b610b5f878787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061191f92505050565b600081815260cf602052604090205460ff1615610bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161088a565b600081815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610c176119ed565b60f088901c6000819003610d1b576000610c77888a87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d611a5a565b600081815260cb602052604090205490915060ff1615610d19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161088a565b505b6000610d618a8a8a8a8a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a7992505050565b905073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef330181167f000000000000000000000000000000000000000000000000000000000000000090911603610df957863414610dd557610dd561246b565b600081815260ce602052604090205460ff1615610df457610df461246b565b610f4b565b3415610ead576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161088a565b600081815260ce602052604090205460ff16610f4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161088a565b610f5488611a9c565b15611007576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161088a565b600081815260cb602052604090205460ff16156110a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161088a565b6110b261afc88761249a565b5a1015611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d657373616765000000000000000000606482015260840161088a565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b1617905560006111dd8961119561138861afc86124b2565b5a6111a091906124b2565b8a89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611af192505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080151560010361127857600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611385565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3201611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161088a565b505050600090815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050565b6113cd611523565b73ffffffffffffffffffffffffffffffffffffffff8116611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161088a565b610abc81611756565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac9084906114eb908890889087906004016124c9565b6000604051808303818588803b15801561150457600080fd5b505af1158015611518573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088a565b6115ac611b0b565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60608160000361166457505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561168e578061167881612511565b91506116879050600a83612549565b9150611668565b60008167ffffffffffffffff8111156116a9576116a961255d565b6040519080825280601f01601f1916602001820160405280156116d3576020820181803683370190505b5090505b8415610b13576116e86001836124b2565b91506116f5600a8661258c565b61170090603061249a565b60f81b818381518110611715576117156125a0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061174f600a86612549565b94506116d7565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000547501000000000000000000000000000000000000000000900460ff16611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790556118ac611b77565b6118b4611c22565b6118bc611cd6565b61071f611dab565b6118cc6119ed565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115f73390565b600060f087901c808203611941576119398688858b611a5a565b9150506119e3565b8061ffff1660010361195b57611939888888888888611a79565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f48617368696e673a20756e6b6e6f776e2063726f737320646f6d61696e206d6560448201527f73736167652076657273696f6e00000000000000000000000000000000000000606482015260840161088a565b9695505050505050565b60655460ff161561071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161088a565b6000611a6885858585611e5d565b805190602001209050949350505050565b6000611a89878787878787611ef6565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611aeb575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080600080845160208601878a8af19695505050505050565b60655460ff1661071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161088a565b6000547501000000000000000000000000000000000000000000900460ff1661071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b6000547501000000000000000000000000000000000000000000900460ff16611ccd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b61071f33611756565b6000547501000000000000000000000000000000000000000000900460ff16611d81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000547501000000000000000000000000000000000000000000900460ff16611e56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b6001609755565b606084848484604051602401611e7694939291906125cf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611f1396959493929190612619565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611fb957600080fd5b919050565b60008083601f840112611fd057600080fd5b50813567ffffffffffffffff811115611fe857600080fd5b60208301915083602082850101111561200057600080fd5b9250929050565b803563ffffffff81168114611fb957600080fd5b6000806000806060858703121561203157600080fd5b61203a85611f95565b9350602085013567ffffffffffffffff81111561205657600080fd5b61206287828801611fbe565b9094509250612075905060408601612007565b905092959194509250565b60005b8381101561209b578181015183820152602001612083565b838111156120aa576000848401525b50505050565b600081518084526120c8816020860160208601612080565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061210d60208301846120b0565b9392505050565b60006020828403121561212657600080fd5b5035919050565b60008060006040848603121561214257600080fd5b833567ffffffffffffffff81111561215957600080fd5b61216586828701611fbe565b9094509250612178905060208501612007565b90509250925092565b600080600080600080600060c0888a03121561219c57600080fd5b873596506121ac60208901611f95565b95506121ba60408901611f95565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156121e457600080fd5b6121f08a828b01611fbe565b989b979a50959850939692959293505050565b60006020828403121561221557600080fd5b61210d82611f95565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a08301526122b960c08301848661221e565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006122f660808301868861221e565b905083604083015263ffffffff831660608301529695505050505050565b60008451612326818460208901612080565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612362816001850160208a01612080565b6001920191820152835161237d816002840160208801612080565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818516818304811182151516156123e0576123e061238a565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff80841680612433576124336123e9565b92169190910492915050565b600067ffffffffffffffff8083168185168083038211156124625761246261238a565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082198211156124ad576124ad61238a565b500190565b6000828210156124c4576124c461238a565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff8316602082015260606040820152600061250860608301846120b0565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125425761254261238a565b5060010190565b600082612558576125586123e9565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008261259b5761259b6123e9565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261260860808301856120b0565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261266460c08301846120b0565b9897505050505050505056fea164736f6c634300080f000a" +var L2CrossDomainMessengerDeployedBin = "0x6080604052600436106101755760003560e01c80638129fc1c116100cb578063a71198691161007f578063d764ad0b11610059578063d764ad0b14610413578063ecc7042814610426578063f2fde38b1461048b57600080fd5b8063a711986914610390578063b1b1b209146103c3578063b28ade25146103f357600080fd5b80638da5cb5b116100b05780638da5cb5b146103015780639fce812c1461032c578063a4e7f8bd1461036057600080fd5b80638129fc1c146102d75780638456cb59146102ec57600080fd5b80633f827a5a1161012d5780636e296e45116101075780636e296e4514610271578063715018a6146102ab5780637dea7cc3146102c057600080fd5b80633f827a5a1461020357806354fd4d501461022b5780635c975abb1461024d57600080fd5b80632828d7e81161015e5780632828d7e8146101c35780633dbb202b146101d95780633f4ba83a146101ee57600080fd5b8063028f85f71461017a5780630c568498146101ad575b600080fd5b34801561018657600080fd5b5061018f601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101b957600080fd5b5061018f6103e881565b3480156101cf57600080fd5b5061018f6103f881565b6101ec6101e7366004611fd2565b6104ab565b005b3480156101fa57600080fd5b506101ec61070f565b34801561020f57600080fd5b50610218600181565b60405161ffff90911681526020016101a4565b34801561023757600080fd5b50610240610721565b6040516101a491906120b1565b34801561025957600080fd5b5060655460ff165b60405190151581526020016101a4565b34801561027d57600080fd5b506102866107c4565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a4565b3480156102b757600080fd5b506101ec6108b0565b3480156102cc57600080fd5b5061018f62030d4081565b3480156102e357600080fd5b506101ec6108c2565b3480156102f857600080fd5b506101ec610abf565b34801561030d57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610286565b34801561033857600080fd5b506102867f000000000000000000000000000000000000000000000000000000000000000081565b34801561036c57600080fd5b5061026161037b3660046120cb565b60ce6020526000908152604090205460ff1681565b34801561039c57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610286565b3480156103cf57600080fd5b506102616103de3660046120cb565b60cb6020526000908152604090205460ff1681565b3480156103ff57600080fd5b5061018f61040e3660046120e4565b610acf565b6101ec610421366004612138565b610b1b565b34801561043257600080fd5b5061047d60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101a4565b34801561049757600080fd5b506101ec6104a63660046121ba565b61144a565b6105e47f00000000000000000000000000000000000000000000000000000000000000006104da858585610acf565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061054660cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c604051602401610562979695949392919061221e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261151a565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561066960cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b8660405161067b95949392919061227d565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b6107176115a8565b61071f611629565b565b606061074c7f00000000000000000000000000000000000000000000000000000000000000006116a6565b6107757f00000000000000000000000000000000000000000000000000000000000000006116a6565b61079e7f00000000000000000000000000000000000000000000000000000000000000006116a6565b6040516020016107b0939291906122cb565b604051602081830303815290604052905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6108b86115a8565b61071f60006117db565b6000547501000000000000000000000000000000000000000000900460ff161580801561090d575060005460017401000000000000000000000000000000000000000090910460ff16105b8061093f5750303b15801561093f575060005474010000000000000000000000000000000000000000900460ff166001145b6109cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161088a565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790558015610a5157600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b610a59611852565b8015610abc57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b610ac76115a8565b61071f611949565b600062030d40610ae0601085612370565b6103e8610af56103f863ffffffff8716612370565b610aff91906123cf565b610b0991906123f6565b610b1391906123f6565b949350505050565b610b236119a4565b60f087901c60028110610bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f6e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161088a565b8061ffff16600003610cd3576000610c2f878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f9250611a11915050565b600081815260cb602052604090205490915060ff1615610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161088a565b505b6000610d19898989898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a3092505050565b600081815260cf602052604090205490915060ff1615610d95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161088a565b600081815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610e47600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef330173ffffffffffffffffffffffffffffffffffffffff1614905090565b15610e7f57853414610e5b57610e5b612422565b600081815260ce602052604090205460ff1615610e7a57610e7a612422565b610fd1565b3415610f33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161088a565b600081815260ce602052604090205460ff16610fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161088a565b610fda87611a53565b1561108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161088a565b600081815260cb602052604090205460ff161561112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161088a565b61113861afc886612451565b5a10156111c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d657373616765000000000000000000606482015260840161088a565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a1617905560006112638861121b61138861afc8612469565b5a6112269190612469565b8988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611aa892505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905590508015156001036112fe57600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a261140b565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161088a565b50600090815260cf6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050505050505050565b6114526115a8565b73ffffffffffffffffffffffffffffffffffffffff81166114f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161088a565b610abc816117db565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac90849061157090889088908790600401612480565b6000604051808303818588803b15801561158957600080fd5b505af115801561159d573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088a565b611631611ac2565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6060816000036116e957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561171357806116fd816124c8565b915061170c9050600a83612500565b91506116ed565b60008167ffffffffffffffff81111561172e5761172e612514565b6040519080825280601f01601f191660200182016040528015611758576020820181803683370190505b5090505b8415610b135761176d600183612469565b915061177a600a86612543565b611785906030612451565b60f81b81838151811061179a5761179a612557565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506117d4600a86612500565b945061175c565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000547501000000000000000000000000000000000000000000900460ff166118fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055611931611b2e565b611939611bd9565b611941611c8d565b61071f611d62565b6119516119a4565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861167c3390565b60655460ff161561071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161088a565b6000611a1f85858585611e14565b805190602001209050949350505050565b6000611a40878787878787611ead565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611aa2575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080600080845160208601878a8af19695505050505050565b60655460ff1661071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161088a565b6000547501000000000000000000000000000000000000000000900460ff1661071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b6000547501000000000000000000000000000000000000000000900460ff16611c84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b61071f336117db565b6000547501000000000000000000000000000000000000000000900460ff16611d38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000547501000000000000000000000000000000000000000000900460ff16611e0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161088a565b6001609755565b606084848484604051602401611e2d9493929190612586565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611eca969594939291906125d0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611f7057600080fd5b919050565b60008083601f840112611f8757600080fd5b50813567ffffffffffffffff811115611f9f57600080fd5b602083019150836020828501011115611fb757600080fd5b9250929050565b803563ffffffff81168114611f7057600080fd5b60008060008060608587031215611fe857600080fd5b611ff185611f4c565b9350602085013567ffffffffffffffff81111561200d57600080fd5b61201987828801611f75565b909450925061202c905060408601611fbe565b905092959194509250565b60005b8381101561205257818101518382015260200161203a565b83811115612061576000848401525b50505050565b6000815180845261207f816020860160208601612037565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006120c46020830184612067565b9392505050565b6000602082840312156120dd57600080fd5b5035919050565b6000806000604084860312156120f957600080fd5b833567ffffffffffffffff81111561211057600080fd5b61211c86828701611f75565b909450925061212f905060208501611fbe565b90509250925092565b600080600080600080600060c0888a03121561215357600080fd5b8735965061216360208901611f4c565b955061217160408901611f4c565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561219b57600080fd5b6121a78a828b01611f75565b989b979a50959850939692959293505050565b6000602082840312156121cc57600080fd5b6120c482611f4c565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a083015261227060c0830184866121d5565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006122ad6080830186886121d5565b905083604083015263ffffffff831660608301529695505050505050565b600084516122dd818460208901612037565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612319816001850160208a01612037565b60019201918201528351612334816002840160208801612037565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168185168183048111821515161561239757612397612341565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff808416806123ea576123ea6123a0565b92169190910492915050565b600067ffffffffffffffff80831681851680830382111561241957612419612341565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000821982111561246457612464612341565b500190565b60008282101561247b5761247b612341565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff831660208201526060604082015260006124bf6060830184612067565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124f9576124f9612341565b5060010190565b60008261250f5761250f6123a0565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612552576125526123a0565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526125bf6080830185612067565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261261b60c0830184612067565b9897505050505050505056fea164736f6c634300080f000a" func init() { if err := json.Unmarshal([]byte(L2CrossDomainMessengerStorageLayoutJSON), L2CrossDomainMessengerStorageLayout); err != nil { diff --git a/packages/contracts-bedrock/.gas-snapshot b/packages/contracts-bedrock/.gas-snapshot index 6596a7209966..46b0393ae76c 100644 --- a/packages/contracts-bedrock/.gas-snapshot +++ b/packages/contracts-bedrock/.gas-snapshot @@ -21,14 +21,14 @@ CrossDomainOwnableThroughPortal_Test:test_depositTransaction_crossDomainOwner_su CrossDomainOwnable_Test:test_onlyOwner_notOwner_reverts() (gas: 10530) CrossDomainOwnable_Test:test_onlyOwner_succeeds() (gas: 34861) CrossDomainOwnable2_Test:test_onlyOwner_notMessenger_reverts() (gas: 8416) -CrossDomainOwnable2_Test:test_onlyOwner_notOwner2_reverts() (gas: 64616) +CrossDomainOwnable2_Test:test_onlyOwner_notOwner2_reverts() (gas: 63695) CrossDomainOwnable2_Test:test_onlyOwner_notOwner_reverts() (gas: 16588) -CrossDomainOwnable2_Test:test_onlyOwner_succeeds() (gas: 79364) +CrossDomainOwnable2_Test:test_onlyOwner_succeeds() (gas: 78212) CrossDomainOwnable3_Test:test_constructor_succeeds() (gas: 10576) CrossDomainOwnable3_Test:test_crossDomainOnlyOwner_notMessenger_reverts() (gas: 28289) -CrossDomainOwnable3_Test:test_crossDomainOnlyOwner_notOwner2_reverts() (gas: 79746) +CrossDomainOwnable3_Test:test_crossDomainOnlyOwner_notOwner2_reverts() (gas: 78594) CrossDomainOwnable3_Test:test_crossDomainOnlyOwner_notOwner_reverts() (gas: 31978) -CrossDomainOwnable3_Test:test_crossDomainTransferOwnership_succeeds() (gas: 97324) +CrossDomainOwnable3_Test:test_crossDomainTransferOwnership_succeeds() (gas: 96172) CrossDomainOwnable3_Test:test_localOnlyOwner_notOwner_reverts() (gas: 13215) CrossDomainOwnable3_Test:test_localOnlyOwner_succeeds() (gas: 35220) CrossDomainOwnable3_Test:test_localTransferOwnership_succeeds() (gas: 52128) @@ -71,24 +71,24 @@ L1BlockNumberTest:test_receive_succeeds() (gas: 25340) L1CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 24781) L1CrossDomainMessenger_Test:test_pause_callerIsNotOwner_reverts() (gas: 24517) L1CrossDomainMessenger_Test:test_pause_succeeds() (gas: 52964) -L1CrossDomainMessenger_Test:test_relayMessage_legacyOldReplay_reverts() (gas: 74933) -L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterFailureThenSuccess_reverts() (gas: 233723) -L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterFailure_succeeds() (gas: 206083) -L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterSuccess_reverts() (gas: 146213) -L1CrossDomainMessenger_Test:test_relayMessage_legacy_succeeds() (gas: 78034) -L1CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 78734) -L1CrossDomainMessenger_Test:test_relayMessage_reentrancyDiffMessage_succeeds() (gas: 727261) -L1CrossDomainMessenger_Test:test_relayMessage_reentrancySameMessage_reverts() (gas: 662167) -L1CrossDomainMessenger_Test:test_relayMessage_retryAfterFailure_succeeds() (gas: 200174) -L1CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 75073) -L1CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 102686) -L1CrossDomainMessenger_Test:test_relayMessage_v2_reverts() (gas: 12562) -L1CrossDomainMessenger_Test:test_replayMessage_withValue_reverts() (gas: 56661) +L1CrossDomainMessenger_Test:test_relayMessage_legacyOldReplay_reverts() (gas: 51545) +L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterFailureThenSuccess_reverts() (gas: 230701) +L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterFailure_succeeds() (gas: 204067) +L1CrossDomainMessenger_Test:test_relayMessage_legacyRetryAfterSuccess_reverts() (gas: 144199) +L1CrossDomainMessenger_Test:test_relayMessage_legacy_succeeds() (gas: 77026) +L1CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 55447) +L1CrossDomainMessenger_Test:test_relayMessage_reentrancyDiffMessage_succeeds() (gas: 723099) +L1CrossDomainMessenger_Test:test_relayMessage_reentrancySameMessage_reverts() (gas: 660069) +L1CrossDomainMessenger_Test:test_relayMessage_retryAfterFailure_succeeds() (gas: 197996) +L1CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 73984) +L1CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 100511) +L1CrossDomainMessenger_Test:test_relayMessage_v2_reverts() (gas: 14471) +L1CrossDomainMessenger_Test:test_replayMessage_withValue_reverts() (gas: 55573) L1CrossDomainMessenger_Test:test_sendMessage_succeeds() (gas: 299710) L1CrossDomainMessenger_Test:test_sendMessage_twice_succeeds() (gas: 1490566) L1CrossDomainMessenger_Test:test_unpause_callerIsNotOwner_reverts() (gas: 24538) L1CrossDomainMessenger_Test:test_unpause_succeeds() (gas: 45185) -L1CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 85438) +L1CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 84446) L1CrossDomainMessenger_Test:test_xDomainSender_notSet_reverts() (gas: 24274) L1ERC721Bridge_Test:test_bridgeERC721To_localTokenZeroAddress_reverts() (gas: 52730) L1ERC721Bridge_Test:test_bridgeERC721To_remoteTokenZeroAddress_reverts() (gas: 27332) @@ -127,16 +127,16 @@ L1StandardBridge_Receive_Test:test_receive_succeeds() (gas: 520198) L2CrossDomainMessenger_Test:test_messageVersion_succeeds() (gas: 8412) L2CrossDomainMessenger_Test:test_pause_notOwner_reverts() (gas: 10860) L2CrossDomainMessenger_Test:test_pause_succeeds() (gas: 31846) -L2CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 59787) -L2CrossDomainMessenger_Test:test_relayMessage_reentrancyDiffMessage_succeeds() (gas: 687927) -L2CrossDomainMessenger_Test:test_relayMessage_reentrancySameMessage_reverts() (gas: 631400) -L2CrossDomainMessenger_Test:test_relayMessage_retry_succeeds() (gas: 171357) -L2CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 57712) -L2CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 54619) -L2CrossDomainMessenger_Test:test_relayMessage_v2_reverts() (gas: 11925) +L2CrossDomainMessenger_Test:test_relayMessage_paused_reverts() (gas: 36500) +L2CrossDomainMessenger_Test:test_relayMessage_reentrancyDiffMessage_succeeds() (gas: 683845) +L2CrossDomainMessenger_Test:test_relayMessage_reentrancySameMessage_reverts() (gas: 629342) +L2CrossDomainMessenger_Test:test_relayMessage_retry_succeeds() (gas: 169219) +L2CrossDomainMessenger_Test:test_relayMessage_succeeds() (gas: 56856) +L2CrossDomainMessenger_Test:test_relayMessage_toSystemContract_reverts() (gas: 53532) +L2CrossDomainMessenger_Test:test_relayMessage_v2_reverts() (gas: 13839) L2CrossDomainMessenger_Test:test_sendMessage_succeeds() (gas: 122621) L2CrossDomainMessenger_Test:test_sendMessage_twice_succeeds() (gas: 134738) -L2CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 57144) +L2CrossDomainMessenger_Test:test_xDomainMessageSender_reset_succeeds() (gas: 56367) L2CrossDomainMessenger_Test:test_xDomainSender_senderNotSet_reverts() (gas: 10524) L2ERC721Bridge_Test:test_bridgeERC721To_localTokenZeroAddress_reverts() (gas: 26454) L2ERC721Bridge_Test:test_bridgeERC721To_remoteTokenZeroAddress_reverts() (gas: 21770) diff --git a/packages/contracts-bedrock/contracts/test/L1CrossDomainMessenger.t.sol b/packages/contracts-bedrock/contracts/test/L1CrossDomainMessenger.t.sol index 63fedda96aa5..191139bf47a8 100644 --- a/packages/contracts-bedrock/contracts/test/L1CrossDomainMessenger.t.sol +++ b/packages/contracts-bedrock/contracts/test/L1CrossDomainMessenger.t.sol @@ -148,7 +148,9 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { vm.store(address(op), bytes32(senderSlotIndex), bytes32(abi.encode(sender))); // Expect a revert. - vm.expectRevert("Hashing: unknown cross domain message version"); + vm.expectRevert( + "CrossDomainMessenger: only version 0 or 1 messages are supported at this time" + ); // Try to relay a v2 message. vm.prank(address(op)); diff --git a/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol b/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol index be399cfe265b..1ca531a4c567 100644 --- a/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol +++ b/packages/contracts-bedrock/contracts/test/L2CrossDomainMessenger.t.sol @@ -99,7 +99,9 @@ contract L2CrossDomainMessenger_Test is Messenger_Initializer { address caller = AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)); // Expect a revert. - vm.expectRevert("Hashing: unknown cross domain message version"); + vm.expectRevert( + "CrossDomainMessenger: only version 0 or 1 messages are supported at this time" + ); // Try to relay a v2 message. vm.prank(caller); diff --git a/packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol b/packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol index 0a199bbed404..dc19547a0c89 100644 --- a/packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol +++ b/packages/contracts-bedrock/contracts/universal/CrossDomainMessenger.sol @@ -181,21 +181,6 @@ abstract contract CrossDomainMessenger is */ event FailedRelayedMessage(bytes32 indexed msgHash); - /** - * @notice Modifier for a per-message reentrancy guard. - */ - modifier perMessageNonReentrant(bytes32 _msgHash) { - // Check if the reentrancy lock for the `_msgHash` is already set. - if (reentrancyLocks[_msgHash]) { - revert("ReentrancyGuard: reentrant call"); - } - // Trigger the reentrancy lock for the `_msgHash`. - reentrancyLocks[_msgHash] = true; - _; - // Clear the reentrancy lock for the `_msgHash`. - reentrancyLocks[_msgHash] = false; - } - /** * @param _otherMessenger Address of the messenger on the paired chain. */ @@ -280,15 +265,13 @@ abstract contract CrossDomainMessenger is uint256 _value, uint256 _minGasLimit, bytes calldata _message - ) - external - payable - perMessageNonReentrant( - Hashing.hashCrossDomainMessage(_nonce, _sender, _target, _value, _minGasLimit, _message) - ) - whenNotPaused - { + ) external payable whenNotPaused { (, uint16 version) = Encoding.decodeVersionedNonce(_nonce); + require( + version < 2, + "CrossDomainMessenger: only version 0 or 1 messages are supported at this time" + ); + // If the message is version 0, then it's a migrated legacy withdrawal. We therefore need // to check that the legacy version of the message has not already been relayed. if (version == 0) { @@ -310,6 +293,13 @@ abstract contract CrossDomainMessenger is _message ); + // Check if the reentrancy lock for the `versionedHash` is already set. + if (reentrancyLocks[versionedHash]) { + revert("ReentrancyGuard: reentrant call"); + } + // Trigger the reentrancy lock for `versionedHash` + reentrancyLocks[versionedHash] = true; + if (_isOtherMessenger()) { // These properties should always hold when the message is first submitted (as // opposed to being replayed). @@ -362,6 +352,9 @@ abstract contract CrossDomainMessenger is revert("CrossDomainMessenger: failed to relay message"); } } + + // Clear the reentrancy lock for `versionedHash` + reentrancyLocks[versionedHash] = false; } /**