From 25bc80613777ef1ab89d07f46f516279b9d0b5bf Mon Sep 17 00:00:00 2001 From: kukoo Date: Mon, 13 Jan 2025 16:39:50 +0800 Subject: [PATCH] [Lido Audit OZ]: Lido Audit Fix (#698) Co-authored-by: JOMOKING <83915728+RedHorse823@users.noreply.github.com> Co-authored-by: vincent --- bindings/bin/l1lidogateway_deployed.hex | 2 +- bindings/bin/l2lidogateway_deployed.hex | 2 +- bindings/bin/l2wstethtoken_deployed.hex | 2 +- bindings/bindings/l1lidogateway.go | 4 +- bindings/bindings/l1lidogateway_more.go | 2 +- bindings/bindings/l2lidogateway.go | 4 +- bindings/bindings/l2lidogateway_more.go | 2 +- bindings/bindings/l2wstethtoken.go | 4 +- bindings/bindings/l2wstethtoken_more.go | 2 +- contracts/contracts/lido/L1LidoGateway.sol | 13 +- contracts/contracts/lido/L2LidoGateway.sol | 15 ++- contracts/contracts/lido/L2WstETHToken.sol | 25 +++- .../contracts/lido/LidoBridgeableTokens.sol | 6 + .../contracts/lido/LidoGatewayManager.sol | 5 +- contracts/contracts/lido/README.md | 112 ++++++++++++++++++ 15 files changed, 172 insertions(+), 28 deletions(-) create mode 100644 contracts/contracts/lido/README.md diff --git a/bindings/bin/l1lidogateway_deployed.hex b/bindings/bin/l1lidogateway_deployed.hex index 6033c470..16f3a6fa 100644 --- a/bindings/bin/l1lidogateway_deployed.hex +++ b/bindings/bin/l1lidogateway_deployed.hex @@ -1 +1 @@ -0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced14610574578063f2fde38b14610593578063f887ea40146105b2578063fadcc54a146105d1575f80fd5b8063d547741f146104fb578063e3b523e31461051a578063e8bac93b1461054d578063f219fa6614610561575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461046b578063c0c53b8b1461049e578063c676ad29146104bd578063ca15c873146104dc575f80fd5b80639010d07c1461040557806391d1485414610424578063ac67e1af14610443578063ad960ce114610457575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461038357806384bd13b0146103a25780638d7601c0146103b55780638da5cb5b146103e8575f80fd5b80635e4c57a4146102df5780635ed2c220146102f35780636f18bd221461032e578063715018a61461036f575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff2671461026a5780635777bf501461029d575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e23660046129e2565b610604565b005b6101e76101f7366004612a96565b610618565b6101e761020a366004612ad5565b61089d565b34801561021a575f80fd5b506101e7610229366004612b07565b6108d6565b348015610239575f80fd5b5060995461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610275575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a8575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610261565b3480156102ea575f80fd5b506101e76108ec565b3480156102fe575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102cf565b348015610339575f80fd5b506103617f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610261565b34801561037a575f80fd5b506101e7610a1e565b34801561038e575f80fd5b5060975461024d906001600160a01b031681565b6101e76103b0366004612b35565b610a31565b3480156103c0575f80fd5b506103617f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103f3575f80fd5b506065546001600160a01b031661024d565b348015610410575f80fd5b5061024d61041f366004612bc7565b610c21565b34801561042f575f80fd5b506102cf61043e366004612b07565b610c60565b34801561044e575f80fd5b506101e7610c96565b348015610462575f80fd5b506101e7610dc4565b348015610476575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a9575f80fd5b506101e76104b8366004612be7565b610eda565b3480156104c8575f80fd5b5061024d6104d7366004612c2f565b611018565b3480156104e7575f80fd5b506103616104f6366004612c51565b6110ad565b348015610506575f80fd5b506101e7610515366004612b07565b6110e2565b348015610525575f80fd5b506103617f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610558575f80fd5b506101e76110f4565b6101e761056f366004612c68565b61120f565b34801561057f575f80fd5b506101e761058e366004612cab565b61121b565b34801561059e575f80fd5b506101e76105ad366004612c2f565b611330565b3480156105bd575f80fd5b5060985461024d906001600160a01b031681565b3480156105dc575f80fd5b506103617f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b61061185858585856113c0565b5050505050565b6099546001600160a01b03163381146106785760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612d04565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461074c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161066f565b610754611780565b7f8431f5c10000000000000000000000000000000000000000000000000000000061078260045f8587612d1f565b61078b91612d46565b7fffffffff0000000000000000000000000000000000000000000000000000000016146107fa5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642073656c6563746f7200000000000000000000000000000000604482015260640161066f565b5f808061080a8560048189612d1f565b8101906108179190612d8e565b50945050935050925061082b8383836117d9565b61083f6001600160a01b038416838361187d565b816001600160a01b0316836001600160a01b03167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161088491815260200190565b60405180910390a350505061089860018055565b505050565b6108988333845f5b6040519080825280601f01601f1916602001820160405280156108cf576020820181803683370190505b50856113c0565b6108de61192c565b6108e88282611986565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610948576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109727f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c60565b6109a8576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610a2661192c565b610a2f5f6119fc565b565b6099546001600160a01b0316338114610a8c5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c000000000000000000604482015260640161066f565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aec9190612d04565b6097546001600160a01b03908116911614610b495760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161066f565b610b51611780565b610b6088888888888888611a65565b610b746001600160a01b038916868661187d565b610bb38584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611be092505050565b856001600160a01b0316876001600160a01b0316896001600160a01b03167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610c069493929190612e19565b60405180910390a4610c1760018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c74565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c7f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610cf1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c60565b610d51576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e24576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c60565b610e84576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ef857505f54600160ff909116105b80610f115750303b158015610f1157505f5460ff166001145b610f835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc2575f805461ff0019166101001790555b610fcd848484611ca0565b8015611012575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611085576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c5a90611de3565b6110ea61192c565b6108e88282611dec565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611155576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c60565b6111b5576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6110128484845f6108a5565b5f54600290610100900460ff1615801561123b57505f5460ff8083169116105b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112e985858585611e62565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61133861192c565b6001600160a01b0381166113b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066f565b6113bd816119fc565b50565b6113c8611780565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611434576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611475576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff166114d0576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611509576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611515888787612043565b8051919850965090915015611556576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f887f0000000000000000000000000000000000000000000000000000000000000000838a8a8a60405160240161159296959493929190612eab565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa15801561164b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166f9190612ef8565b6099546097546040517f5f7b15770000000000000000000000000000000000000000000000000000000081529293506001600160a01b0391821692635f7b15779234926116c9929116905f9088908d908b90600401612f0f565b5f604051808303818588803b1580156116e0575f80fd5b505af11580156116f2573d5f803e3d5ffd5b5050505050826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b03167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728c8c8c8760405161176a9493929190612f51565b60405180910390a4505050505061061160018055565b6002600154036117d25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066f565b6002600155565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611845576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611012576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383166024820152604481018290526108989084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612299565b60018055565b6065546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066f565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206119bc908261237f565b156108e85760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611ad1576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611b3d576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611b9d576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611bd5576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611bf957505f826001600160a01b03163b115b156108e8576040517f444b281f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063444b281f90611c43908490600401612f89565b5f604051808303815f87803b158015611c5a575f80fd5b505af1158015611c6c573d5f803e3d5ffd5b505050505050565b5f610c578383612393565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6001600160a01b038316611cf65760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161066f565b6001600160a01b038116611d4c5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e676572206164647265737300000000000000000000604482015260640161066f565b611d546123b9565b611d5c61243d565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561089857609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c5a825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611e2290826124c1565b156108e85760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611ede5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611f663390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611fc57f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611986565b611fef7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611986565b6120197f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611986565b6106117f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611986565b6098545f908190606090339081906001600160a01b031681900361211357858060200190518101906120759190612f9b565b6040517fc52a3bbc0000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156120e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210c9190612ef8565b965061223d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612170573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121949190612ef8565b90506121ab6001600160a01b038a1683308b6124d5565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038b16906370a0823190602401602060405180830381865afa158015612208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061222c9190612ef8565b90506122388282613023565b985050505b5f871161228c5760405162461bcd60e51b815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e7400000000000000000000000000604482015260640161066f565b9795965093949350505050565b5f6122ed826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125269092919063ffffffff16565b905080515f148061230d57508080602001905181019061230d919061305b565b6108985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161066f565b5f610c57836001600160a01b03841661253c565b5f825f0182815481106123a8576123a861307a565b905f5260205f200154905092915050565b5f54610100900460ff166124355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f612588565b5f54610100900460ff166124b95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f612604565b5f610c57836001600160a01b038416612689565b6040516001600160a01b03808516602483015283166044820152606481018290526110129085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118c2565b606061253484845f8561276c565b949350505050565b5f81815260018301602052604081205461258157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c5a565b505f610c5a565b5f54610100900460ff166119265760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b5f54610100900460ff166126805760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f336119fc565b5f8181526001830160205260408120548015612763575f6126ab600183613023565b85549091505f906126be90600190613023565b905081811461271d575f865f0182815481106126dc576126dc61307a565b905f5260205f200154905080875f0184815481106126fc576126fc61307a565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061272e5761272e6130a7565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c5a565b5f915050610c5a565b6060824710156127e45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161066f565b5f80866001600160a01b031685876040516127ff91906130d4565b5f6040518083038185875af1925050503d805f8114612839576040519150601f19603f3d011682016040523d82523d5f602084013e61283e565b606091505b509150915061284f8783838761285a565b979650505050505050565b606083156128c85782515f036128c1576001600160a01b0385163b6128c15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161066f565b5081612534565b61253483838151156128dd5781518083602001fd5b8060405162461bcd60e51b815260040161066f9190612f89565b6001600160a01b03811681146113bd575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156129615761296161290b565b604052919050565b5f67ffffffffffffffff8211156129825761298261290b565b50601f01601f191660200190565b5f82601f83011261299f575f80fd5b81356129b26129ad82612969565b612938565b8181528460208386010111156129c6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129f6575f80fd5b8535612a01816128f7565b94506020860135612a11816128f7565b935060408601359250606086013567ffffffffffffffff811115612a33575f80fd5b612a3f88828901612990565b95989497509295608001359392505050565b5f8083601f840112612a61575f80fd5b50813567ffffffffffffffff811115612a78575f80fd5b602083019150836020828501011115612a8f575f80fd5b9250929050565b5f8060208385031215612aa7575f80fd5b823567ffffffffffffffff811115612abd575f80fd5b612ac985828601612a51565b90969095509350505050565b5f805f60608486031215612ae7575f80fd5b8335612af2816128f7565b95602085013595506040909401359392505050565b5f8060408385031215612b18575f80fd5b823591506020830135612b2a816128f7565b809150509250929050565b5f805f805f805f60c0888a031215612b4b575f80fd5b8735612b56816128f7565b96506020880135612b66816128f7565b95506040880135612b76816128f7565b94506060880135612b86816128f7565b93506080880135925060a088013567ffffffffffffffff811115612ba8575f80fd5b612bb48a828b01612a51565b989b979a50959850939692959293505050565b5f8060408385031215612bd8575f80fd5b50508035926020909101359150565b5f805f60608486031215612bf9575f80fd5b8335612c04816128f7565b92506020840135612c14816128f7565b91506040840135612c24816128f7565b809150509250925092565b5f60208284031215612c3f575f80fd5b8135612c4a816128f7565b9392505050565b5f60208284031215612c61575f80fd5b5035919050565b5f805f8060808587031215612c7b575f80fd5b8435612c86816128f7565b93506020850135612c96816128f7565b93969395505050506040820135916060013590565b5f805f8060808587031215612cbe575f80fd5b8435612cc9816128f7565b93506020850135612cd9816128f7565b92506040850135612ce9816128f7565b91506060850135612cf9816128f7565b939692955090935050565b5f60208284031215612d14575f80fd5b8151612c4a816128f7565b5f8085851115612d2d575f80fd5b83861115612d39575f80fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015612d865780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215612da3575f80fd5b8635612dae816128f7565b95506020870135612dbe816128f7565b94506040870135612dce816128f7565b93506060870135612dde816128f7565b92506080870135915060a087013567ffffffffffffffff811115612e00575f80fd5b612e0c89828a01612990565b9150509295509295509295565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f5b83811015612e78578181015183820152602001612e60565b50505f910152565b5f8151808452612e97816020860160208601612e5e565b601f01601f19169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612eec60c0830184612e80565b98975050505050505050565b5f60208284031215612f08575f80fd5b5051919050565b5f6001600160a01b03808816835286602084015260a06040840152612f3760a0840187612e80565b606084019590955292909216608090910152509392505050565b6001600160a01b0385168152836020820152608060408201525f612f786080830185612e80565b905082606083015295945050505050565b602081525f610c576020830184612e80565b5f8060408385031215612fac575f80fd5b8251612fb7816128f7565b602084015190925067ffffffffffffffff811115612fd3575f80fd5b8301601f81018513612fe3575f80fd5b8051612ff16129ad82612969565b818152866020838501011115613005575f80fd5b613016826020830160208601612e5e565b8093505050509250929050565b81810381811115610c5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561306b575f80fd5b81518015158114612c4a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516130e5818460208701612e5e565b919091019291505056fea164736f6c6343000818000a +0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced14610574578063f2fde38b14610593578063f887ea40146105b2578063fadcc54a146105d1575f80fd5b8063d547741f146104fb578063e3b523e31461051a578063e8bac93b1461054d578063f219fa6614610561575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461046b578063c0c53b8b1461049e578063c676ad29146104bd578063ca15c873146104dc575f80fd5b80639010d07c1461040557806391d1485414610424578063ac67e1af14610443578063ad960ce114610457575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461038357806384bd13b0146103a25780638d7601c0146103b55780638da5cb5b146103e8575f80fd5b80635e4c57a4146102df5780635ed2c220146102f35780636f18bd221461032e578063715018a61461036f575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff2671461026a5780635777bf501461029d575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e23660046129c6565b610604565b005b6101e76101f7366004612a7a565b610618565b6101e761020a366004612ab9565b61089d565b34801561021a575f80fd5b506101e7610229366004612aeb565b6108d6565b348015610239575f80fd5b5060995461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610275575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a8575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610261565b3480156102ea575f80fd5b506101e76108ec565b3480156102fe575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102cf565b348015610339575f80fd5b506103617f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610261565b34801561037a575f80fd5b506101e7610a1e565b34801561038e575f80fd5b5060975461024d906001600160a01b031681565b6101e76103b0366004612b19565b610a31565b3480156103c0575f80fd5b506103617f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103f3575f80fd5b506065546001600160a01b031661024d565b348015610410575f80fd5b5061024d61041f366004612bab565b610c21565b34801561042f575f80fd5b506102cf61043e366004612aeb565b610c60565b34801561044e575f80fd5b506101e7610c96565b348015610462575f80fd5b506101e7610dc4565b348015610476575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a9575f80fd5b506101e76104b8366004612bcb565b610eda565b3480156104c8575f80fd5b5061024d6104d7366004612c13565b611018565b3480156104e7575f80fd5b506103616104f6366004612c35565b6110ad565b348015610506575f80fd5b506101e7610515366004612aeb565b6110e2565b348015610525575f80fd5b506103617f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610558575f80fd5b506101e76110f4565b6101e761056f366004612c4c565b61120f565b34801561057f575f80fd5b506101e761058e366004612c8f565b61121b565b34801561059e575f80fd5b506101e76105ad366004612c13565b611330565b3480156105bd575f80fd5b5060985461024d906001600160a01b031681565b3480156105dc575f80fd5b506103617f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b61061185858585856113c0565b5050505050565b6099546001600160a01b03163381146106785760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612ce8565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461074c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161066f565b610754611764565b7f8431f5c10000000000000000000000000000000000000000000000000000000061078260045f8587612d03565b61078b91612d2a565b7fffffffff0000000000000000000000000000000000000000000000000000000016146107fa5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642073656c6563746f7200000000000000000000000000000000604482015260640161066f565b5f808061080a8560048189612d03565b8101906108179190612d72565b50945050935050925061082b8383836117bd565b61083f6001600160a01b0384168383611861565b816001600160a01b0316836001600160a01b03167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161088491815260200190565b60405180910390a350505061089860018055565b505050565b6108988333845f5b6040519080825280601f01601f1916602001820160405280156108cf576020820181803683370190505b50856113c0565b6108de611910565b6108e8828261196a565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610948576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109727f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c60565b6109a8576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610a26611910565b610a2f5f6119e0565b565b6099546001600160a01b0316338114610a8c5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c000000000000000000604482015260640161066f565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aec9190612ce8565b6097546001600160a01b03908116911614610b495760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161066f565b610b51611764565b610b6088888888888888611a49565b610b746001600160a01b0389168686611861565b610bb38584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bc492505050565b856001600160a01b0316876001600160a01b0316896001600160a01b03167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610c069493929190612dfd565b60405180910390a4610c1760018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c58565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c63565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610cf1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c60565b610d51576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e24576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c60565b610e84576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ef857505f54600160ff909116105b80610f115750303b158015610f1157505f5460ff166001145b610f835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc2575f805461ff0019166101001790555b610fcd848484611c84565b8015611012575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611085576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c5a90611dc7565b6110ea611910565b6108e88282611dd0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611155576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c60565b6111b5576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6110128484845f6108a5565b5f54600290610100900460ff1615801561123b57505f5460ff8083169116105b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112e985858585611e46565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611338611910565b6001600160a01b0381166113b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066f565b6113bd816119e0565b50565b6113c8611764565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611434576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611475576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff166114d0576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611509576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611515888787612027565b8051919850965090915015611556576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0000000000000000000000000000000000000000000000000000000000000000905f90611595908b90849086908d908d908d90602401612e8f565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa15801561164e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116729190612edc565b6099546097546040517f5f7b15770000000000000000000000000000000000000000000000000000000081529293506001600160a01b0391821692635f7b15779234926116cc929116905f9088908e908c90600401612ef3565b5f604051808303818588803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b5050505050836001600160a01b0316836001600160a01b03168c6001600160a01b03167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728d8d8d8760405161174d9493929190612f35565b60405180910390a450505050505061061160018055565b6002600154036117b65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066f565b6002600155565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611829576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611012576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383166024820152604481018290526108989084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261227d565b60018055565b6065546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066f565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206119a09082612363565b156108e85760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611ab5576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611b21576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611b81576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611bb9576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611bdd57505f826001600160a01b03163b115b156108e8576040517f444b281f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063444b281f90611c27908490600401612f6d565b5f604051808303815f87803b158015611c3e575f80fd5b505af1158015611c50573d5f803e3d5ffd5b505050505050565b5f610c578383612377565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6001600160a01b038316611cda5760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161066f565b6001600160a01b038116611d305760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e676572206164647265737300000000000000000000604482015260640161066f565b611d3861239d565b611d40612421565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561089857609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c5a825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611e0690826124a5565b156108e85760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611ec25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611f4a3390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611fa97f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a8661196a565b611fd37f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d68561196a565b611ffd7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d8461196a565b6106117f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c8361196a565b6098545f908190606090339081906001600160a01b03168190036120f757858060200190518101906120599190612f7f565b6040517fc52a3bbc0000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156120cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f09190612edc565b9650612221565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612154573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121789190612edc565b905061218f6001600160a01b038a1683308b6124b9565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038b16906370a0823190602401602060405180830381865afa1580156121ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122109190612edc565b905061221c8282613007565b985050505b5f87116122705760405162461bcd60e51b815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e7400000000000000000000000000604482015260640161066f565b9795965093949350505050565b5f6122d1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661250a9092919063ffffffff16565b905080515f14806122f15750808060200190518101906122f1919061303f565b6108985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161066f565b5f610c57836001600160a01b038416612520565b5f825f01828154811061238c5761238c61305e565b905f5260205f200154905092915050565b5f54610100900460ff166124195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f61256c565b5f54610100900460ff1661249d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f6125e8565b5f610c57836001600160a01b03841661266d565b6040516001600160a01b03808516602483015283166044820152606481018290526110129085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118a6565b606061251884845f85612750565b949350505050565b5f81815260018301602052604081205461256557508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c5a565b505f610c5a565b5f54610100900460ff1661190a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b5f54610100900460ff166126645760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f336119e0565b5f8181526001830160205260408120548015612747575f61268f600183613007565b85549091505f906126a290600190613007565b9050818114612701575f865f0182815481106126c0576126c061305e565b905f5260205f200154905080875f0184815481106126e0576126e061305e565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806127125761271261308b565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c5a565b5f915050610c5a565b6060824710156127c85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161066f565b5f80866001600160a01b031685876040516127e391906130b8565b5f6040518083038185875af1925050503d805f811461281d576040519150601f19603f3d011682016040523d82523d5f602084013e612822565b606091505b50915091506128338783838761283e565b979650505050505050565b606083156128ac5782515f036128a5576001600160a01b0385163b6128a55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161066f565b5081612518565b61251883838151156128c15781518083602001fd5b8060405162461bcd60e51b815260040161066f9190612f6d565b6001600160a01b03811681146113bd575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612945576129456128ef565b604052919050565b5f67ffffffffffffffff821115612966576129666128ef565b50601f01601f191660200190565b5f82601f830112612983575f80fd5b81356129966129918261294d565b61291c565b8181528460208386010111156129aa575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129da575f80fd5b85356129e5816128db565b945060208601356129f5816128db565b935060408601359250606086013567ffffffffffffffff811115612a17575f80fd5b612a2388828901612974565b95989497509295608001359392505050565b5f8083601f840112612a45575f80fd5b50813567ffffffffffffffff811115612a5c575f80fd5b602083019150836020828501011115612a73575f80fd5b9250929050565b5f8060208385031215612a8b575f80fd5b823567ffffffffffffffff811115612aa1575f80fd5b612aad85828601612a35565b90969095509350505050565b5f805f60608486031215612acb575f80fd5b8335612ad6816128db565b95602085013595506040909401359392505050565b5f8060408385031215612afc575f80fd5b823591506020830135612b0e816128db565b809150509250929050565b5f805f805f805f60c0888a031215612b2f575f80fd5b8735612b3a816128db565b96506020880135612b4a816128db565b95506040880135612b5a816128db565b94506060880135612b6a816128db565b93506080880135925060a088013567ffffffffffffffff811115612b8c575f80fd5b612b988a828b01612a35565b989b979a50959850939692959293505050565b5f8060408385031215612bbc575f80fd5b50508035926020909101359150565b5f805f60608486031215612bdd575f80fd5b8335612be8816128db565b92506020840135612bf8816128db565b91506040840135612c08816128db565b809150509250925092565b5f60208284031215612c23575f80fd5b8135612c2e816128db565b9392505050565b5f60208284031215612c45575f80fd5b5035919050565b5f805f8060808587031215612c5f575f80fd5b8435612c6a816128db565b93506020850135612c7a816128db565b93969395505050506040820135916060013590565b5f805f8060808587031215612ca2575f80fd5b8435612cad816128db565b93506020850135612cbd816128db565b92506040850135612ccd816128db565b91506060850135612cdd816128db565b939692955090935050565b5f60208284031215612cf8575f80fd5b8151612c2e816128db565b5f8085851115612d11575f80fd5b83861115612d1d575f80fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015612d6a5780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215612d87575f80fd5b8635612d92816128db565b95506020870135612da2816128db565b94506040870135612db2816128db565b93506060870135612dc2816128db565b92506080870135915060a087013567ffffffffffffffff811115612de4575f80fd5b612df089828a01612974565b9150509295509295509295565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f5b83811015612e5c578181015183820152602001612e44565b50505f910152565b5f8151808452612e7b816020860160208601612e42565b601f01601f19169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612ed060c0830184612e64565b98975050505050505050565b5f60208284031215612eec575f80fd5b5051919050565b5f6001600160a01b03808816835286602084015260a06040840152612f1b60a0840187612e64565b606084019590955292909216608090910152509392505050565b6001600160a01b0385168152836020820152608060408201525f612f5c6080830185612e64565b905082606083015295945050505050565b602081525f610c576020830184612e64565b5f8060408385031215612f90575f80fd5b8251612f9b816128db565b602084015190925067ffffffffffffffff811115612fb7575f80fd5b8301601f81018513612fc7575f80fd5b8051612fd56129918261294d565b818152866020838501011115612fe9575f80fd5b612ffa826020830160208601612e42565b8093505050509250929050565b81810381811115610c5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561304f575f80fd5b81518015158114612c2e575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516130c9818460208701612e42565b919091019291505056fea164736f6c6343000818000a diff --git a/bindings/bin/l2lidogateway_deployed.hex b/bindings/bin/l2lidogateway_deployed.hex index 68ff19c1..bd0fad2a 100644 --- a/bindings/bin/l2lidogateway_deployed.hex +++ b/bindings/bin/l2lidogateway_deployed.hex @@ -1 +1 @@ -0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced14610580578063f2fde38b1461059f578063f887ea40146105be578063fadcc54a146105dd575f80fd5b8063ca15c873146104fb578063d547741f1461051a578063e3b523e314610539578063e8bac93b1461056c575f80fd5b8063ad960ce1116100cd578063ad960ce114610476578063c01e1bd61461048a578063c0c53b8b146104bd578063c676ad29146104dc575f80fd5b80639010d07c1461041157806391d1485414610430578063a93a4af91461044f578063ac67e1af14610462575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b01461038f5780638431f5c1146103ae5780638d7601c0146103c15780638da5cb5b146103f4575f80fd5b80635ed2c220146102ec5780636c07ea43146103275780636f18bd221461033a578063715018a61461037b575f80fd5b806356eff267116101ae57806356eff26714610250578063575361b6146102835780635777bf50146102965780635e4c57a4146102d8575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c14610231575b5f80fd5b3480156101df575f80fd5b506101f36101ee36600461211c565b610610565b005b348015610200575f80fd5b50609954610214906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023c575f80fd5b5061021461024b36600461214a565b610626565b34801561025b575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b6101f36102913660046121b1565b6106bb565b3480156102a1575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610228565b3480156102e3575f80fd5b506101f3610706565b3480156102f7575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102c8565b6101f3610335366004612227565b610838565b348015610345575f80fd5b5061036d7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610228565b348015610386575f80fd5b506101f3610876565b34801561039a575f80fd5b50609754610214906001600160a01b031681565b6101f36103bc366004612259565b610889565b3480156103cc575f80fd5b5061036d7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103ff575f80fd5b506065546001600160a01b0316610214565b34801561041c575f80fd5b5061021461042b3660046122eb565b610bff565b34801561043b575f80fd5b506102c861044a36600461211c565b610c3e565b6101f361045d36600461230b565b610c74565b34801561046d575f80fd5b506101f3610c86565b348015610481575f80fd5b506101f3610db4565b348015610495575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c8575f80fd5b506101f36104d736600461234e565b610eca565b3480156104e7575f80fd5b506102146104f636600461214a565b611007565b348015610506575f80fd5b5061036d610515366004612396565b61109c565b348015610525575f80fd5b506101f361053436600461211c565b6110d1565b348015610544575f80fd5b5061036d7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610577575f80fd5b506101f36110e3565b34801561058b575f80fd5b506101f361059a3660046123ad565b6111fe565b3480156105aa575f80fd5b506101f36105b936600461214a565b611313565b3480156105c9575f80fd5b50609854610214906001600160a01b031681565b3480156105e8575f80fd5b5061036d7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106186113a3565b61062282826113fd565b5050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610693576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b6106fe86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250611473915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610762576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61078c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c3e565b6107c2576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108718333845f5b6040519080825280601f01601f19166020018201604052801561086a576020820181803683370190505b5085611473565b505050565b61087e6113a3565b6108875f6118eb565b565b6099546001600160a01b03163381146108e95760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190612433565b6097546001600160a01b039081169116146109a65760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016108e0565b6109ae611954565b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a1a576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a86576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ae1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610b19576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610b79575f80fd5b505af1158015610b8b573d5f803e3d5ffd5b50505050876001600160a01b0316896001600160a01b03168b6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610be2949392919061244e565b60405180910390a45050610bf560018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119b3565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119be565b610c808484845f610840565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ce1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c3e565b610d41576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e14576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c3e565b610e74576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ee857505f54600160ff909116105b80610f015750303b158015610f0157505f5460ff166001145b610f735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fb2575f805461ff0019166101001790555b610fbd8484846119df565b8015610c80575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611074576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3890611b22565b6110d96113a3565b6106228282611b2b565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611144576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116e7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c3e565b6111a4576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff1615801561121e57505f5460ff8083169116105b6112905760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112cc85858585611ba1565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61131b6113a3565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e0565b6113a0816118eb565b50565b6065546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e0565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206114339082611d82565b156106225760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b61147b611954565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114e7576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611528576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611588576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036115c1576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60985433906001600160a01b03168190036115ef57848060200190518101906115ea91906124d3565b955090505b845115611628576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b505050505f7f000000000000000000000000000000000000000000000000000000000000000089838a8a8a6040516024016116da969594939291906125f8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa1580156117b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d59190612645565b6099546097546040517fb2267a7b0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263b2267a7b92349261182d929116905f9088908d9060040161265c565b5f604051808303818588803b158015611844575f80fd5b505af1158015611856573d5f803e3d5ffd5b5050505050826001600160a01b03168a6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48c8c8c876040516118ce949392919061265c565b60405180910390a450505050506118e460018055565b5050505050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6002600154036119a65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108e0565b6002600155565b60018055565b5f610c358383611d96565b6001600160a01b0381165f9081526001830160205260408120541515610c35565b6001600160a01b038316611a355760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016108e0565b6001600160a01b038116611a8b5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016108e0565b611a93611dbc565b611a9b611e40565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561087157609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c38825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611b619082611ec4565b156106225760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611c1d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611ca53390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611d047f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a866113fd565b611d2e7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6856113fd565b611d587f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d846113fd565b6118e47f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c836113fd565b5f610c35836001600160a01b038416611ed8565b5f825f018281548110611dab57611dab612694565b905f5260205f200154905092915050565b5f54610100900460ff16611e385760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f24565b5f54610100900460ff16611ebc5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611fa0565b5f610c35836001600160a01b038416612025565b5f818152600183016020526040812054611f1d57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c38565b505f610c38565b5f54610100900460ff166119ad5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b5f54610100900460ff1661201c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887336118eb565b5f81815260018301602052604081205480156120ff575f6120476001836126c1565b85549091505f9061205a906001906126c1565b90508181146120b9575f865f01828154811061207857612078612694565b905f5260205f200154905080875f01848154811061209857612098612694565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806120ca576120ca6126f9565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c38565b5f915050610c38565b6001600160a01b03811681146113a0575f80fd5b5f806040838503121561212d575f80fd5b82359150602083013561213f81612108565b809150509250929050565b5f6020828403121561215a575f80fd5b813561216581612108565b9392505050565b5f8083601f84011261217c575f80fd5b50813567ffffffffffffffff811115612193575f80fd5b6020830191508360208285010111156121aa575f80fd5b9250929050565b5f805f805f8060a087890312156121c6575f80fd5b86356121d181612108565b955060208701356121e181612108565b945060408701359350606087013567ffffffffffffffff811115612203575f80fd5b61220f89828a0161216c565b979a9699509497949695608090950135949350505050565b5f805f60608486031215612239575f80fd5b833561224481612108565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a03121561226f575f80fd5b873561227a81612108565b9650602088013561228a81612108565b9550604088013561229a81612108565b945060608801356122aa81612108565b93506080880135925060a088013567ffffffffffffffff8111156122cc575f80fd5b6122d88a828b0161216c565b989b979a50959850939692959293505050565b5f80604083850312156122fc575f80fd5b50508035926020909101359150565b5f805f806080858703121561231e575f80fd5b843561232981612108565b9350602085013561233981612108565b93969395505050506040820135916060013590565b5f805f60608486031215612360575f80fd5b833561236b81612108565b9250602084013561237b81612108565b9150604084013561238b81612108565b809150509250925092565b5f602082840312156123a6575f80fd5b5035919050565b5f805f80608085870312156123c0575f80fd5b84356123cb81612108565b935060208501356123db81612108565b925060408501356123eb81612108565b915060608501356123fb81612108565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612443575f80fd5b815161216581612108565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156124cb5781810151838201526020016124b3565b50505f910152565b5f80604083850312156124e4575f80fd5b82516124ef81612108565b602084015190925067ffffffffffffffff8082111561250c575f80fd5b818501915085601f83011261251f575f80fd5b81518181111561253157612531612406565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561257757612577612406565b8160405282815288602084870101111561258f575f80fd5b6125a08360208301602088016124b1565b80955050505050509250929050565b5f81518084526125c68160208601602086016124b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261263960c08301846125af565b98975050505050505050565b5f60208284031215612655575f80fd5b5051919050565b6001600160a01b0385168152836020820152608060408201525f61268360808301856125af565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610c38577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a +0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced14610580578063f2fde38b1461059f578063f887ea40146105be578063fadcc54a146105dd575f80fd5b8063ca15c873146104fb578063d547741f1461051a578063e3b523e314610539578063e8bac93b1461056c575f80fd5b8063ad960ce1116100cd578063ad960ce114610476578063c01e1bd61461048a578063c0c53b8b146104bd578063c676ad29146104dc575f80fd5b80639010d07c1461041157806391d1485414610430578063a93a4af91461044f578063ac67e1af14610462575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b01461038f5780638431f5c1146103ae5780638d7601c0146103c15780638da5cb5b146103f4575f80fd5b80635ed2c220146102ec5780636c07ea43146103275780636f18bd221461033a578063715018a61461037b575f80fd5b806356eff267116101ae57806356eff26714610250578063575361b6146102835780635777bf50146102965780635e4c57a4146102d8575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c14610231575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004612100565b610610565b005b348015610200575f80fd5b50609954610214906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023c575f80fd5b5061021461024b36600461212e565b610626565b34801561025b575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b6101f3610291366004612195565b6106bb565b3480156102a1575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610228565b3480156102e3575f80fd5b506101f3610706565b3480156102f7575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102c8565b6101f361033536600461220b565b610838565b348015610345575f80fd5b5061036d7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610228565b348015610386575f80fd5b506101f3610876565b34801561039a575f80fd5b50609754610214906001600160a01b031681565b6101f36103bc36600461223d565b610889565b3480156103cc575f80fd5b5061036d7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103ff575f80fd5b506065546001600160a01b0316610214565b34801561041c575f80fd5b5061021461042b3660046122cf565b610bff565b34801561043b575f80fd5b506102c861044a366004612100565b610c3e565b6101f361045d3660046122ef565b610c74565b34801561046d575f80fd5b506101f3610c86565b348015610481575f80fd5b506101f3610db4565b348015610495575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c8575f80fd5b506101f36104d7366004612332565b610eca565b3480156104e7575f80fd5b506102146104f636600461212e565b611007565b348015610506575f80fd5b5061036d61051536600461237a565b61109c565b348015610525575f80fd5b506101f3610534366004612100565b6110d1565b348015610544575f80fd5b5061036d7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610577575f80fd5b506101f36110e3565b34801561058b575f80fd5b506101f361059a366004612391565b6111fe565b3480156105aa575f80fd5b506101f36105b936600461212e565b611313565b3480156105c9575f80fd5b50609854610214906001600160a01b031681565b3480156105e8575f80fd5b5061036d7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106186113a3565b61062282826113fd565b5050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610693576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b6106fe86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250611473915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610762576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61078c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c3e565b6107c2576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108718333845f5b6040519080825280601f01601f19166020018201604052801561086a576020820181803683370190505b5085611473565b505050565b61087e6113a3565b6108875f6118cf565b565b6099546001600160a01b03163381146108e95760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190612417565b6097546001600160a01b039081169116146109a65760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016108e0565b6109ae611938565b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a1a576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a86576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ae1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610b19576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610b79575f80fd5b505af1158015610b8b573d5f803e3d5ffd5b50505050876001600160a01b0316896001600160a01b03168b6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610be29493929190612432565b60405180910390a45050610bf560018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c359083611997565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119a2565b610c808484845f610840565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ce1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c3e565b610d41576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e14576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c3e565b610e74576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ee857505f54600160ff909116105b80610f015750303b158015610f0157505f5460ff166001145b610f735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fb2575f805461ff0019166101001790555b610fbd8484846119c3565b8015610c80575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611074576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3890611b06565b6110d96113a3565b6106228282611b0f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611144576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116e7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c3e565b6111a4576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff1615801561121e57505f5460ff8083169116105b6112905760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112cc85858585611b85565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61131b6113a3565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e0565b6113a0816118cf565b50565b6065546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e0565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206114339082611d66565b156106225760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b61147b611938565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114e7576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611528576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611588576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036115c1576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60985433906001600160a01b03168190036115ef57848060200190518101906115ea91906124b7565b955090505b845115611628576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b50506040517f000000000000000000000000000000000000000000000000000000000000000092505f91506116dd9083908c9086908d908d908d906024016125dc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d89190612629565b6099546097546040517fb2267a7b0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263b2267a7b923492611830929116905f9088908e90600401612640565b5f604051808303818588803b158015611847575f80fd5b505af1158015611859573d5f803e3d5ffd5b5050505050836001600160a01b03168b6001600160a01b0316846001600160a01b03167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48d8d8d876040516118b19493929190612640565b60405180910390a45050505050506118c860018055565b5050505050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60026001540361198a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108e0565b6002600155565b60018055565b5f610c358383611d7a565b6001600160a01b0381165f9081526001830160205260408120541515610c35565b6001600160a01b038316611a195760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016108e0565b6001600160a01b038116611a6f5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016108e0565b611a77611da0565b611a7f611e24565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561087157609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c38825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611b459082611ea8565b156106225760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611c015760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611c893390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611ce87f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a866113fd565b611d127f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6856113fd565b611d3c7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d846113fd565b6118c87f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c836113fd565b5f610c35836001600160a01b038416611ebc565b5f825f018281548110611d8f57611d8f612678565b905f5260205f200154905092915050565b5f54610100900460ff16611e1c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f08565b5f54610100900460ff16611ea05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f84565b5f610c35836001600160a01b038416612009565b5f818152600183016020526040812054611f0157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c38565b505f610c38565b5f54610100900460ff166119915760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b5f54610100900460ff166120005760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887336118cf565b5f81815260018301602052604081205480156120e3575f61202b6001836126a5565b85549091505f9061203e906001906126a5565b905081811461209d575f865f01828154811061205c5761205c612678565b905f5260205f200154905080875f01848154811061207c5761207c612678565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806120ae576120ae6126dd565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c38565b5f915050610c38565b6001600160a01b03811681146113a0575f80fd5b5f8060408385031215612111575f80fd5b823591506020830135612123816120ec565b809150509250929050565b5f6020828403121561213e575f80fd5b8135612149816120ec565b9392505050565b5f8083601f840112612160575f80fd5b50813567ffffffffffffffff811115612177575f80fd5b60208301915083602082850101111561218e575f80fd5b9250929050565b5f805f805f8060a087890312156121aa575f80fd5b86356121b5816120ec565b955060208701356121c5816120ec565b945060408701359350606087013567ffffffffffffffff8111156121e7575f80fd5b6121f389828a01612150565b979a9699509497949695608090950135949350505050565b5f805f6060848603121561221d575f80fd5b8335612228816120ec565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a031215612253575f80fd5b873561225e816120ec565b9650602088013561226e816120ec565b9550604088013561227e816120ec565b9450606088013561228e816120ec565b93506080880135925060a088013567ffffffffffffffff8111156122b0575f80fd5b6122bc8a828b01612150565b989b979a50959850939692959293505050565b5f80604083850312156122e0575f80fd5b50508035926020909101359150565b5f805f8060808587031215612302575f80fd5b843561230d816120ec565b9350602085013561231d816120ec565b93969395505050506040820135916060013590565b5f805f60608486031215612344575f80fd5b833561234f816120ec565b9250602084013561235f816120ec565b9150604084013561236f816120ec565b809150509250925092565b5f6020828403121561238a575f80fd5b5035919050565b5f805f80608085870312156123a4575f80fd5b84356123af816120ec565b935060208501356123bf816120ec565b925060408501356123cf816120ec565b915060608501356123df816120ec565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612427575f80fd5b8151612149816120ec565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156124af578181015183820152602001612497565b50505f910152565b5f80604083850312156124c8575f80fd5b82516124d3816120ec565b602084015190925067ffffffffffffffff808211156124f0575f80fd5b818501915085601f830112612503575f80fd5b815181811115612515576125156123ea565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561255b5761255b6123ea565b81604052828152886020848701011115612573575f80fd5b612584836020830160208801612495565b80955050505050509250929050565b5f81518084526125aa816020860160208601612495565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261261d60c0830184612593565b98975050505050505050565b5f60208284031215612639575f80fd5b5051919050565b6001600160a01b0385168152836020820152608060408201525f6126676080830185612593565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610c38577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a diff --git a/bindings/bin/l2wstethtoken_deployed.hex b/bindings/bin/l2wstethtoken_deployed.hex index 57abc8d4..2b66e449 100644 --- a/bindings/bin/l2wstethtoken_deployed.hex +++ b/bindings/bin/l2wstethtoken_deployed.hex @@ -1 +1 @@ -0x608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611a7e565b60405180910390f35b6101a361019e366004611abf565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611ae7565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611abf565b610499565b6101a3610276366004611b20565b6104e4565b61028e610289366004611abf565b61054d565b005b6101fc61029e366004611ba0565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611ba0565b6105c7565b6103006105f1565b6040516101879796959493929190611bb9565b61017a6106ae565b61028e610329366004611abf565b6106bd565b6101a361033c366004611abf565b61072e565b6101a361034f366004611abf565b6107e4565b61028e610362366004611d5d565b6107f1565b61028e610375366004611ded565b610a08565b6101fc610388366004611e52565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce90611e83565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611e83565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610bae565b60019150505b92915050565b5f33610475858285610d2d565b610480858585610de9565b506001949350505050565b5f61049461100f565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790611ece565b610bae565b5f6104ef85856107e4565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061101892505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105b95760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105c382826110a3565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b14801561060d5750606654155b6106595760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105b0565b61066161117c565b61066961118b565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce90611e83565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146107245760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105b0565b6105c3828261119a565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105b0565b6104808286868403610bae565b5f3361045c818585610de9565b5f54610100900460ff161580801561080f57505f54600160ff909116105b806108285750303b15801561082857505f5460ff166001145b61089a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f6575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108ff86611327565b61090986866113e5565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a00575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610a585760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105b0565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a868c61146b565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610aed8261149f565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610b4c908a9083906061016040516020818303038152906040526114e6565b610b985760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105b0565b610ba3898989610bae565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610cbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610de35781811015610dd65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b0565b610de38484848403610bae565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610efb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015610f965760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110029086815260200190565b60405180910390a3610de3565b5f61049461155e565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed369061107090339087908790600401611f06565b5f604051808303815f87803b158015611087575f80fd5b505af1158015611099573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166111065760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b0565b8060355f8282546111179190611ece565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce90611e83565b6060606880546103ce90611e83565b73ffffffffffffffffffffffffffffffffffffffff82166112235760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156112be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610d20565b505050565b5f54610100900460ff166113a35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6113e2816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506115d1565b50565b5f54610100900460ff166114615760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6105c38282611674565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f6104626114ab61100f565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6114f38585611709565b90925090505f81600481111561150b5761150b611f43565b14801561154357508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611554575061155486868661174b565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115886118a3565b6115906118fb565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff1661164d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60676116598382611fbb565b5060686116668282611fbb565b50505f606581905560665550565b5f54610100900460ff166116f05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60366116fc8382611fbb565b5060376113228282611fbb565b5f80825160410361173d576020830151604084015160608501515f1a6117318782858561192b565b94509450505050611744565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016117809291906120d3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161180991906120f3565b5f60405180830381855afa9150503d805f8114611841576040519150601f19603f3d011682016040523d82523d5f602084013e611846565b606091505b509150915081801561185a57506020815110155b8015611554575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611898908301602090810190840161210e565b149695505050505050565b5f806118ad61117c565b8051909150156118c4578051602090910120919050565b60655480156118d35792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f8061190561118b565b80519091501561191c578051602090910120919050565b60665480156118d35792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561196057505f90506003611a0a565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156119b1573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611a04575f60019250925050611a0a565b91505f90505b94509492505050565b5f5b83811015611a2d578181015183820152602001611a15565b50505f910152565b5f8151808452611a4c816020860160208601611a13565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611a906020830184611a35565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611aba575f80fd5b919050565b5f8060408385031215611ad0575f80fd5b611ad983611a97565b946020939093013593505050565b5f805f60608486031215611af9575f80fd5b611b0284611a97565b9250611b1060208501611a97565b9150604084013590509250925092565b5f805f8060608587031215611b33575f80fd5b611b3c85611a97565b935060208501359250604085013567ffffffffffffffff80821115611b5f575f80fd5b818701915087601f830112611b72575f80fd5b813581811115611b80575f80fd5b886020828501011115611b91575f80fd5b95989497505060200194505050565b5f60208284031215611bb0575f80fd5b611a9082611a97565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611bf560e084018a611a35565b8381036040850152611c07818a611a35565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611c6757835183529284019291840191600101611c4b565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611cb5575f80fd5b813567ffffffffffffffff80821115611cd057611cd0611c79565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611d1657611d16611c79565b81604052838152866020858801011115611d2e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611aba575f80fd5b5f805f805f60a08688031215611d71575f80fd5b853567ffffffffffffffff80821115611d88575f80fd5b611d9489838a01611ca6565b96506020880135915080821115611da9575f80fd5b50611db688828901611ca6565b945050611dc560408701611d4d565b9250611dd360608701611a97565b9150611de160808701611a97565b90509295509295909350565b5f805f805f805f60e0888a031215611e03575f80fd5b611e0c88611a97565b9650611e1a60208901611a97565b95506040880135945060608801359350611e3660808901611d4d565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611e63575f80fd5b611e6c83611a97565b9150611e7a60208401611a97565b90509250929050565b600181811c90821680611e9757607f821691505b602082108103611499577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611f3a6060830184611a35565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f82111561132257805f5260205f20601f840160051c81016020851015611f955750805b601f840160051c820191505b81811015611fb4575f8155600101611fa1565b5050505050565b815167ffffffffffffffff811115611fd557611fd5611c79565b611fe981611fe38454611e83565b84611f70565b602080601f83116001811461203b575f84156120055750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a00565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561208757888601518255948401946001909101908401612068565b50858210156120c357878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6120eb6040830184611a35565b949350505050565b5f8251612104818460208701611a13565b9190910192915050565b5f6020828403121561211e575f80fd5b505191905056fea164736f6c6343000818000a +0x608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611a52565b60405180910390f35b6101a361019e366004611a93565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611abb565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611a93565b610499565b6101a3610276366004611af4565b6104e4565b61028e610289366004611a93565b61054d565b005b6101fc61029e366004611b74565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611b74565b6105c7565b6103006105f1565b6040516101879796959493929190611b8d565b61017a6106ae565b61028e610329366004611a93565b6106bd565b6101a361033c366004611a93565b61072e565b6101a361034f366004611a93565b6107e4565b61028e610362366004611d31565b6107f1565b61028e610375366004611dc1565b610a08565b6101fc610388366004611e26565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce90611e57565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611e57565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610b82565b60019150505b92915050565b5f33610475858285610d01565b610480858585610dbd565b506001949350505050565b5f610494610fe3565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790611ea2565b610b82565b5f6104ef85856107e4565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610fec92505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105b95760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105c38282611077565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b14801561060d5750606654155b6106595760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105b0565b610661611150565b61066961115f565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce90611e57565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146107245760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105b0565b6105c3828261116e565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105b0565b6104808286868403610b82565b5f3361045c818585610dbd565b5f54610100900460ff161580801561080f57505f54600160ff909116105b806108285750303b15801561082857505f5460ff166001145b61089a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f6575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108ff866112fb565b61090986866113b9565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a00575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610a42576040517fa5faea8300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a708c61143f565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610ad782611473565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610b36908a9083906061016040516020818303038152906040526114ba565b610b6c576040517f3f88fec700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b77898989610b82565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c0a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610c935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610db75781811015610daa5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b0565b610db78484848403610b82565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610ecf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015610f6a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd69086815260200190565b60405180910390a3610db7565b5f610494611532565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed369061104490339087908790600401611eda565b5f604051808303815f87803b15801561105b575f80fd5b505af115801561106d573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166110da5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b0565b8060355f8282546110eb9190611ea2565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce90611e57565b6060606880546103ce90611e57565b73ffffffffffffffffffffffffffffffffffffffff82166111f75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156112925760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610cf4565b505050565b5f54610100900460ff166113775760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6113b6816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506115a5565b50565b5f54610100900460ff166114355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6105c38282611648565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f61046261147f610fe3565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6114c785856116dd565b90925090505f8160048111156114df576114df611f17565b14801561151757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611528575061152886868661171f565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61155c611877565b6115646118cf565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff166116215760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b606761162d8382611f8f565b50606861163a8282611f8f565b50505f606581905560665550565b5f54610100900460ff166116c45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60366116d08382611f8f565b5060376112f68282611f8f565b5f808251604103611711576020830151604084015160608501515f1a611705878285856118ff565b94509450505050611718565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016117549291906120a7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516117dd91906120c7565b5f60405180830381855afa9150503d805f8114611815576040519150601f19603f3d011682016040523d82523d5f602084013e61181a565b606091505b509150915081801561182e57506020815110155b8015611528575080517f1626ba7e000000000000000000000000000000000000000000000000000000009061186c90830160209081019084016120e2565b149695505050505050565b5f80611881611150565b805190915015611898578051602090910120919050565b60655480156118a75792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f806118d961115f565b8051909150156118f0578051602090910120919050565b60665480156118a75792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561193457505f905060036119de565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611985573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119d8575f600192509250506119de565b91505f90505b94509492505050565b5f5b83811015611a015781810151838201526020016119e9565b50505f910152565b5f8151808452611a208160208601602086016119e7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611a646020830184611a09565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8e575f80fd5b919050565b5f8060408385031215611aa4575f80fd5b611aad83611a6b565b946020939093013593505050565b5f805f60608486031215611acd575f80fd5b611ad684611a6b565b9250611ae460208501611a6b565b9150604084013590509250925092565b5f805f8060608587031215611b07575f80fd5b611b1085611a6b565b935060208501359250604085013567ffffffffffffffff80821115611b33575f80fd5b818701915087601f830112611b46575f80fd5b813581811115611b54575f80fd5b886020828501011115611b65575f80fd5b95989497505060200194505050565b5f60208284031215611b84575f80fd5b611a6482611a6b565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611bc960e084018a611a09565b8381036040850152611bdb818a611a09565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611c3b57835183529284019291840191600101611c1f565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611c89575f80fd5b813567ffffffffffffffff80821115611ca457611ca4611c4d565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611cea57611cea611c4d565b81604052838152866020858801011115611d02575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611a8e575f80fd5b5f805f805f60a08688031215611d45575f80fd5b853567ffffffffffffffff80821115611d5c575f80fd5b611d6889838a01611c7a565b96506020880135915080821115611d7d575f80fd5b50611d8a88828901611c7a565b945050611d9960408701611d21565b9250611da760608701611a6b565b9150611db560808701611a6b565b90509295509295909350565b5f805f805f805f60e0888a031215611dd7575f80fd5b611de088611a6b565b9650611dee60208901611a6b565b95506040880135945060608801359350611e0a60808901611d21565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611e37575f80fd5b611e4083611a6b565b9150611e4e60208401611a6b565b90509250929050565b600181811c90821680611e6b57607f821691505b60208210810361146d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611f0e6060830184611a09565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f8211156112f657805f5260205f20601f840160051c81016020851015611f695750805b601f840160051c820191505b81811015611f88575f8155600101611f75565b5050505050565b815167ffffffffffffffff811115611fa957611fa9611c4d565b611fbd81611fb78454611e57565b84611f44565b602080601f83116001811461200f575f8415611fd95750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a00565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561205b5788860151825594840194600190910190840161203c565b508582101561209757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6120bf6040830184611a09565b949350505050565b5f82516120d88184602087016119e7565b9190910192915050565b5f602082840312156120f2575f80fd5b505191905056fea164736f6c6343000818000a diff --git a/bindings/bindings/l1lidogateway.go b/bindings/bindings/l1lidogateway.go index 70d975c8..70c4caf6 100644 --- a/bindings/bindings/l1lidogateway.go +++ b/bindings/bindings/l1lidogateway.go @@ -31,8 +31,8 @@ var ( // L1LidoGatewayMetaData contains all meta data concerning the L1LidoGateway contract. var L1LidoGatewayMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DepositAndCallIsNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorAccountIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNonZeroMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL1Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL2Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsEnabled\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"DepositERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"DepositsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"DepositsEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FinalizeWithdrawERC20\",\"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\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RefundERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSITS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20AndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeWithdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"}],\"name\":\"getL2ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_depositsDisabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsDisabler\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isWithdrawalsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"onDropMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60c060405234801562000010575f80fd5b5060405162003368380380620033688339810160408190526200003391620001dc565b6001600160a01b03808316608081905290821660a0526200009b5760405162461bcd60e51b815260206004820152601460248201527f7a65726f206c31746f6b656e206164647265737300000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038116620000f35760405162461bcd60e51b815260206004820152601460248201527f7a65726f206c32546f6b656e2061646472657373000000000000000000000000604482015260640162000092565b620000fd62000105565b505062000212565b5f54610100900460ff16156200016e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000092565b5f5460ff90811614620001be575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001d7575f80fd5b919050565b5f8060408385031215620001ee575f80fd5b620001f983620001c0565b91506200020960208401620001c0565b90509250929050565b60805160a0516130fc6200026c5f395f818161027b015281816110880152818161155a015281816117030152611ad401525f818161047c0152818161101c015281816113cb015281816117dc0152611a6801526130fc5ff3fe6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced14610574578063f2fde38b14610593578063f887ea40146105b2578063fadcc54a146105d1575f80fd5b8063d547741f146104fb578063e3b523e31461051a578063e8bac93b1461054d578063f219fa6614610561575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461046b578063c0c53b8b1461049e578063c676ad29146104bd578063ca15c873146104dc575f80fd5b80639010d07c1461040557806391d1485414610424578063ac67e1af14610443578063ad960ce114610457575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461038357806384bd13b0146103a25780638d7601c0146103b55780638da5cb5b146103e8575f80fd5b80635e4c57a4146102df5780635ed2c220146102f35780636f18bd221461032e578063715018a61461036f575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff2671461026a5780635777bf501461029d575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e23660046129e2565b610604565b005b6101e76101f7366004612a96565b610618565b6101e761020a366004612ad5565b61089d565b34801561021a575f80fd5b506101e7610229366004612b07565b6108d6565b348015610239575f80fd5b5060995461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610275575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a8575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610261565b3480156102ea575f80fd5b506101e76108ec565b3480156102fe575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102cf565b348015610339575f80fd5b506103617f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610261565b34801561037a575f80fd5b506101e7610a1e565b34801561038e575f80fd5b5060975461024d906001600160a01b031681565b6101e76103b0366004612b35565b610a31565b3480156103c0575f80fd5b506103617f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103f3575f80fd5b506065546001600160a01b031661024d565b348015610410575f80fd5b5061024d61041f366004612bc7565b610c21565b34801561042f575f80fd5b506102cf61043e366004612b07565b610c60565b34801561044e575f80fd5b506101e7610c96565b348015610462575f80fd5b506101e7610dc4565b348015610476575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a9575f80fd5b506101e76104b8366004612be7565b610eda565b3480156104c8575f80fd5b5061024d6104d7366004612c2f565b611018565b3480156104e7575f80fd5b506103616104f6366004612c51565b6110ad565b348015610506575f80fd5b506101e7610515366004612b07565b6110e2565b348015610525575f80fd5b506103617f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610558575f80fd5b506101e76110f4565b6101e761056f366004612c68565b61120f565b34801561057f575f80fd5b506101e761058e366004612cab565b61121b565b34801561059e575f80fd5b506101e76105ad366004612c2f565b611330565b3480156105bd575f80fd5b5060985461024d906001600160a01b031681565b3480156105dc575f80fd5b506103617f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b61061185858585856113c0565b5050505050565b6099546001600160a01b03163381146106785760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612d04565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461074c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161066f565b610754611780565b7f8431f5c10000000000000000000000000000000000000000000000000000000061078260045f8587612d1f565b61078b91612d46565b7fffffffff0000000000000000000000000000000000000000000000000000000016146107fa5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642073656c6563746f7200000000000000000000000000000000604482015260640161066f565b5f808061080a8560048189612d1f565b8101906108179190612d8e565b50945050935050925061082b8383836117d9565b61083f6001600160a01b038416838361187d565b816001600160a01b0316836001600160a01b03167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161088491815260200190565b60405180910390a350505061089860018055565b505050565b6108988333845f5b6040519080825280601f01601f1916602001820160405280156108cf576020820181803683370190505b50856113c0565b6108de61192c565b6108e88282611986565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610948576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109727f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c60565b6109a8576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610a2661192c565b610a2f5f6119fc565b565b6099546001600160a01b0316338114610a8c5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c000000000000000000604482015260640161066f565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aec9190612d04565b6097546001600160a01b03908116911614610b495760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161066f565b610b51611780565b610b6088888888888888611a65565b610b746001600160a01b038916868661187d565b610bb38584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611be092505050565b856001600160a01b0316876001600160a01b0316896001600160a01b03167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610c069493929190612e19565b60405180910390a4610c1760018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c74565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c7f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610cf1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c60565b610d51576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e24576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c60565b610e84576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ef857505f54600160ff909116105b80610f115750303b158015610f1157505f5460ff166001145b610f835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc2575f805461ff0019166101001790555b610fcd848484611ca0565b8015611012575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611085576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c5a90611de3565b6110ea61192c565b6108e88282611dec565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611155576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c60565b6111b5576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6110128484845f6108a5565b5f54600290610100900460ff1615801561123b57505f5460ff8083169116105b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112e985858585611e62565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61133861192c565b6001600160a01b0381166113b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066f565b6113bd816119fc565b50565b6113c8611780565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611434576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611475576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff166114d0576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611509576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611515888787612043565b8051919850965090915015611556576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f887f0000000000000000000000000000000000000000000000000000000000000000838a8a8a60405160240161159296959493929190612eab565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa15801561164b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166f9190612ef8565b6099546097546040517f5f7b15770000000000000000000000000000000000000000000000000000000081529293506001600160a01b0391821692635f7b15779234926116c9929116905f9088908d908b90600401612f0f565b5f604051808303818588803b1580156116e0575f80fd5b505af11580156116f2573d5f803e3d5ffd5b5050505050826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b03167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728c8c8c8760405161176a9493929190612f51565b60405180910390a4505050505061061160018055565b6002600154036117d25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066f565b6002600155565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611845576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611012576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383166024820152604481018290526108989084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612299565b60018055565b6065546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066f565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206119bc908261237f565b156108e85760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611ad1576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611b3d576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611b9d576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611bd5576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611bf957505f826001600160a01b03163b115b156108e8576040517f444b281f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063444b281f90611c43908490600401612f89565b5f604051808303815f87803b158015611c5a575f80fd5b505af1158015611c6c573d5f803e3d5ffd5b505050505050565b5f610c578383612393565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6001600160a01b038316611cf65760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161066f565b6001600160a01b038116611d4c5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e676572206164647265737300000000000000000000604482015260640161066f565b611d546123b9565b611d5c61243d565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561089857609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c5a825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611e2290826124c1565b156108e85760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611ede5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611f663390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611fc57f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611986565b611fef7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611986565b6120197f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611986565b6106117f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611986565b6098545f908190606090339081906001600160a01b031681900361211357858060200190518101906120759190612f9b565b6040517fc52a3bbc0000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156120e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210c9190612ef8565b965061223d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612170573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121949190612ef8565b90506121ab6001600160a01b038a1683308b6124d5565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038b16906370a0823190602401602060405180830381865afa158015612208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061222c9190612ef8565b90506122388282613023565b985050505b5f871161228c5760405162461bcd60e51b815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e7400000000000000000000000000604482015260640161066f565b9795965093949350505050565b5f6122ed826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166125269092919063ffffffff16565b905080515f148061230d57508080602001905181019061230d919061305b565b6108985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161066f565b5f610c57836001600160a01b03841661253c565b5f825f0182815481106123a8576123a861307a565b905f5260205f200154905092915050565b5f54610100900460ff166124355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f612588565b5f54610100900460ff166124b95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f612604565b5f610c57836001600160a01b038416612689565b6040516001600160a01b03808516602483015283166044820152606481018290526110129085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118c2565b606061253484845f8561276c565b949350505050565b5f81815260018301602052604081205461258157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c5a565b505f610c5a565b5f54610100900460ff166119265760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b5f54610100900460ff166126805760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f336119fc565b5f8181526001830160205260408120548015612763575f6126ab600183613023565b85549091505f906126be90600190613023565b905081811461271d575f865f0182815481106126dc576126dc61307a565b905f5260205f200154905080875f0184815481106126fc576126fc61307a565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061272e5761272e6130a7565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c5a565b5f915050610c5a565b6060824710156127e45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161066f565b5f80866001600160a01b031685876040516127ff91906130d4565b5f6040518083038185875af1925050503d805f8114612839576040519150601f19603f3d011682016040523d82523d5f602084013e61283e565b606091505b509150915061284f8783838761285a565b979650505050505050565b606083156128c85782515f036128c1576001600160a01b0385163b6128c15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161066f565b5081612534565b61253483838151156128dd5781518083602001fd5b8060405162461bcd60e51b815260040161066f9190612f89565b6001600160a01b03811681146113bd575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156129615761296161290b565b604052919050565b5f67ffffffffffffffff8211156129825761298261290b565b50601f01601f191660200190565b5f82601f83011261299f575f80fd5b81356129b26129ad82612969565b612938565b8181528460208386010111156129c6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129f6575f80fd5b8535612a01816128f7565b94506020860135612a11816128f7565b935060408601359250606086013567ffffffffffffffff811115612a33575f80fd5b612a3f88828901612990565b95989497509295608001359392505050565b5f8083601f840112612a61575f80fd5b50813567ffffffffffffffff811115612a78575f80fd5b602083019150836020828501011115612a8f575f80fd5b9250929050565b5f8060208385031215612aa7575f80fd5b823567ffffffffffffffff811115612abd575f80fd5b612ac985828601612a51565b90969095509350505050565b5f805f60608486031215612ae7575f80fd5b8335612af2816128f7565b95602085013595506040909401359392505050565b5f8060408385031215612b18575f80fd5b823591506020830135612b2a816128f7565b809150509250929050565b5f805f805f805f60c0888a031215612b4b575f80fd5b8735612b56816128f7565b96506020880135612b66816128f7565b95506040880135612b76816128f7565b94506060880135612b86816128f7565b93506080880135925060a088013567ffffffffffffffff811115612ba8575f80fd5b612bb48a828b01612a51565b989b979a50959850939692959293505050565b5f8060408385031215612bd8575f80fd5b50508035926020909101359150565b5f805f60608486031215612bf9575f80fd5b8335612c04816128f7565b92506020840135612c14816128f7565b91506040840135612c24816128f7565b809150509250925092565b5f60208284031215612c3f575f80fd5b8135612c4a816128f7565b9392505050565b5f60208284031215612c61575f80fd5b5035919050565b5f805f8060808587031215612c7b575f80fd5b8435612c86816128f7565b93506020850135612c96816128f7565b93969395505050506040820135916060013590565b5f805f8060808587031215612cbe575f80fd5b8435612cc9816128f7565b93506020850135612cd9816128f7565b92506040850135612ce9816128f7565b91506060850135612cf9816128f7565b939692955090935050565b5f60208284031215612d14575f80fd5b8151612c4a816128f7565b5f8085851115612d2d575f80fd5b83861115612d39575f80fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015612d865780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215612da3575f80fd5b8635612dae816128f7565b95506020870135612dbe816128f7565b94506040870135612dce816128f7565b93506060870135612dde816128f7565b92506080870135915060a087013567ffffffffffffffff811115612e00575f80fd5b612e0c89828a01612990565b9150509295509295509295565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f5b83811015612e78578181015183820152602001612e60565b50505f910152565b5f8151808452612e97816020860160208601612e5e565b601f01601f19169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612eec60c0830184612e80565b98975050505050505050565b5f60208284031215612f08575f80fd5b5051919050565b5f6001600160a01b03808816835286602084015260a06040840152612f3760a0840187612e80565b606084019590955292909216608090910152509392505050565b6001600160a01b0385168152836020820152608060408201525f612f786080830185612e80565b905082606083015295945050505050565b602081525f610c576020830184612e80565b5f8060408385031215612fac575f80fd5b8251612fb7816128f7565b602084015190925067ffffffffffffffff811115612fd3575f80fd5b8301601f81018513612fe3575f80fd5b8051612ff16129ad82612969565b818152866020838501011115613005575f80fd5b613016826020830160208601612e5e565b8093505050509250929050565b81810381811115610c5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561306b575f80fd5b81518015158114612c4a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516130e5818460208701612e5e565b919091019291505056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DepositAndCallIsNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorAccountIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNonZeroMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL1Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL2Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"DepositERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"DepositsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"DepositsEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FinalizeWithdrawERC20\",\"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\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RefundERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSITS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"depositERC20AndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeWithdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"}],\"name\":\"getL2ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_depositsDisabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsDisabler\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isWithdrawalsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"onDropMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60c060405234801562000010575f80fd5b50604051620032d1380380620032d1833981016040819052620000339162000168565b6001600160a01b03808316608081905290821660a05215806200005d57506001600160a01b038116155b156200007c5760405163a7f9319d60e01b815260040160405180910390fd5b620000866200008e565b50506200019e565b5f54610100900460ff1615620000fa5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200014a575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811462000163575f80fd5b919050565b5f80604083850312156200017a575f80fd5b62000185836200014c565b915062000195602084016200014c565b90509250929050565b60805160a0516130e0620001f15f395f818161027b015281816110880152818161155b0152611ab801525f818161047c0152818161101c015281816113cb015281816117c00152611a4c01526130e05ff3fe6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced14610574578063f2fde38b14610593578063f887ea40146105b2578063fadcc54a146105d1575f80fd5b8063d547741f146104fb578063e3b523e31461051a578063e8bac93b1461054d578063f219fa6614610561575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461046b578063c0c53b8b1461049e578063c676ad29146104bd578063ca15c873146104dc575f80fd5b80639010d07c1461040557806391d1485414610424578063ac67e1af14610443578063ad960ce114610457575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461038357806384bd13b0146103a25780638d7601c0146103b55780638da5cb5b146103e8575f80fd5b80635e4c57a4146102df5780635ed2c220146102f35780636f18bd221461032e578063715018a61461036f575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff2671461026a5780635777bf501461029d575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e23660046129c6565b610604565b005b6101e76101f7366004612a7a565b610618565b6101e761020a366004612ab9565b61089d565b34801561021a575f80fd5b506101e7610229366004612aeb565b6108d6565b348015610239575f80fd5b5060995461024d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610275575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a8575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610261565b3480156102ea575f80fd5b506101e76108ec565b3480156102fe575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102cf565b348015610339575f80fd5b506103617f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610261565b34801561037a575f80fd5b506101e7610a1e565b34801561038e575f80fd5b5060975461024d906001600160a01b031681565b6101e76103b0366004612b19565b610a31565b3480156103c0575f80fd5b506103617f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103f3575f80fd5b506065546001600160a01b031661024d565b348015610410575f80fd5b5061024d61041f366004612bab565b610c21565b34801561042f575f80fd5b506102cf61043e366004612aeb565b610c60565b34801561044e575f80fd5b506101e7610c96565b348015610462575f80fd5b506101e7610dc4565b348015610476575f80fd5b5061024d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a9575f80fd5b506101e76104b8366004612bcb565b610eda565b3480156104c8575f80fd5b5061024d6104d7366004612c13565b611018565b3480156104e7575f80fd5b506103616104f6366004612c35565b6110ad565b348015610506575f80fd5b506101e7610515366004612aeb565b6110e2565b348015610525575f80fd5b506103617f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610558575f80fd5b506101e76110f4565b6101e761056f366004612c4c565b61120f565b34801561057f575f80fd5b506101e761058e366004612c8f565b61121b565b34801561059e575f80fd5b506101e76105ad366004612c13565b611330565b3480156105bd575f80fd5b5060985461024d906001600160a01b031681565b3480156105dc575f80fd5b506103617f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b61061185858585856113c0565b5050505050565b6099546001600160a01b03163381146106785760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612ce8565b6001600160a01b0316736f297c61b5c92ef107ffd30cd56affe5a273e8416001600160a01b03161461074c5760405162461bcd60e51b815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e746578740000000000604482015260640161066f565b610754611764565b7f8431f5c10000000000000000000000000000000000000000000000000000000061078260045f8587612d03565b61078b91612d2a565b7fffffffff0000000000000000000000000000000000000000000000000000000016146107fa5760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642073656c6563746f7200000000000000000000000000000000604482015260640161066f565b5f808061080a8560048189612d03565b8101906108179190612d72565b50945050935050925061082b8383836117bd565b61083f6001600160a01b0384168383611861565b816001600160a01b0316836001600160a01b03167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161088491815260200190565b60405180910390a350505061089860018055565b505050565b6108988333845f5b6040519080825280601f01601f1916602001820160405280156108cf576020820181803683370190505b50856113c0565b6108de611910565b6108e8828261196a565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610948576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109727f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c60565b6109a8576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610a26611910565b610a2f5f6119e0565b565b6099546001600160a01b0316338114610a8c5760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c000000000000000000604482015260640161066f565b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aec9190612ce8565b6097546001600160a01b03908116911614610b495760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e746572706172740000000000000000604482015260640161066f565b610b51611764565b610b6088888888888888611a49565b610b746001600160a01b0389168686611861565b610bb38584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bc492505050565b856001600160a01b0316876001600160a01b0316896001600160a01b03167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610c069493929190612dfd565b60405180910390a4610c1760018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c58565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c579083611c63565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610cf1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c60565b610d51576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e24576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c60565b610e84576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ef857505f54600160ff909116105b80610f115750303b158015610f1157505f5460ff166001145b610f835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc2575f805461ff0019166101001790555b610fcd848484611c84565b8015611012575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611085576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c5a90611dc7565b6110ea611910565b6108e88282611dd0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611155576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c60565b6111b5576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6110128484845f6108a5565b5f54600290610100900460ff1615801561123b57505f5460ff8083169116105b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066f565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112e985858585611e46565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611338611910565b6001600160a01b0381166113b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066f565b6113bd816119e0565b50565b6113c8611764565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611434576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611475576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff166114d0576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611509576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611515888787612027565b8051919850965090915015611556576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0000000000000000000000000000000000000000000000000000000000000000905f90611595908b90849086908d908d908d90602401612e8f565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa15801561164e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116729190612edc565b6099546097546040517f5f7b15770000000000000000000000000000000000000000000000000000000081529293506001600160a01b0391821692635f7b15779234926116cc929116905f9088908e908c90600401612ef3565b5f604051808303818588803b1580156116e3575f80fd5b505af11580156116f5573d5f803e3d5ffd5b5050505050836001600160a01b0316836001600160a01b03168c6001600160a01b03167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728d8d8d8760405161174d9493929190612f35565b60405180910390a450505050505061061160018055565b6002600154036117b65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066f565b6002600155565b827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611829576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611012576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383166024820152604481018290526108989084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261227d565b60018055565b6065546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066f565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206119a09082612363565b156108e85760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611ab5576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611b21576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611b81576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611bb9576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611bdd57505f826001600160a01b03163b115b156108e8576040517f444b281f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063444b281f90611c27908490600401612f6d565b5f604051808303815f87803b158015611c3e575f80fd5b505af1158015611c50573d5f803e3d5ffd5b505050505050565b5f610c578383612377565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6001600160a01b038316611cda5760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e7465727061727420616464726573730000000000000000604482015260640161066f565b6001600160a01b038116611d305760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e676572206164647265737300000000000000000000604482015260640161066f565b611d3861239d565b611d40612421565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561089857609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c5a825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611e0690826124a5565b156108e85760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611ec25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611f4a3390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611fa97f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a8661196a565b611fd37f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d68561196a565b611ffd7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d8461196a565b6106117f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c8361196a565b6098545f908190606090339081906001600160a01b03168190036120f757858060200190518101906120599190612f7f565b6040517fc52a3bbc0000000000000000000000000000000000000000000000000000000081526001600160a01b0380841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156120cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f09190612edc565b9650612221565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612154573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121789190612edc565b905061218f6001600160a01b038a1683308b6124b9565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038b16906370a0823190602401602060405180830381865afa1580156121ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122109190612edc565b905061221c8282613007565b985050505b5f87116122705760405162461bcd60e51b815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e7400000000000000000000000000604482015260640161066f565b9795965093949350505050565b5f6122d1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661250a9092919063ffffffff16565b905080515f14806122f15750808060200190518101906122f1919061303f565b6108985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161066f565b5f610c57836001600160a01b038416612520565b5f825f01828154811061238c5761238c61305e565b905f5260205f200154905092915050565b5f54610100900460ff166124195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f61256c565b5f54610100900460ff1661249d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f6125e8565b5f610c57836001600160a01b03841661266d565b6040516001600160a01b03808516602483015283166044820152606481018290526110129085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118a6565b606061251884845f85612750565b949350505050565b5f81815260018301602052604081205461256557508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c5a565b505f610c5a565b5f54610100900460ff1661190a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b5f54610100900460ff166126645760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161066f565b610a2f336119e0565b5f8181526001830160205260408120548015612747575f61268f600183613007565b85549091505f906126a290600190613007565b9050818114612701575f865f0182815481106126c0576126c061305e565b905f5260205f200154905080875f0184815481106126e0576126e061305e565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806127125761271261308b565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c5a565b5f915050610c5a565b6060824710156127c85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161066f565b5f80866001600160a01b031685876040516127e391906130b8565b5f6040518083038185875af1925050503d805f811461281d576040519150601f19603f3d011682016040523d82523d5f602084013e612822565b606091505b50915091506128338783838761283e565b979650505050505050565b606083156128ac5782515f036128a5576001600160a01b0385163b6128a55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161066f565b5081612518565b61251883838151156128c15781518083602001fd5b8060405162461bcd60e51b815260040161066f9190612f6d565b6001600160a01b03811681146113bd575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612945576129456128ef565b604052919050565b5f67ffffffffffffffff821115612966576129666128ef565b50601f01601f191660200190565b5f82601f830112612983575f80fd5b81356129966129918261294d565b61291c565b8181528460208386010111156129aa575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129da575f80fd5b85356129e5816128db565b945060208601356129f5816128db565b935060408601359250606086013567ffffffffffffffff811115612a17575f80fd5b612a2388828901612974565b95989497509295608001359392505050565b5f8083601f840112612a45575f80fd5b50813567ffffffffffffffff811115612a5c575f80fd5b602083019150836020828501011115612a73575f80fd5b9250929050565b5f8060208385031215612a8b575f80fd5b823567ffffffffffffffff811115612aa1575f80fd5b612aad85828601612a35565b90969095509350505050565b5f805f60608486031215612acb575f80fd5b8335612ad6816128db565b95602085013595506040909401359392505050565b5f8060408385031215612afc575f80fd5b823591506020830135612b0e816128db565b809150509250929050565b5f805f805f805f60c0888a031215612b2f575f80fd5b8735612b3a816128db565b96506020880135612b4a816128db565b95506040880135612b5a816128db565b94506060880135612b6a816128db565b93506080880135925060a088013567ffffffffffffffff811115612b8c575f80fd5b612b988a828b01612a35565b989b979a50959850939692959293505050565b5f8060408385031215612bbc575f80fd5b50508035926020909101359150565b5f805f60608486031215612bdd575f80fd5b8335612be8816128db565b92506020840135612bf8816128db565b91506040840135612c08816128db565b809150509250925092565b5f60208284031215612c23575f80fd5b8135612c2e816128db565b9392505050565b5f60208284031215612c45575f80fd5b5035919050565b5f805f8060808587031215612c5f575f80fd5b8435612c6a816128db565b93506020850135612c7a816128db565b93969395505050506040820135916060013590565b5f805f8060808587031215612ca2575f80fd5b8435612cad816128db565b93506020850135612cbd816128db565b92506040850135612ccd816128db565b91506060850135612cdd816128db565b939692955090935050565b5f60208284031215612cf8575f80fd5b8151612c2e816128db565b5f8085851115612d11575f80fd5b83861115612d1d575f80fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015612d6a5780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215612d87575f80fd5b8635612d92816128db565b95506020870135612da2816128db565b94506040870135612db2816128db565b93506060870135612dc2816128db565b92506080870135915060a087013567ffffffffffffffff811115612de4575f80fd5b612df089828a01612974565b9150509295509295509295565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f5b83811015612e5c578181015183820152602001612e44565b50505f910152565b5f8151808452612e7b816020860160208601612e42565b601f01601f19169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612ed060c0830184612e64565b98975050505050505050565b5f60208284031215612eec575f80fd5b5051919050565b5f6001600160a01b03808816835286602084015260a06040840152612f1b60a0840187612e64565b606084019590955292909216608090910152509392505050565b6001600160a01b0385168152836020820152608060408201525f612f5c6080830185612e64565b905082606083015295945050505050565b602081525f610c576020830184612e64565b5f8060408385031215612f90575f80fd5b8251612f9b816128db565b602084015190925067ffffffffffffffff811115612fb7575f80fd5b8301601f81018513612fc7575f80fd5b8051612fd56129918261294d565b818152866020838501011115612fe9575f80fd5b612ffa826020830160208601612e42565b8093505050509250929050565b81810381811115610c5a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561304f575f80fd5b81518015158114612c2e575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516130c9818460208701612e42565b919091019291505056fea164736f6c6343000818000a", } // L1LidoGatewayABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l1lidogateway_more.go b/bindings/bindings/l1lidogateway_more.go index bd41e634..7d00319c 100644 --- a/bindings/bindings/l1lidogateway_more.go +++ b/bindings/bindings/l1lidogateway_more.go @@ -13,7 +13,7 @@ const L1LidoGatewayStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract var L1LidoGatewayStorageLayout = new(solc.StorageLayout) -var L1LidoGatewayDeployedBin = "0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced146105a8578063f2fde38b146105c7578063f887ea40146105e6578063fadcc54a14610612575f80fd5b8063d547741f1461052f578063e3b523e31461054e578063e8bac93b14610581578063f219fa6614610595575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461049f578063c0c53b8b146104d2578063c676ad29146104f1578063ca15c87314610510575f80fd5b80639010d07c1461043957806391d1485414610458578063ac67e1af14610477578063ad960ce11461048b575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461039d57806384bd13b0146103c95780638d7601c0146103dc5780638da5cb5b1461040f575f80fd5b80635e4c57a4146102f95780635ed2c2201461030d5780636f18bd2214610348578063715018a614610389575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff267146102845780635777bf50146102b7575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e236600461305d565b610645565b005b6101e76101f7366004613111565b610659565b6101e761020a366004613150565b610987565b34801561021a575f80fd5b506101e7610229366004613182565b6109c0565b348015610239575f80fd5b5060995461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561028f575f80fd5b5061025a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c2575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b604051901515815260200161027b565b348015610304575f80fd5b506101e76109d6565b348015610318575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102e9565b348015610353575f80fd5b5061037b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b60405190815260200161027b565b348015610394575f80fd5b506101e7610b08565b3480156103a8575f80fd5b5060975461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101e76103d73660046131b0565b610b1b565b3480156103e7575f80fd5b5061037b7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b34801561041a575f80fd5b5060655473ffffffffffffffffffffffffffffffffffffffff1661025a565b348015610444575f80fd5b5061025a610453366004613242565b610d9a565b348015610463575f80fd5b506102e9610472366004613182565b610dd9565b348015610482575f80fd5b506101e7610e0f565b348015610496575f80fd5b506101e7610f3d565b3480156104aa575f80fd5b5061025a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104dd575f80fd5b506101e76104ec366004613262565b611070565b3480156104fc575f80fd5b5061025a61050b3660046132aa565b611202565b34801561051b575f80fd5b5061037b61052a3660046132cc565b6112b1565b34801561053a575f80fd5b506101e7610549366004613182565b6112e6565b348015610559575f80fd5b5061037b7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b34801561058c575f80fd5b506101e76112f8565b6101e76105a33660046132e3565b611430565b3480156105b3575f80fd5b506101e76105c2366004613326565b61143c565b3480156105d2575f80fd5b506101e76105e13660046132aa565b611588565b3480156105f1575f80fd5b5060985461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561061d575f80fd5b5061037b7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b610652858585858561163f565b5050505050565b60995473ffffffffffffffffffffffffffffffffffffffff163381146106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d919061337f565b73ffffffffffffffffffffffffffffffffffffffff16736f297c61b5c92ef107ffd30cd56affe5a273e84173ffffffffffffffffffffffffffffffffffffffff16146107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e74657874000000000060448201526064016106d7565b6107fd611a85565b7f8431f5c10000000000000000000000000000000000000000000000000000000061082b60045f858761339a565b610834916133c1565b7fffffffff0000000000000000000000000000000000000000000000000000000016146108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f696e76616c69642073656c6563746f720000000000000000000000000000000060448201526064016106d7565b5f80806108cd856004818961339a565b8101906108da9190613409565b5094505093505092506108ee838383611af8565b61090f73ffffffffffffffffffffffffffffffffffffffff84168383611bb6565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161096e91815260200190565b60405180910390a350505061098260018055565b505050565b6109828333845f5b6040519080825280601f01601f1916602001820160405280156109b9576020820181803683370190505b508561163f565b6109c8611c90565b6109d28282611d11565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610a32576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a5c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610dd9565b610a92576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610b10611c90565b610b195f611d94565b565b60995473ffffffffffffffffffffffffffffffffffffffff16338114610b9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064016106d7565b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a919061337f565b60975473ffffffffffffffffffffffffffffffffffffffff908116911614610c8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016106d7565b610c96611a85565b610ca588888888888888611e0a565b610cc673ffffffffffffffffffffffffffffffffffffffff89168686611bb6565b610d058584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611fb992505050565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610d7f9493929190613494565b60405180910390a4610d9060018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd09083612067565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd09083612072565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610e6a576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e947f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610dd9565b610eca576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610f9d576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fc77f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610dd9565b610ffd576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff161580801561108e57505f54600160ff909116105b806110a75750303b1580156110a757505f5460ff166001145b611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561118f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61119a8484846120a0565b80156111fc575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611289576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd39061224b565b6112ee611c90565b6109d28282612254565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611359576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113837f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610dd9565b6113b9576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6111fc8484845f61098f565b5f54600290610100900460ff1615801561145c57505f5460ff8083169116105b6114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611524858585856122d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611590611c90565b73ffffffffffffffffffffffffffffffffffffffff8116611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d7565b61163c81611d94565b50565b611647611a85565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116cd576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff811661171b576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16611776576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036117af576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6117bb8887876124fc565b80519198509650909150156117fc576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f887f0000000000000000000000000000000000000000000000000000000000000000838a8a8a6040516024016118389695949392919061356f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f9373ffffffffffffffffffffffffffffffffffffffff9091169263ecc704289260048083019391928290030181865afa15801561191c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194091906135c9565b6099546097546040517f5f7b157700000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff91821692635f7b15779234926119a7929116905f9088908d908b906004016135e0565b5f604051808303818588803b1580156119be575f80fd5b505af11580156119d0573d5f803e3d5ffd5b50505050508273ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728c8c8c87604051611a6f949392919061362f565b60405180910390a4505050505061065260018055565b600260015403611af1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106d7565b6002600155565b827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b7e576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34156111fc576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109829084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526127ad565b60018055565b60655473ffffffffffffffffffffffffffffffffffffffff163314610b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d7565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611d4790826128ba565b156109d257604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e90576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f16576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611f76576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611fae576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611fdf57505f8273ffffffffffffffffffffffffffffffffffffffff163b115b156109d2576040517f444b281f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063444b281f90612036908490600401613674565b5f604051808303815f87803b15801561204d575f80fd5b505af115801561205f573d5f803e3d5ffd5b505050505050565b5f610dd083836128db565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610dd0565b73ffffffffffffffffffffffffffffffffffffffff831661211d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016106d7565b73ffffffffffffffffffffffffffffffffffffffff811661219a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016106d7565b6121a2612901565b6121aa61299f565b6097805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609980548484169216919091179055821615610982576098805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610dd3825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed6020526040902061228a9082612a3d565b156109d257604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff1661236d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001781556124123390565b73ffffffffffffffffffffffffffffffffffffffff167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a261247e7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611d11565b6124a87f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611d11565b6124d27f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611d11565b6106527f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611d11565b6098545f9081906060903390819073ffffffffffffffffffffffffffffffffffffffff168190036125e6578580602001905181019061253b9190613686565b6040517fc52a3bbc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af11580156125bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125df91906135c9565b9650612737565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa158015612650573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061267491906135c9565b905061269873ffffffffffffffffffffffffffffffffffffffff8a1683308b612a5e565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa158015612702573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272691906135c9565b9050612732828261370e565b985050505b5f87116127a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e740000000000000000000000000060448201526064016106d7565b9795965093949350505050565b5f61280e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612abc9092919063ffffffff16565b905080515f148061282e57508080602001905181019061282e9190613746565b610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106d7565b5f610dd08373ffffffffffffffffffffffffffffffffffffffff8416612ad2565b5f825f0182815481106128f0576128f0613765565b905f5260205f200154905092915050565b5f54610100900460ff16612997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b19612b1e565b5f54610100900460ff16612a35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b19612bb4565b5f610dd08373ffffffffffffffffffffffffffffffffffffffff8416612c53565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526111fc9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611c08565b6060612aca84845f85612d36565b949350505050565b5f818152600183016020526040812054612b1757508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610dd3565b505f610dd3565b5f54610100900460ff16611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b5f54610100900460ff16612c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b1933611d94565b5f8181526001830160205260408120548015612d2d575f612c7560018361370e565b85549091505f90612c889060019061370e565b9050818114612ce7575f865f018281548110612ca657612ca6613765565b905f5260205f200154905080875f018481548110612cc657612cc6613765565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612cf857612cf8613792565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610dd3565b5f915050610dd3565b606082471015612dc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106d7565b5f808673ffffffffffffffffffffffffffffffffffffffff168587604051612df091906137bf565b5f6040518083038185875af1925050503d805f8114612e2a576040519150601f19603f3d011682016040523d82523d5f602084013e612e2f565b606091505b5091509150612e4087838387612e4b565b979650505050505050565b60608315612ee05782515f03612ed95773ffffffffffffffffffffffffffffffffffffffff85163b612ed9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106d7565b5081612aca565b612aca8383815115612ef55781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d79190613674565b73ffffffffffffffffffffffffffffffffffffffff8116811461163c575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612fbe57612fbe612f4a565b604052919050565b5f67ffffffffffffffff821115612fdf57612fdf612f4a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f83011261301a575f80fd5b813561302d61302882612fc6565b612f77565b818152846020838601011115613041575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215613071575f80fd5b853561307c81612f29565b9450602086013561308c81612f29565b935060408601359250606086013567ffffffffffffffff8111156130ae575f80fd5b6130ba8882890161300b565b95989497509295608001359392505050565b5f8083601f8401126130dc575f80fd5b50813567ffffffffffffffff8111156130f3575f80fd5b60208301915083602082850101111561310a575f80fd5b9250929050565b5f8060208385031215613122575f80fd5b823567ffffffffffffffff811115613138575f80fd5b613144858286016130cc565b90969095509350505050565b5f805f60608486031215613162575f80fd5b833561316d81612f29565b95602085013595506040909401359392505050565b5f8060408385031215613193575f80fd5b8235915060208301356131a581612f29565b809150509250929050565b5f805f805f805f60c0888a0312156131c6575f80fd5b87356131d181612f29565b965060208801356131e181612f29565b955060408801356131f181612f29565b9450606088013561320181612f29565b93506080880135925060a088013567ffffffffffffffff811115613223575f80fd5b61322f8a828b016130cc565b989b979a50959850939692959293505050565b5f8060408385031215613253575f80fd5b50508035926020909101359150565b5f805f60608486031215613274575f80fd5b833561327f81612f29565b9250602084013561328f81612f29565b9150604084013561329f81612f29565b809150509250925092565b5f602082840312156132ba575f80fd5b81356132c581612f29565b9392505050565b5f602082840312156132dc575f80fd5b5035919050565b5f805f80608085870312156132f6575f80fd5b843561330181612f29565b9350602085013561331181612f29565b93969395505050506040820135916060013590565b5f805f8060808587031215613339575f80fd5b843561334481612f29565b9350602085013561335481612f29565b9250604085013561336481612f29565b9150606085013561337481612f29565b939692955090935050565b5f6020828403121561338f575f80fd5b81516132c581612f29565b5f80858511156133a8575f80fd5b838611156133b4575f80fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156134015780818660040360031b1b83161692505b505092915050565b5f805f805f8060c0878903121561341e575f80fd5b863561342981612f29565b9550602087013561343981612f29565b9450604087013561344981612f29565b9350606087013561345981612f29565b92506080870135915060a087013567ffffffffffffffff81111561347b575f80fd5b61348789828a0161300b565b9150509295509295509295565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b8381101561351e578181015183820152602001613506565b50505f910152565b5f815180845261353d816020860160208601613504565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f73ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a08301526135bd60c0830184613526565b98975050505050505050565b5f602082840312156135d9575f80fd5b5051919050565b5f73ffffffffffffffffffffffffffffffffffffffff808816835286602084015260a0604084015261361560a0840187613526565b606084019590955292909216608090910152509392505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f6136636080830185613526565b905082606083015295945050505050565b602081525f610dd06020830184613526565b5f8060408385031215613697575f80fd5b82516136a281612f29565b602084015190925067ffffffffffffffff8111156136be575f80fd5b8301601f810185136136ce575f80fd5b80516136dc61302882612fc6565b8181528660208385010111156136f0575f80fd5b613701826020830160208601613504565b8093505050509250929050565b81810381811115610dd3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60208284031215613756575f80fd5b815180151581146132c5575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516137d0818460208701613504565b919091019291505056fea164736f6c6343000818000a" +var L1LidoGatewayDeployedBin = "0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063d547741f11610092578063f27ebced11610062578063f27ebced146105a8578063f2fde38b146105c7578063f887ea40146105e6578063fadcc54a14610612575f80fd5b8063d547741f1461052f578063e3b523e31461054e578063e8bac93b14610581578063f219fa6614610595575f80fd5b8063c01e1bd6116100cd578063c01e1bd61461049f578063c0c53b8b146104d2578063c676ad29146104f1578063ca15c87314610510575f80fd5b80639010d07c1461043957806391d1485414610458578063ac67e1af14610477578063ad960ce11461048b575f80fd5b80635e4c57a411610173578063797594b011610143578063797594b01461039d57806384bd13b0146103c95780638d7601c0146103dc5780638da5cb5b1461040f575f80fd5b80635e4c57a4146102f95780635ed2c2201461030d5780636f18bd2214610348578063715018a614610389575f80fd5b80632f2ff15d116101ae5780632f2ff15d1461020f5780633cb747bf1461022e57806356eff267146102845780635777bf50146102b7575f80fd5b80630aea8c26146101d457806314298c51146101e957806321425ee0146101fc575b5f80fd5b6101e76101e2366004613041565b610645565b005b6101e76101f73660046130f5565b610659565b6101e761020a366004613134565b610987565b34801561021a575f80fd5b506101e7610229366004613166565b6109c0565b348015610239575f80fd5b5060995461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561028f575f80fd5b5061025a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c2575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b604051901515815260200161027b565b348015610304575f80fd5b506101e76109d6565b348015610318575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102e9565b348015610353575f80fd5b5061037b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b60405190815260200161027b565b348015610394575f80fd5b506101e7610b08565b3480156103a8575f80fd5b5060975461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101e76103d7366004613194565b610b1b565b3480156103e7575f80fd5b5061037b7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b34801561041a575f80fd5b5060655473ffffffffffffffffffffffffffffffffffffffff1661025a565b348015610444575f80fd5b5061025a610453366004613226565b610d9a565b348015610463575f80fd5b506102e9610472366004613166565b610dd9565b348015610482575f80fd5b506101e7610e0f565b348015610496575f80fd5b506101e7610f3d565b3480156104aa575f80fd5b5061025a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104dd575f80fd5b506101e76104ec366004613246565b611070565b3480156104fc575f80fd5b5061025a61050b36600461328e565b611202565b34801561051b575f80fd5b5061037b61052a3660046132b0565b6112b1565b34801561053a575f80fd5b506101e7610549366004613166565b6112e6565b348015610559575f80fd5b5061037b7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b34801561058c575f80fd5b506101e76112f8565b6101e76105a33660046132c7565b611430565b3480156105b3575f80fd5b506101e76105c236600461330a565b61143c565b3480156105d2575f80fd5b506101e76105e136600461328e565b611588565b3480156105f1575f80fd5b5060985461025a9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561061d575f80fd5b5061037b7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b610652858585858561163f565b5050505050565b60995473ffffffffffffffffffffffffffffffffffffffff163381146106e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d9190613363565b73ffffffffffffffffffffffffffffffffffffffff16736f297c61b5c92ef107ffd30cd56affe5a273e84173ffffffffffffffffffffffffffffffffffffffff16146107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6f6e6c792063616c6c656420696e2064726f7020636f6e74657874000000000060448201526064016106d7565b6107fd611a69565b7f8431f5c10000000000000000000000000000000000000000000000000000000061082b60045f858761337e565b610834916133a5565b7fffffffff0000000000000000000000000000000000000000000000000000000016146108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f696e76616c69642073656c6563746f720000000000000000000000000000000060448201526064016106d7565b5f80806108cd856004818961337e565b8101906108da91906133ed565b5094505093505092506108ee838383611adc565b61090f73ffffffffffffffffffffffffffffffffffffffff84168383611b9a565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fdbdf8eb487847e4c0f22847f5dac07f2d3690f96f581a6ae4b102769917645a88360405161096e91815260200190565b60405180910390a350505061098260018055565b505050565b6109828333845f5b6040519080825280601f01601f1916602001820160405280156109b9576020820181803683370190505b508561163f565b6109c8611c74565b6109d28282611cf5565b5050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610a32576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a5c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610dd9565b610a92576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b610b10611c74565b610b195f611d78565b565b60995473ffffffffffffffffffffffffffffffffffffffff16338114610b9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064016106d7565b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a9190613363565b60975473ffffffffffffffffffffffffffffffffffffffff908116911614610c8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016106d7565b610c96611a69565b610ca588888888888888611dee565b610cc673ffffffffffffffffffffffffffffffffffffffff89168686611b9a565b610d058584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611f9d92505050565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fc6f985873b37805705f6bce756dce3d1ff4b603e298d506288cce499926846a788888888604051610d7f9493929190613478565b60405180910390a4610d9060018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd0908361204b565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd09083612056565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610e6a576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e947f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610dd9565b610eca576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610f9d576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fc77f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610dd9565b610ffd576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff161580801561108e57505f54600160ff909116105b806110a75750303b1580156110a757505f5460ff166001145b611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561118f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61119a848484612084565b80156111fc575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611289576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610dd39061222f565b6112ee611c74565b6109d28282612238565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611359576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113837f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610dd9565b6113b9576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b6111fc8484845f61098f565b5f54600290610100900460ff1615801561145c57505f5460ff8083169116105b6114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106d7565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611524858585856122bb565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611590611c74565b73ffffffffffffffffffffffffffffffffffffffff8116611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d7565b61163c81611d78565b50565b611647611a69565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116cd576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff811661171b576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16611776576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036117af576040517f14fc8bd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6117bb8887876124e0565b80519198509650909150156117fc576040517fb286dd6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0000000000000000000000000000000000000000000000000000000000000000905f9061183b908b90849086908d908d908d90602401613553565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8431f5c10000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f9373ffffffffffffffffffffffffffffffffffffffff9091169263ecc704289260048083019391928290030181865afa15801561191f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194391906135ad565b6099546097546040517f5f7b157700000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff91821692635f7b15779234926119aa929116905f9088908e908c906004016135c4565b5f604051808303818588803b1580156119c1575f80fd5b505af11580156119d3573d5f803e3d5ffd5b50505050508373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f1a6c38816de45937fd5cd974f9694fe10e64163ba12a92abf0f4b6b23ad886728d8d8d87604051611a529493929190613613565b60405180910390a450505050505061065260018055565b600260015403611ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106d7565b6002600155565b827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b62576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34156111fc576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109829084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612791565b60018055565b60655473ffffffffffffffffffffffffffffffffffffffff163314610b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d7565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611d2b908261289e565b156109d257604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e74576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611efa576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611f5a576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415611f92576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b5f8151118015611fc357505f8273ffffffffffffffffffffffffffffffffffffffff163b115b156109d2576040517f444b281f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063444b281f9061201a908490600401613658565b5f604051808303815f87803b158015612031575f80fd5b505af1158015612043573d5f803e3d5ffd5b505050505050565b5f610dd083836128bf565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610dd0565b73ffffffffffffffffffffffffffffffffffffffff8316612101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016106d7565b73ffffffffffffffffffffffffffffffffffffffff811661217e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016106d7565b6121866128e5565b61218e612983565b6097805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255609980548484169216919091179055821615610982576098805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610dd3825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed6020526040902061226e9082612a21565b156109d257604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16612351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001781556123f63390565b73ffffffffffffffffffffffffffffffffffffffff167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a26124627f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611cf5565b61248c7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611cf5565b6124b67f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611cf5565b6106527f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611cf5565b6098545f9081906060903390819073ffffffffffffffffffffffffffffffffffffffff168190036125ca578580602001905181019061251f919061366a565b6040517fc52a3bbc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80841660048301528b81166024830152604482018b905291985091925083169063c52a3bbc906064016020604051808303815f875af115801561259f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125c391906135ad565b965061271b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa158015612634573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061265891906135ad565b905061267c73ffffffffffffffffffffffffffffffffffffffff8a1683308b612a42565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa1580156126e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270a91906135ad565b905061271682826136f2565b985050505b5f8711612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6465706f736974207a65726f20616d6f756e740000000000000000000000000060448201526064016106d7565b9795965093949350505050565b5f6127f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612aa09092919063ffffffff16565b905080515f1480612812575080806020019051810190612812919061372a565b610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106d7565b5f610dd08373ffffffffffffffffffffffffffffffffffffffff8416612ab6565b5f825f0182815481106128d4576128d4613749565b905f5260205f200154905092915050565b5f54610100900460ff1661297b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b19612b02565b5f54610100900460ff16612a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b19612b98565b5f610dd08373ffffffffffffffffffffffffffffffffffffffff8416612c37565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526111fc9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611bec565b6060612aae84845f85612d1a565b949350505050565b5f818152600183016020526040812054612afb57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610dd3565b505f610dd3565b5f54610100900460ff16611c6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b5f54610100900460ff16612c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106d7565b610b1933611d78565b5f8181526001830160205260408120548015612d11575f612c596001836136f2565b85549091505f90612c6c906001906136f2565b9050818114612ccb575f865f018281548110612c8a57612c8a613749565b905f5260205f200154905080875f018481548110612caa57612caa613749565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612cdc57612cdc613776565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610dd3565b5f915050610dd3565b606082471015612dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106d7565b5f808673ffffffffffffffffffffffffffffffffffffffff168587604051612dd491906137a3565b5f6040518083038185875af1925050503d805f8114612e0e576040519150601f19603f3d011682016040523d82523d5f602084013e612e13565b606091505b5091509150612e2487838387612e2f565b979650505050505050565b60608315612ec45782515f03612ebd5773ffffffffffffffffffffffffffffffffffffffff85163b612ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106d7565b5081612aae565b612aae8383815115612ed95781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d79190613658565b73ffffffffffffffffffffffffffffffffffffffff8116811461163c575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612fa257612fa2612f2e565b604052919050565b5f67ffffffffffffffff821115612fc357612fc3612f2e565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112612ffe575f80fd5b813561301161300c82612faa565b612f5b565b818152846020838601011115613025575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215613055575f80fd5b853561306081612f0d565b9450602086013561307081612f0d565b935060408601359250606086013567ffffffffffffffff811115613092575f80fd5b61309e88828901612fef565b95989497509295608001359392505050565b5f8083601f8401126130c0575f80fd5b50813567ffffffffffffffff8111156130d7575f80fd5b6020830191508360208285010111156130ee575f80fd5b9250929050565b5f8060208385031215613106575f80fd5b823567ffffffffffffffff81111561311c575f80fd5b613128858286016130b0565b90969095509350505050565b5f805f60608486031215613146575f80fd5b833561315181612f0d565b95602085013595506040909401359392505050565b5f8060408385031215613177575f80fd5b82359150602083013561318981612f0d565b809150509250929050565b5f805f805f805f60c0888a0312156131aa575f80fd5b87356131b581612f0d565b965060208801356131c581612f0d565b955060408801356131d581612f0d565b945060608801356131e581612f0d565b93506080880135925060a088013567ffffffffffffffff811115613207575f80fd5b6132138a828b016130b0565b989b979a50959850939692959293505050565b5f8060408385031215613237575f80fd5b50508035926020909101359150565b5f805f60608486031215613258575f80fd5b833561326381612f0d565b9250602084013561327381612f0d565b9150604084013561328381612f0d565b809150509250925092565b5f6020828403121561329e575f80fd5b81356132a981612f0d565b9392505050565b5f602082840312156132c0575f80fd5b5035919050565b5f805f80608085870312156132da575f80fd5b84356132e581612f0d565b935060208501356132f581612f0d565b93969395505050506040820135916060013590565b5f805f806080858703121561331d575f80fd5b843561332881612f0d565b9350602085013561333881612f0d565b9250604085013561334881612f0d565b9150606085013561335881612f0d565b939692955090935050565b5f60208284031215613373575f80fd5b81516132a981612f0d565b5f808585111561338c575f80fd5b83861115613398575f80fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156133e55780818660040360031b1b83161692505b505092915050565b5f805f805f8060c08789031215613402575f80fd5b863561340d81612f0d565b9550602087013561341d81612f0d565b9450604087013561342d81612f0d565b9350606087013561343d81612f0d565b92506080870135915060a087013567ffffffffffffffff81111561345f575f80fd5b61346b89828a01612fef565b9150509295509295509295565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156135025781810151838201526020016134ea565b50505f910152565b5f81518084526135218160208601602086016134e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f73ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a08301526135a160c083018461350a565b98975050505050505050565b5f602082840312156135bd575f80fd5b5051919050565b5f73ffffffffffffffffffffffffffffffffffffffff808816835286602084015260a060408401526135f960a084018761350a565b606084019590955292909216608090910152509392505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f613647608083018561350a565b905082606083015295945050505050565b602081525f610dd0602083018461350a565b5f806040838503121561367b575f80fd5b825161368681612f0d565b602084015190925067ffffffffffffffff8111156136a2575f80fd5b8301601f810185136136b2575f80fd5b80516136c061300c82612faa565b8181528660208385010111156136d4575f80fd5b6136e58260208301602086016134e8565b8093505050509250929050565b81810381811115610dd3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561373a575f80fd5b815180151581146132a9575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82516137b48184602087016134e8565b919091019291505056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L1LidoGatewayStorageLayoutJSON), L1LidoGatewayStorageLayout); err != nil { diff --git a/bindings/bindings/l2lidogateway.go b/bindings/bindings/l2lidogateway.go index c89dfd68..9fe8b16d 100644 --- a/bindings/bindings/l2lidogateway.go +++ b/bindings/bindings/l2lidogateway.go @@ -31,8 +31,8 @@ var ( // L2LidoGatewayMetaData contains all meta data concerning the L2LidoGateway contract. var L2LidoGatewayMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorAccountIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNonZeroMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL1Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL2Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawAndCallIsNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"DepositsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"DepositsEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FinalizeDepositERC20\",\"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\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"WithdrawERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSITS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeDepositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"name\":\"getL1ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"}],\"name\":\"getL2ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_depositsDisabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsDisabler\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isWithdrawalsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20AndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", - Bin: "0x60c060405234801562000010575f80fd5b50604051620029a6380380620029a68339810160408190526200003391620001dc565b6001600160a01b03808316608081905290821660a0526200009b5760405162461bcd60e51b815260206004820152601460248201527f7a65726f206c31746f6b656e206164647265737300000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038116620000f35760405162461bcd60e51b815260206004820152601460248201527f7a65726f206c32546f6b656e2061646472657373000000000000000000000000604482015260640162000092565b620000fd62000105565b505062000212565b5f54610100900460ff16156200016e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000092565b5f5460ff90811614620001be575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001d7575f80fd5b919050565b5f8060408385031215620001ee575f80fd5b620001f983620001c0565b91506200020960208401620001c0565b90509250929050565b60805160a051612733620002735f395f81816102610152818161062a01528181610a1d01528181611077015261147e01525f818161049b01528181610696015281816109b10152818161100b015281816116a1015261187101526127335ff3fe6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced14610580578063f2fde38b1461059f578063f887ea40146105be578063fadcc54a146105dd575f80fd5b8063ca15c873146104fb578063d547741f1461051a578063e3b523e314610539578063e8bac93b1461056c575f80fd5b8063ad960ce1116100cd578063ad960ce114610476578063c01e1bd61461048a578063c0c53b8b146104bd578063c676ad29146104dc575f80fd5b80639010d07c1461041157806391d1485414610430578063a93a4af91461044f578063ac67e1af14610462575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b01461038f5780638431f5c1146103ae5780638d7601c0146103c15780638da5cb5b146103f4575f80fd5b80635ed2c220146102ec5780636c07ea43146103275780636f18bd221461033a578063715018a61461037b575f80fd5b806356eff267116101ae57806356eff26714610250578063575361b6146102835780635777bf50146102965780635e4c57a4146102d8575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c14610231575b5f80fd5b3480156101df575f80fd5b506101f36101ee36600461211c565b610610565b005b348015610200575f80fd5b50609954610214906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023c575f80fd5b5061021461024b36600461214a565b610626565b34801561025b575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b6101f36102913660046121b1565b6106bb565b3480156102a1575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610228565b3480156102e3575f80fd5b506101f3610706565b3480156102f7575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102c8565b6101f3610335366004612227565b610838565b348015610345575f80fd5b5061036d7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610228565b348015610386575f80fd5b506101f3610876565b34801561039a575f80fd5b50609754610214906001600160a01b031681565b6101f36103bc366004612259565b610889565b3480156103cc575f80fd5b5061036d7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103ff575f80fd5b506065546001600160a01b0316610214565b34801561041c575f80fd5b5061021461042b3660046122eb565b610bff565b34801561043b575f80fd5b506102c861044a36600461211c565b610c3e565b6101f361045d36600461230b565b610c74565b34801561046d575f80fd5b506101f3610c86565b348015610481575f80fd5b506101f3610db4565b348015610495575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c8575f80fd5b506101f36104d736600461234e565b610eca565b3480156104e7575f80fd5b506102146104f636600461214a565b611007565b348015610506575f80fd5b5061036d610515366004612396565b61109c565b348015610525575f80fd5b506101f361053436600461211c565b6110d1565b348015610544575f80fd5b5061036d7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610577575f80fd5b506101f36110e3565b34801561058b575f80fd5b506101f361059a3660046123ad565b6111fe565b3480156105aa575f80fd5b506101f36105b936600461214a565b611313565b3480156105c9575f80fd5b50609854610214906001600160a01b031681565b3480156105e8575f80fd5b5061036d7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106186113a3565b61062282826113fd565b5050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610693576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b6106fe86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250611473915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610762576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61078c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c3e565b6107c2576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108718333845f5b6040519080825280601f01601f19166020018201604052801561086a576020820181803683370190505b5085611473565b505050565b61087e6113a3565b6108875f6118eb565b565b6099546001600160a01b03163381146108e95760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190612433565b6097546001600160a01b039081169116146109a65760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016108e0565b6109ae611954565b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a1a576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a86576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ae1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610b19576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610b79575f80fd5b505af1158015610b8b573d5f803e3d5ffd5b50505050876001600160a01b0316896001600160a01b03168b6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610be2949392919061244e565b60405180910390a45050610bf560018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119b3565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119be565b610c808484845f610840565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ce1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c3e565b610d41576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e14576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c3e565b610e74576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ee857505f54600160ff909116105b80610f015750303b158015610f0157505f5460ff166001145b610f735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fb2575f805461ff0019166101001790555b610fbd8484846119df565b8015610c80575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611074576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3890611b22565b6110d96113a3565b6106228282611b2b565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611144576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116e7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c3e565b6111a4576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff1615801561121e57505f5460ff8083169116105b6112905760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112cc85858585611ba1565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61131b6113a3565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e0565b6113a0816118eb565b50565b6065546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e0565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206114339082611d82565b156106225760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b61147b611954565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114e7576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611528576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611588576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036115c1576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60985433906001600160a01b03168190036115ef57848060200190518101906115ea91906124d3565b955090505b845115611628576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b505050505f7f000000000000000000000000000000000000000000000000000000000000000089838a8a8a6040516024016116da969594939291906125f8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa1580156117b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d59190612645565b6099546097546040517fb2267a7b0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263b2267a7b92349261182d929116905f9088908d9060040161265c565b5f604051808303818588803b158015611844575f80fd5b505af1158015611856573d5f803e3d5ffd5b5050505050826001600160a01b03168a6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48c8c8c876040516118ce949392919061265c565b60405180910390a450505050506118e460018055565b5050505050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6002600154036119a65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108e0565b6002600155565b60018055565b5f610c358383611d96565b6001600160a01b0381165f9081526001830160205260408120541515610c35565b6001600160a01b038316611a355760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016108e0565b6001600160a01b038116611a8b5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016108e0565b611a93611dbc565b611a9b611e40565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561087157609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c38825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611b619082611ec4565b156106225760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611c1d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611ca53390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611d047f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a866113fd565b611d2e7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6856113fd565b611d587f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d846113fd565b6118e47f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c836113fd565b5f610c35836001600160a01b038416611ed8565b5f825f018281548110611dab57611dab612694565b905f5260205f200154905092915050565b5f54610100900460ff16611e385760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f24565b5f54610100900460ff16611ebc5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611fa0565b5f610c35836001600160a01b038416612025565b5f818152600183016020526040812054611f1d57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c38565b505f610c38565b5f54610100900460ff166119ad5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b5f54610100900460ff1661201c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887336118eb565b5f81815260018301602052604081205480156120ff575f6120476001836126c1565b85549091505f9061205a906001906126c1565b90508181146120b9575f865f01828154811061207857612078612694565b905f5260205f200154905080875f01848154811061209857612098612694565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806120ca576120ca6126f9565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c38565b5f915050610c38565b6001600160a01b03811681146113a0575f80fd5b5f806040838503121561212d575f80fd5b82359150602083013561213f81612108565b809150509250929050565b5f6020828403121561215a575f80fd5b813561216581612108565b9392505050565b5f8083601f84011261217c575f80fd5b50813567ffffffffffffffff811115612193575f80fd5b6020830191508360208285010111156121aa575f80fd5b9250929050565b5f805f805f8060a087890312156121c6575f80fd5b86356121d181612108565b955060208701356121e181612108565b945060408701359350606087013567ffffffffffffffff811115612203575f80fd5b61220f89828a0161216c565b979a9699509497949695608090950135949350505050565b5f805f60608486031215612239575f80fd5b833561224481612108565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a03121561226f575f80fd5b873561227a81612108565b9650602088013561228a81612108565b9550604088013561229a81612108565b945060608801356122aa81612108565b93506080880135925060a088013567ffffffffffffffff8111156122cc575f80fd5b6122d88a828b0161216c565b989b979a50959850939692959293505050565b5f80604083850312156122fc575f80fd5b50508035926020909101359150565b5f805f806080858703121561231e575f80fd5b843561232981612108565b9350602085013561233981612108565b93969395505050506040820135916060013590565b5f805f60608486031215612360575f80fd5b833561236b81612108565b9250602084013561237b81612108565b9150604084013561238b81612108565b809150509250925092565b5f602082840312156123a6575f80fd5b5035919050565b5f805f80608085870312156123c0575f80fd5b84356123cb81612108565b935060208501356123db81612108565b925060408501356123eb81612108565b915060608501356123fb81612108565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612443575f80fd5b815161216581612108565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156124cb5781810151838201526020016124b3565b50505f910152565b5f80604083850312156124e4575f80fd5b82516124ef81612108565b602084015190925067ffffffffffffffff8082111561250c575f80fd5b818501915085601f83011261251f575f80fd5b81518181111561253157612531612406565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561257757612577612406565b8160405282815288602084870101111561258f575f80fd5b6125a08360208301602088016124b1565b80955050505050509250929050565b5f81518084526125c68160208601602086016124b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261263960c08301846125af565b98975050505050505050565b5f60208284031215612655575f80fd5b5051919050565b6001600160a01b0385168152836020820152608060408201525f61268360808301856125af565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610c38577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorAccountIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotDepositsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsDisabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorCallerIsNotWithdrawalsEnabler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorDepositsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorNonZeroMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL1Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorUnsupportedL2Token\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorWithdrawalsEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawAndCallIsNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"DepositsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"DepositsEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FinalizeDepositERC20\",\"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\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l1Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"WithdrawERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"enabler\",\"type\":\"address\"}],\"name\":\"WithdrawalsEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSITS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_DISABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWALS_ENABLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableDeposits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeDepositERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l2Token\",\"type\":\"address\"}],\"name\":\"getL1ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Token\",\"type\":\"address\"}],\"name\":\"getL2ERC20Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_depositsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_depositsDisabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsEnabler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_withdrawalsDisabler\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isWithdrawalsEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20AndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", + Bin: "0x60c060405234801562000010575f80fd5b506040516200290f3803806200290f833981016040819052620000339162000168565b6001600160a01b03808316608081905290821660a05215806200005d57506001600160a01b038116155b156200007c5760405163a7f9319d60e01b815260040160405180910390fd5b620000866200008e565b50506200019e565b5f54610100900460ff1615620000fa5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200014a575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811462000163575f80fd5b919050565b5f80604083850312156200017a575f80fd5b62000185836200014c565b915062000195602084016200014c565b90509250929050565b60805160a051612717620001f85f395f81816102610152818161062a01528181610a1d01528181611077015261147e01525f818161049b01528181610696015281816109b10152818161100b01526116a101526127175ff3fe6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced14610580578063f2fde38b1461059f578063f887ea40146105be578063fadcc54a146105dd575f80fd5b8063ca15c873146104fb578063d547741f1461051a578063e3b523e314610539578063e8bac93b1461056c575f80fd5b8063ad960ce1116100cd578063ad960ce114610476578063c01e1bd61461048a578063c0c53b8b146104bd578063c676ad29146104dc575f80fd5b80639010d07c1461041157806391d1485414610430578063a93a4af91461044f578063ac67e1af14610462575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b01461038f5780638431f5c1146103ae5780638d7601c0146103c15780638da5cb5b146103f4575f80fd5b80635ed2c220146102ec5780636c07ea43146103275780636f18bd221461033a578063715018a61461037b575f80fd5b806356eff267116101ae57806356eff26714610250578063575361b6146102835780635777bf50146102965780635e4c57a4146102d8575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c14610231575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004612100565b610610565b005b348015610200575f80fd5b50609954610214906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023c575f80fd5b5061021461024b36600461212e565b610626565b34801561025b575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b6101f3610291366004612195565b6106bb565b3480156102a1575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610228565b3480156102e3575f80fd5b506101f3610706565b3480156102f7575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102c8565b6101f361033536600461220b565b610838565b348015610345575f80fd5b5061036d7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610228565b348015610386575f80fd5b506101f3610876565b34801561039a575f80fd5b50609754610214906001600160a01b031681565b6101f36103bc36600461223d565b610889565b3480156103cc575f80fd5b5061036d7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b3480156103ff575f80fd5b506065546001600160a01b0316610214565b34801561041c575f80fd5b5061021461042b3660046122cf565b610bff565b34801561043b575f80fd5b506102c861044a366004612100565b610c3e565b6101f361045d3660046122ef565b610c74565b34801561046d575f80fd5b506101f3610c86565b348015610481575f80fd5b506101f3610db4565b348015610495575f80fd5b506102147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c8575f80fd5b506101f36104d7366004612332565b610eca565b3480156104e7575f80fd5b506102146104f636600461212e565b611007565b348015610506575f80fd5b5061036d61051536600461237a565b61109c565b348015610525575f80fd5b506101f3610534366004612100565b6110d1565b348015610544575f80fd5b5061036d7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b348015610577575f80fd5b506101f36110e3565b34801561058b575f80fd5b506101f361059a366004612391565b6111fe565b3480156105aa575f80fd5b506101f36105b936600461212e565b611313565b3480156105c9575f80fd5b50609854610214906001600160a01b031681565b3480156105e8575f80fd5b5061036d7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106186113a3565b61062282826113fd565b5050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610693576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b6106fe86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250611473915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff1615610762576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61078c7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610c3e565b6107c2576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108718333845f5b6040519080825280601f01601f19166020018201604052801561086a576020820181803683370190505b5085611473565b505050565b61087e6113a3565b6108875f6118cf565b565b6099546001600160a01b03163381146108e95760405162461bcd60e51b815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b806001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190612417565b6097546001600160a01b039081169116146109a65760405162461bcd60e51b815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e74657270617274000000000000000060448201526064016108e0565b6109ae611938565b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a1a576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610a86576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ae1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610b19576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610b79575f80fd5b505af1158015610b8b573d5f803e3d5ffd5b50505050876001600160a01b0316896001600160a01b03168b6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610be29493929190612432565b60405180910390a45050610bf560018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c359083611997565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3590836119a2565b610c808484845f610840565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610ce1576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610c3e565b610d41576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610e14576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610c3e565b610e74576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff001916905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff1615808015610ee857505f54600160ff909116105b80610f015750303b158015610f0157505f5460ff166001145b610f735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fb2575f805461ff0019166101001790555b610fbd8484846119c3565b8015610c80575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614611074576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610c3890611b06565b6110d96113a3565b6106228282611b0f565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff1615611144576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116e7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610c3e565b6111a4576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec805461ff00191661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff1615801561121e57505f5460ff8083169116105b6112905760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108e0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556112cc85858585611b85565b5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b61131b6113a3565b6001600160a01b0381166113975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e0565b6113a0816118cf565b50565b6065546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e0565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed602052604090206114339082611d66565b156106225760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b61147b611938565b847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114e7576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600160a01b038116611528576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611588576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036115c1576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60985433906001600160a01b03168190036115ef57848060200190518101906115ea91906124b7565b955090505b845115611628576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081526001600160a01b03828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611688575f80fd5b505af115801561169a573d5f803e3d5ffd5b50506040517f000000000000000000000000000000000000000000000000000000000000000092505f91506116dd9083908c9086908d908d908d906024016125dc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f936001600160a01b039091169263ecc704289260048083019391928290030181865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d89190612629565b6099546097546040517fb2267a7b0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263b2267a7b923492611830929116905f9088908e90600401612640565b5f604051808303818588803b158015611847575f80fd5b505af1158015611859573d5f803e3d5ffd5b5050505050836001600160a01b03168b6001600160a01b0316846001600160a01b03167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48d8d8d876040516118b19493929190612640565b60405180910390a45050505050506118c860018055565b5050505050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60026001540361198a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108e0565b6002600155565b60018055565b5f610c358383611d7a565b6001600160a01b0381165f9081526001830160205260408120541515610c35565b6001600160a01b038316611a195760405162461bcd60e51b815260206004820152601860248201527f7a65726f20636f756e746572706172742061646472657373000000000000000060448201526064016108e0565b6001600160a01b038116611a6f5760405162461bcd60e51b815260206004820152601660248201527f7a65726f206d657373656e67657220616464726573730000000000000000000060448201526064016108e0565b611a77611da0565b611a7f611e24565b609780546001600160a01b038086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560998054848416921691909117905582161561087157609880546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610c38825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611b459082611ea8565b156106225760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611c015760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2805461ff001916610100178155611c893390565b6001600160a01b03167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a2611ce87f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a866113fd565b611d127f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d6856113fd565b611d3c7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d846113fd565b6118c87f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c836113fd565b5f610c35836001600160a01b038416611ebc565b5f825f018281548110611d8f57611d8f612678565b905f5260205f200154905092915050565b5f54610100900460ff16611e1c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f08565b5f54610100900460ff16611ea05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887611f84565b5f610c35836001600160a01b038416612009565b5f818152600183016020526040812054611f0157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610c38565b505f610c38565b5f54610100900460ff166119915760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b5f54610100900460ff166120005760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108e0565b610887336118cf565b5f81815260018301602052604081205480156120e3575f61202b6001836126a5565b85549091505f9061203e906001906126a5565b905081811461209d575f865f01828154811061205c5761205c612678565b905f5260205f200154905080875f01848154811061207c5761207c612678565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806120ae576120ae6126dd565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610c38565b5f915050610c38565b6001600160a01b03811681146113a0575f80fd5b5f8060408385031215612111575f80fd5b823591506020830135612123816120ec565b809150509250929050565b5f6020828403121561213e575f80fd5b8135612149816120ec565b9392505050565b5f8083601f840112612160575f80fd5b50813567ffffffffffffffff811115612177575f80fd5b60208301915083602082850101111561218e575f80fd5b9250929050565b5f805f805f8060a087890312156121aa575f80fd5b86356121b5816120ec565b955060208701356121c5816120ec565b945060408701359350606087013567ffffffffffffffff8111156121e7575f80fd5b6121f389828a01612150565b979a9699509497949695608090950135949350505050565b5f805f6060848603121561221d575f80fd5b8335612228816120ec565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a031215612253575f80fd5b873561225e816120ec565b9650602088013561226e816120ec565b9550604088013561227e816120ec565b9450606088013561228e816120ec565b93506080880135925060a088013567ffffffffffffffff8111156122b0575f80fd5b6122bc8a828b01612150565b989b979a50959850939692959293505050565b5f80604083850312156122e0575f80fd5b50508035926020909101359150565b5f805f8060808587031215612302575f80fd5b843561230d816120ec565b9350602085013561231d816120ec565b93969395505050506040820135916060013590565b5f805f60608486031215612344575f80fd5b833561234f816120ec565b9250602084013561235f816120ec565b9150604084013561236f816120ec565b809150509250925092565b5f6020828403121561238a575f80fd5b5035919050565b5f805f80608085870312156123a4575f80fd5b84356123af816120ec565b935060208501356123bf816120ec565b925060408501356123cf816120ec565b915060608501356123df816120ec565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612427575f80fd5b8151612149816120ec565b6001600160a01b038516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156124af578181015183820152602001612497565b50505f910152565b5f80604083850312156124c8575f80fd5b82516124d3816120ec565b602084015190925067ffffffffffffffff808211156124f0575f80fd5b818501915085601f830112612503575f80fd5b815181811115612515576125156123ea565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561255b5761255b6123ea565b81604052828152886020848701011115612573575f80fd5b612584836020830160208801612495565b80955050505050509250929050565b5f81518084526125aa816020860160208601612495565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f6001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261261d60c0830184612593565b98975050505050505050565b5f60208284031215612639575f80fd5b5051919050565b6001600160a01b0385168152836020820152608060408201525f6126676080830185612593565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610c38577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a", } // L2LidoGatewayABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l2lidogateway_more.go b/bindings/bindings/l2lidogateway_more.go index c2ff786e..b3336bd0 100644 --- a/bindings/bindings/l2lidogateway_more.go +++ b/bindings/bindings/l2lidogateway_more.go @@ -13,7 +13,7 @@ const L2LidoGatewayStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract var L2LidoGatewayStorageLayout = new(solc.StorageLayout) -var L2LidoGatewayDeployedBin = "0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced146105b4578063f2fde38b146105d3578063f887ea40146105f2578063fadcc54a1461061e575f80fd5b8063ca15c8731461052f578063d547741f1461054e578063e3b523e31461056d578063e8bac93b146105a0575f80fd5b8063ad960ce1116100cd578063ad960ce1146104aa578063c01e1bd6146104be578063c0c53b8b146104f1578063c676ad2914610510575f80fd5b80639010d07c1461044557806391d1485414610464578063a93a4af914610483578063ac67e1af14610496575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b0146103a95780638431f5c1146103d55780638d7601c0146103e85780638da5cb5b1461041b575f80fd5b80635ed2c220146103065780636c07ea43146103415780636f18bd2214610354578063715018a614610395575f80fd5b806356eff267116101ae57806356eff2671461026a578063575361b61461029d5780635777bf50146102b05780635e4c57a4146102f2575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c1461024b575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004612572565b610651565b005b348015610200575f80fd5b506099546102219073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610256575f80fd5b506102216102653660046125a0565b610667565b348015610275575f80fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b6101f36102ab366004612607565b610716565b3480156102bb575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610242565b3480156102fd575f80fd5b506101f3610761565b348015610311575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102e2565b6101f361034f36600461267d565b610893565b34801561035f575f80fd5b506103877f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610242565b3480156103a0575f80fd5b506101f36108d1565b3480156103b4575f80fd5b506097546102219073ffffffffffffffffffffffffffffffffffffffff1681565b6101f36103e33660046126af565b6108e4565b3480156103f3575f80fd5b506103877f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b348015610426575f80fd5b5060655473ffffffffffffffffffffffffffffffffffffffff16610221565b348015610450575f80fd5b5061022161045f366004612741565b610d1d565b34801561046f575f80fd5b506102e261047e366004612572565b610d5c565b6101f3610491366004612761565b610d92565b3480156104a1575f80fd5b506101f3610da4565b3480156104b5575f80fd5b506101f3610ed2565b3480156104c9575f80fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b3480156104fc575f80fd5b506101f361050b3660046127a4565b611005565b34801561051b575f80fd5b5061022161052a3660046125a0565b611196565b34801561053a575f80fd5b506103876105493660046127ec565b611245565b348015610559575f80fd5b506101f3610568366004612572565b61127a565b348015610578575f80fd5b506103877f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b3480156105ab575f80fd5b506101f361128c565b3480156105bf575f80fd5b506101f36105ce366004612803565b6113c4565b3480156105de575f80fd5b506101f36105ed3660046125a0565b611510565b3480156105fd575f80fd5b506098546102219073ffffffffffffffffffffffffffffffffffffffff1681565b348015610629575f80fd5b506103877f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106596115c7565b6106638282611648565b5050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ee576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b61075986868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892506116cb915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16156107bd576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107e77f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610d5c565b61081d576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108cc8333845f5b6040519080825280601f01601f1916602001820160405280156108c5576020820181803683370190505b50856116cb565b505050565b6108d96115c7565b6108e25f611bc5565b565b60995473ffffffffffffffffffffffffffffffffffffffff1633811461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d89190612889565b60975473ffffffffffffffffffffffffffffffffffffffff908116911614610a5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e7465727061727400000000000000006044820152606401610962565b610a64611c3b565b877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aea576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b70576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610bcb576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610c03576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610c70575f80fd5b505af1158015610c82573d5f803e3d5ffd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610d0094939291906128a4565b60405180910390a45050610d1360018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d539083611cb4565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d539083611cbf565b610d9e8484845f61089b565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610dff576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e297f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610d5c565b610e5f576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610f32576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f5c7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610d5c565b610f92576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff161580801561102357505f54600160ff909116105b8061103c5750303b15801561103c57505f5460ff166001145b6110c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610962565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611124575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61112f848484611ced565b8015610d9e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461121d576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d5690611e98565b6112826115c7565b6106638282611ea1565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16156112ed576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113177f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610d5c565b61134d576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff161580156113e457505f5460ff8083169116105b611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610962565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556114ac85858585611f24565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6115186115c7565b73ffffffffffffffffffffffffffffffffffffffff81166115bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610962565b6115c481611bc5565b50565b60655473ffffffffffffffffffffffffffffffffffffffff1633146108e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610962565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed6020526040902061167e9082612149565b1561066357604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b6116d3611c3b565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611759576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff81166117a7576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611807576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611840576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609854339073ffffffffffffffffffffffffffffffffffffffff1681900361187b57848060200190518101906118769190612936565b955090505b8451156118b4576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611921575f80fd5b505af1158015611933573d5f803e3d5ffd5b505050505f7f000000000000000000000000000000000000000000000000000000000000000089838a8a8a60405160240161197396959493929190612a5b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f9373ffffffffffffffffffffffffffffffffffffffff9091169263ecc704289260048083019391928290030181865afa158015611a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7b9190612ab5565b6099546097546040517fb2267a7b00000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff9182169263b2267a7b923492611ae0929116905f9088908d90600401612acc565b5f604051808303818588803b158015611af7575f80fd5b505af1158015611b09573d5f803e3d5ffd5b50505050508273ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48c8c8c87604051611ba89493929190612acc565b60405180910390a45050505050611bbe60018055565b5050505050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600260015403611ca7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610962565b6002600155565b60018055565b5f610d53838361216a565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610d53565b73ffffffffffffffffffffffffffffffffffffffff8316611d6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7a65726f20636f756e74657270617274206164647265737300000000000000006044820152606401610962565b73ffffffffffffffffffffffffffffffffffffffff8116611de7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7a65726f206d657373656e6765722061646472657373000000000000000000006044820152606401610962565b611def612190565b611df761222e565b6097805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556099805484841692169190911790558216156108cc576098805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610d56825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611ed790826122cc565b1561066357604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017815561205f3390565b73ffffffffffffffffffffffffffffffffffffffff167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a26120cb7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611648565b6120f57f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611648565b61211f7f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611648565b611bbe7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611648565b5f610d538373ffffffffffffffffffffffffffffffffffffffff84166122ed565b5f825f01828154811061217f5761217f612b11565b905f5260205f200154905092915050565b5f54610100900460ff16612226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e2612339565b5f54610100900460ff166122c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e26123cf565b5f610d538373ffffffffffffffffffffffffffffffffffffffff841661246e565b5f81815260018301602052604081205461233257508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610d56565b505f610d56565b5f54610100900460ff16611cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b5f54610100900460ff16612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e233611bc5565b5f8181526001830160205260408120548015612548575f612490600183612b3e565b85549091505f906124a390600190612b3e565b9050818114612502575f865f0182815481106124c1576124c1612b11565b905f5260205f200154905080875f0184815481106124e1576124e1612b11565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061251357612513612b76565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610d56565b5f915050610d56565b73ffffffffffffffffffffffffffffffffffffffff811681146115c4575f80fd5b5f8060408385031215612583575f80fd5b82359150602083013561259581612551565b809150509250929050565b5f602082840312156125b0575f80fd5b81356125bb81612551565b9392505050565b5f8083601f8401126125d2575f80fd5b50813567ffffffffffffffff8111156125e9575f80fd5b602083019150836020828501011115612600575f80fd5b9250929050565b5f805f805f8060a0878903121561261c575f80fd5b863561262781612551565b9550602087013561263781612551565b945060408701359350606087013567ffffffffffffffff811115612659575f80fd5b61266589828a016125c2565b979a9699509497949695608090950135949350505050565b5f805f6060848603121561268f575f80fd5b833561269a81612551565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a0312156126c5575f80fd5b87356126d081612551565b965060208801356126e081612551565b955060408801356126f081612551565b9450606088013561270081612551565b93506080880135925060a088013567ffffffffffffffff811115612722575f80fd5b61272e8a828b016125c2565b989b979a50959850939692959293505050565b5f8060408385031215612752575f80fd5b50508035926020909101359150565b5f805f8060808587031215612774575f80fd5b843561277f81612551565b9350602085013561278f81612551565b93969395505050506040820135916060013590565b5f805f606084860312156127b6575f80fd5b83356127c181612551565b925060208401356127d181612551565b915060408401356127e181612551565b809150509250925092565b5f602082840312156127fc575f80fd5b5035919050565b5f805f8060808587031215612816575f80fd5b843561282181612551565b9350602085013561283181612551565b9250604085013561284181612551565b9150606085013561285181612551565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215612899575f80fd5b81516125bb81612551565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b8381101561292e578181015183820152602001612916565b50505f910152565b5f8060408385031215612947575f80fd5b825161295281612551565b602084015190925067ffffffffffffffff8082111561296f575f80fd5b818501915085601f830112612982575f80fd5b8151818111156129945761299461285c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156129da576129da61285c565b816040528281528860208487010111156129f2575f80fd5b612a03836020830160208801612914565b80955050505050509250929050565b5f8151808452612a29816020860160208601612914565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f73ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612aa960c0830184612a12565b98975050505050505050565b5f60208284031215612ac5575f80fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f612b006080830185612a12565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610d56577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" +var L2LidoGatewayDeployedBin = "0x6080604052600436106101d0575f3560e01c80639010d07c116100fd578063ca15c87311610092578063f27ebced11610062578063f27ebced146105b4578063f2fde38b146105d3578063f887ea40146105f2578063fadcc54a1461061e575f80fd5b8063ca15c8731461052f578063d547741f1461054e578063e3b523e31461056d578063e8bac93b146105a0575f80fd5b8063ad960ce1116100cd578063ad960ce1146104aa578063c01e1bd6146104be578063c0c53b8b146104f1578063c676ad2914610510575f80fd5b80639010d07c1461044557806391d1485414610464578063a93a4af914610483578063ac67e1af14610496575f80fd5b80635ed2c22011610173578063797594b011610143578063797594b0146103a95780638431f5c1146103d55780638d7601c0146103e85780638da5cb5b1461041b575f80fd5b80635ed2c220146103065780636c07ea43146103415780636f18bd2214610354578063715018a614610395575f80fd5b806356eff267116101ae57806356eff2671461026a578063575361b61461029d5780635777bf50146102b05780635e4c57a4146102f2575f80fd5b80632f2ff15d146101d45780633cb747bf146101f557806354bbd59c1461024b575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004612556565b610651565b005b348015610200575f80fd5b506099546102219073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610256575f80fd5b50610221610265366004612584565b610667565b348015610275575f80fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b6101f36102ab3660046125eb565b610716565b3480156102bb575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff165b6040519015158152602001610242565b3480156102fd575f80fd5b506101f3610761565b348015610311575f80fd5b507fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff166102e2565b6101f361034f366004612661565b610893565b34801561035f575f80fd5b506103877f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d681565b604051908152602001610242565b3480156103a0575f80fd5b506101f36108d1565b3480156103b4575f80fd5b506097546102219073ffffffffffffffffffffffffffffffffffffffff1681565b6101f36103e3366004612693565b6108e4565b3480156103f3575f80fd5b506103877f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c81565b348015610426575f80fd5b5060655473ffffffffffffffffffffffffffffffffffffffff16610221565b348015610450575f80fd5b5061022161045f366004612725565b610d1d565b34801561046f575f80fd5b506102e261047e366004612556565b610d5c565b6101f3610491366004612745565b610d92565b3480156104a1575f80fd5b506101f3610da4565b3480156104b5575f80fd5b506101f3610ed2565b3480156104c9575f80fd5b506102217f000000000000000000000000000000000000000000000000000000000000000081565b3480156104fc575f80fd5b506101f361050b366004612788565b611005565b34801561051b575f80fd5b5061022161052a366004612584565b611196565b34801561053a575f80fd5b506103876105493660046127d0565b611245565b348015610559575f80fd5b506101f3610568366004612556565b61127a565b348015610578575f80fd5b506103877f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d81565b3480156105ab575f80fd5b506101f361128c565b3480156105bf575f80fd5b506101f36105ce3660046127e7565b6113c4565b3480156105de575f80fd5b506101f36105ed366004612584565b611510565b3480156105fd575f80fd5b506098546102219073ffffffffffffffffffffffffffffffffffffffff1681565b348015610629575f80fd5b506103877f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a81565b6106596115c7565b6106638282611648565b5050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ee576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b61075986868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892506116cb915050565b505050505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16156107bd576040517f4f2c8be200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107e77f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a33610d5c565b61081d576040517f3d39c5f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a2565b6108cc8333845f5b6040519080825280601f01601f1916602001820160405280156108c5576020820181803683370190505b50856116cb565b505050565b6108d96115c7565b6108e25f611ba9565b565b60995473ffffffffffffffffffffffffffffffffffffffff1633811461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c79206d657373656e6765722063616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d8919061286d565b60975473ffffffffffffffffffffffffffffffffffffffff908116911614610a5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792063616c6c20627920636f756e7465727061727400000000000000006044820152606401610962565b610a64611c1f565b877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aea576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b877f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b70576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610bcb576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610c03576040517f3ddcf11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018890528a16906340c10f19906044015f604051808303815f87803b158015610c70575f80fd5b505af1158015610c82573d5f803e3d5ffd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348a8a8a8a604051610d009493929190612888565b60405180910390a45050610d1360018055565b5050505050505050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d539083611c98565b90505b92915050565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d539083611ca3565b610d9e8484845f61089b565b50505050565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec5460ff16610dff576040517fa185a6b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e297f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d633610d5c565b610e5f576040517fadd9524c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405133907f9ca4d309bbfd23c65db3dc38c1712862f5812c7139937e2655de86e803f73bb9905f90a2565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16610f32576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f5c7f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c33610d5c565b610f92576040517f9e60ca7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405133907f644eeba8ede48fefc32ada09fb240c5f6c0f06507ab1d296d5af41f1521d9fcb905f90a2565b5f54610100900460ff161580801561102357505f54600160ff909116105b8061103c5750303b15801561103c57505f5460ff166001145b6110c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610962565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611124575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61112f848484611cd1565b8015610d9e575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b5f817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461121d576040517ffe15603f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000092915050565b5f8181527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260408120610d5690611e7c565b6112826115c7565b6106638282611e85565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16156112ed576040517ff74ad25400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113177f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d33610d5c565b61134d576040517f5c16894300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905560405133907fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d3204905f90a2565b5f54600290610100900460ff161580156113e457505f5460ff8083169116105b611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610962565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316176101001790556114ac85858585611f08565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6115186115c7565b73ffffffffffffffffffffffffffffffffffffffff81166115bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610962565b6115c481611ba9565b50565b60655473ffffffffffffffffffffffffffffffffffffffff1633146108e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610962565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed6020526040902061167e908261212d565b1561066357604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45050565b6116d3611c1f565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611759576040517f6251ce6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff81166117a7576040517fef6b416200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec54610100900460ff16611807576040517f77d195b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f03611840576040517f6c18829600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609854339073ffffffffffffffffffffffffffffffffffffffff1681900361187b5784806020019051810190611876919061291a565b955090505b8451156118b4576040517f998bcee200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260248201889052891690639dc29fac906044015f604051808303815f87803b158015611921575f80fd5b505af1158015611933573d5f803e3d5ffd5b50506040517f000000000000000000000000000000000000000000000000000000000000000092505f91506119769083908c9086908d908d908d90602401612a3f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84bd13b00000000000000000000000000000000000000000000000000000000017905260995482517fecc7042800000000000000000000000000000000000000000000000000000000815292519394505f9373ffffffffffffffffffffffffffffffffffffffff9091169263ecc704289260048083019391928290030181865afa158015611a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7e9190612a99565b6099546097546040517fb2267a7b00000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff9182169263b2267a7b923492611ae3929116905f9088908e90600401612ab0565b5f604051808303818588803b158015611afa575f80fd5b505af1158015611b0c573d5f803e3d5ffd5b50505050508373ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fa9967b740f3fc69dfbf4744b4b1c7dfdb0b1b63f1fa4cf573bcdcb9f3ac687c48d8d8d87604051611b8b9493929190612ab0565b60405180910390a4505050505050611ba260018055565b5050505050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600260015403611c8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610962565b6002600155565b60018055565b5f610d53838361214e565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515610d53565b73ffffffffffffffffffffffffffffffffffffffff8316611d4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7a65726f20636f756e74657270617274206164647265737300000000000000006044820152606401610962565b73ffffffffffffffffffffffffffffffffffffffff8116611dcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7a65726f206d657373656e6765722061646472657373000000000000000000006044820152606401610962565b611dd3612174565b611ddb612212565b6097805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556099805484841692169190911790558216156108cc576098805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055505050565b5f610d56825490565b5f8281527fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ed60205260409020611ebb90826122b0565b1561066357604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a45050565b5f54610100900460ff16611f9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b7fe20dc80161c3a3e412098d054775959b6cab7cf9e3d46b04fee5a64d0898f0ec80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560405133907fc36a428b063177e3f28b3b5d340c08f77827847b2ee30114ccf0c40e519c420a905f90a280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001781556120433390565b73ffffffffffffffffffffffffffffffffffffffff167fb2ed3603bd9051f0182ebfb75f12a21059b4d31b578a2a05c8d0245e9e2d320460405160405180910390a26120af7f4b43b36766bde12c5e9cbbc37d15f8d1f769f08f54720ab370faeb4ce893753a86611648565b6120d97f63f736f21cb2943826cd50b191eb054ebbea670e4e962d0527611f830cd399d685611648565b6121037f9ab8816a3dc0b3849ec1ac00483f6ec815b07eee2fd766a353311c823ad59d0d84611648565b611ba27f94a954c0bc99227eddbc0715a62a7e1056ed8784cd719c2303b685683908857c83611648565b5f610d538373ffffffffffffffffffffffffffffffffffffffff84166122d1565b5f825f01828154811061216357612163612af5565b905f5260205f200154905092915050565b5f54610100900460ff1661220a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e261231d565b5f54610100900460ff166122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e26123b3565b5f610d538373ffffffffffffffffffffffffffffffffffffffff8416612452565b5f81815260018301602052604081205461231657508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610d56565b505f610d56565b5f54610100900460ff16611c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b5f54610100900460ff16612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610962565b6108e233611ba9565b5f818152600183016020526040812054801561252c575f612474600183612b22565b85549091505f9061248790600190612b22565b90508181146124e6575f865f0182815481106124a5576124a5612af5565b905f5260205f200154905080875f0184815481106124c5576124c5612af5565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806124f7576124f7612b5a565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610d56565b5f915050610d56565b73ffffffffffffffffffffffffffffffffffffffff811681146115c4575f80fd5b5f8060408385031215612567575f80fd5b82359150602083013561257981612535565b809150509250929050565b5f60208284031215612594575f80fd5b813561259f81612535565b9392505050565b5f8083601f8401126125b6575f80fd5b50813567ffffffffffffffff8111156125cd575f80fd5b6020830191508360208285010111156125e4575f80fd5b9250929050565b5f805f805f8060a08789031215612600575f80fd5b863561260b81612535565b9550602087013561261b81612535565b945060408701359350606087013567ffffffffffffffff81111561263d575f80fd5b61264989828a016125a6565b979a9699509497949695608090950135949350505050565b5f805f60608486031215612673575f80fd5b833561267e81612535565b95602085013595506040909401359392505050565b5f805f805f805f60c0888a0312156126a9575f80fd5b87356126b481612535565b965060208801356126c481612535565b955060408801356126d481612535565b945060608801356126e481612535565b93506080880135925060a088013567ffffffffffffffff811115612706575f80fd5b6127128a828b016125a6565b989b979a50959850939692959293505050565b5f8060408385031215612736575f80fd5b50508035926020909101359150565b5f805f8060808587031215612758575f80fd5b843561276381612535565b9350602085013561277381612535565b93969395505050506040820135916060013590565b5f805f6060848603121561279a575f80fd5b83356127a581612535565b925060208401356127b581612535565b915060408401356127c581612535565b809150509250925092565b5f602082840312156127e0575f80fd5b5035919050565b5f805f80608085870312156127fa575f80fd5b843561280581612535565b9350602085013561281581612535565b9250604085013561282581612535565b9150606085013561283581612535565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020828403121561287d575f80fd5b815161259f81612535565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b5f5b838110156129125781810151838201526020016128fa565b50505f910152565b5f806040838503121561292b575f80fd5b825161293681612535565b602084015190925067ffffffffffffffff80821115612953575f80fd5b818501915085601f830112612966575f80fd5b81518181111561297857612978612840565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156129be576129be612840565b816040528281528860208487010111156129d6575f80fd5b6129e78360208301602088016128f8565b80955050505050509250929050565b5f8151808452612a0d8160208601602086016128f8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f73ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a0830152612a8d60c08301846129f6565b98975050505050505050565b5f60208284031215612aa9575f80fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152608060408201525f612ae460808301856129f6565b905082606083015295945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81810381811115610d56577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2LidoGatewayStorageLayoutJSON), L2LidoGatewayStorageLayout); err != nil { diff --git a/bindings/bindings/l2wstethtoken.go b/bindings/bindings/l2wstethtoken.go index 2e7fbebc..218d2abf 100644 --- a/bindings/bindings/l2wstethtoken.go +++ b/bindings/bindings/l2wstethtoken.go @@ -31,8 +31,8 @@ var ( // L2WstETHTokenMetaData contains all meta data concerning the L2WstETHToken contract. var L2WstETHTokenMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b5061001861001d565b6100d9565b5f54610100900460ff16156100885760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61213280620000e75f395ff3fe608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611a7e565b60405180910390f35b6101a361019e366004611abf565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611ae7565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611abf565b610499565b6101a3610276366004611b20565b6104e4565b61028e610289366004611abf565b61054d565b005b6101fc61029e366004611ba0565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611ba0565b6105c7565b6103006105f1565b6040516101879796959493929190611bb9565b61017a6106ae565b61028e610329366004611abf565b6106bd565b6101a361033c366004611abf565b61072e565b6101a361034f366004611abf565b6107e4565b61028e610362366004611d5d565b6107f1565b61028e610375366004611ded565b610a08565b6101fc610388366004611e52565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce90611e83565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611e83565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610bae565b60019150505b92915050565b5f33610475858285610d2d565b610480858585610de9565b506001949350505050565b5f61049461100f565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790611ece565b610bae565b5f6104ef85856107e4565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061101892505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105b95760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105c382826110a3565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b14801561060d5750606654155b6106595760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105b0565b61066161117c565b61066961118b565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce90611e83565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146107245760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105b0565b6105c3828261119a565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105b0565b6104808286868403610bae565b5f3361045c818585610de9565b5f54610100900460ff161580801561080f57505f54600160ff909116105b806108285750303b15801561082857505f5460ff166001145b61089a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f6575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108ff86611327565b61090986866113e5565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a00575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610a585760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105b0565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a868c61146b565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610aed8261149f565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610b4c908a9083906061016040516020818303038152906040526114e6565b610b985760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105b0565b610ba3898989610bae565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610cbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610de35781811015610dd65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b0565b610de38484848403610bae565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610efb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015610f965760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110029086815260200190565b60405180910390a3610de3565b5f61049461155e565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed369061107090339087908790600401611f06565b5f604051808303815f87803b158015611087575f80fd5b505af1158015611099573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166111065760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b0565b8060355f8282546111179190611ece565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce90611e83565b6060606880546103ce90611e83565b73ffffffffffffffffffffffffffffffffffffffff82166112235760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156112be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610d20565b505050565b5f54610100900460ff166113a35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6113e2816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506115d1565b50565b5f54610100900460ff166114615760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6105c38282611674565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f6104626114ab61100f565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6114f38585611709565b90925090505f81600481111561150b5761150b611f43565b14801561154357508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611554575061155486868661174b565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115886118a3565b6115906118fb565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff1661164d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60676116598382611fbb565b5060686116668282611fbb565b50505f606581905560665550565b5f54610100900460ff166116f05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60366116fc8382611fbb565b5060376113228282611fbb565b5f80825160410361173d576020830151604084015160608501515f1a6117318782858561192b565b94509450505050611744565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016117809291906120d3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161180991906120f3565b5f60405180830381855afa9150503d805f8114611841576040519150601f19603f3d011682016040523d82523d5f602084013e611846565b606091505b509150915081801561185a57506020815110155b8015611554575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611898908301602090810190840161210e565b149695505050505050565b5f806118ad61117c565b8051909150156118c4578051602090910120919050565b60655480156118d35792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f8061190561118b565b80519091501561191c578051602090910120919050565b60665480156118d35792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561196057505f90506003611a0a565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156119b1573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611a04575f60019250925050611a0a565b91505f90505b94509492505050565b5f5b83811015611a2d578181015183820152602001611a15565b50505f910152565b5f8151808452611a4c816020860160208601611a13565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611a906020830184611a35565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611aba575f80fd5b919050565b5f8060408385031215611ad0575f80fd5b611ad983611a97565b946020939093013593505050565b5f805f60608486031215611af9575f80fd5b611b0284611a97565b9250611b1060208501611a97565b9150604084013590509250925092565b5f805f8060608587031215611b33575f80fd5b611b3c85611a97565b935060208501359250604085013567ffffffffffffffff80821115611b5f575f80fd5b818701915087601f830112611b72575f80fd5b813581811115611b80575f80fd5b886020828501011115611b91575f80fd5b95989497505060200194505050565b5f60208284031215611bb0575f80fd5b611a9082611a97565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611bf560e084018a611a35565b8381036040850152611c07818a611a35565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611c6757835183529284019291840191600101611c4b565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611cb5575f80fd5b813567ffffffffffffffff80821115611cd057611cd0611c79565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611d1657611d16611c79565b81604052838152866020858801011115611d2e575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611aba575f80fd5b5f805f805f60a08688031215611d71575f80fd5b853567ffffffffffffffff80821115611d88575f80fd5b611d9489838a01611ca6565b96506020880135915080821115611da9575f80fd5b50611db688828901611ca6565b945050611dc560408701611d4d565b9250611dd360608701611a97565b9150611de160808701611a97565b90509295509295909350565b5f805f805f805f60e0888a031215611e03575f80fd5b611e0c88611a97565b9650611e1a60208901611a97565b95506040880135945060608801359350611e3660808901611d4d565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611e63575f80fd5b611e6c83611a97565b9150611e7a60208401611a97565b90509250929050565b600181811c90821680611e9757607f821691505b602082108103611499577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611f3a6060830184611a35565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f82111561132257805f5260205f20601f840160051c81016020851015611f955750805b601f840160051c820191505b81811015611fb4575f8155600101611fa1565b5050505050565b815167ffffffffffffffff811115611fd557611fd5611c79565b611fe981611fe38454611e83565b84611f70565b602080601f83116001811461203b575f84156120055750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a00565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561208757888601518255948401946001909101908401612068565b50858210156120c357878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6120eb6040830184611a35565b949350505050565b5f8251612104818460208701611a13565b9190910192915050565b5f6020828403121561211e575f80fd5b505191905056fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[],\"name\":\"ErrorExpiredDeadline\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorInvalidSignature\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpart\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_counterpart\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b5061001861001d565b6100d9565b5f54610100900460ff16156100885760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61210680620000e75f395ff3fe608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611a52565b60405180910390f35b6101a361019e366004611a93565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611abb565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611a93565b610499565b6101a3610276366004611af4565b6104e4565b61028e610289366004611a93565b61054d565b005b6101fc61029e366004611b74565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611b74565b6105c7565b6103006105f1565b6040516101879796959493929190611b8d565b61017a6106ae565b61028e610329366004611a93565b6106bd565b6101a361033c366004611a93565b61072e565b6101a361034f366004611a93565b6107e4565b61028e610362366004611d31565b6107f1565b61028e610375366004611dc1565b610a08565b6101fc610388366004611e26565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce90611e57565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611e57565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610b82565b60019150505b92915050565b5f33610475858285610d01565b610480858585610dbd565b506001949350505050565b5f610494610fe3565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790611ea2565b610b82565b5f6104ef85856107e4565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610fec92505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105b95760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105c38282611077565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b14801561060d5750606654155b6106595760405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105b0565b610661611150565b61066961115f565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce90611e57565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146107245760405162461bcd60e51b815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105b0565b6105c3828261116e565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156107d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105b0565b6104808286868403610b82565b5f3361045c818585610dbd565b5f54610100900460ff161580801561080f57505f54600160ff909116105b806108285750303b15801561082857505f5460ff166001145b61089a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b0565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f6575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108ff866112fb565b61090986866113b9565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a00575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610a42576040517fa5faea8300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a708c61143f565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610ad782611473565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610b36908a9083906061016040516020818303038152906040526114ba565b610b6c576040517f3f88fec700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b77898989610b82565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c0a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610c935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610db75781811015610daa5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105b0565b610db78484848403610b82565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8216610ecf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015610f6a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd69086815260200190565b60405180910390a3610db7565b5f610494611532565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed369061104490339087908790600401611eda565b5f604051808303815f87803b15801561105b575f80fd5b505af115801561106d573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166110da5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105b0565b8060355f8282546110eb9190611ea2565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce90611e57565b6060606880546103ce90611e57565b73ffffffffffffffffffffffffffffffffffffffff82166111f75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156112925760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105b0565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610cf4565b505050565b5f54610100900460ff166113775760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6113b6816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506115a5565b50565b5f54610100900460ff166114355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b6105c38282611648565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f61046261147f610fe3565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6114c785856116dd565b90925090505f8160048111156114df576114df611f17565b14801561151757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611528575061152886868661171f565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61155c611877565b6115646118cf565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff166116215760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b606761162d8382611f8f565b50606861163a8282611f8f565b50505f606581905560665550565b5f54610100900460ff166116c45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105b0565b60366116d08382611f8f565b5060376112f68282611f8f565b5f808251604103611711576020830151604084015160608501515f1a611705878285856118ff565b94509450505050611718565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016117549291906120a7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516117dd91906120c7565b5f60405180830381855afa9150503d805f8114611815576040519150601f19603f3d011682016040523d82523d5f602084013e61181a565b606091505b509150915081801561182e57506020815110155b8015611528575080517f1626ba7e000000000000000000000000000000000000000000000000000000009061186c90830160209081019084016120e2565b149695505050505050565b5f80611881611150565b805190915015611898578051602090910120919050565b60655480156118a75792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f806118d961115f565b8051909150156118f0578051602090910120919050565b60665480156118a75792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561193457505f905060036119de565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611985573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119d8575f600192509250506119de565b91505f90505b94509492505050565b5f5b83811015611a015781810151838201526020016119e9565b50505f910152565b5f8151808452611a208160208601602086016119e7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611a646020830184611a09565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8e575f80fd5b919050565b5f8060408385031215611aa4575f80fd5b611aad83611a6b565b946020939093013593505050565b5f805f60608486031215611acd575f80fd5b611ad684611a6b565b9250611ae460208501611a6b565b9150604084013590509250925092565b5f805f8060608587031215611b07575f80fd5b611b1085611a6b565b935060208501359250604085013567ffffffffffffffff80821115611b33575f80fd5b818701915087601f830112611b46575f80fd5b813581811115611b54575f80fd5b886020828501011115611b65575f80fd5b95989497505060200194505050565b5f60208284031215611b84575f80fd5b611a6482611a6b565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611bc960e084018a611a09565b8381036040850152611bdb818a611a09565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611c3b57835183529284019291840191600101611c1f565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611c89575f80fd5b813567ffffffffffffffff80821115611ca457611ca4611c4d565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611cea57611cea611c4d565b81604052838152866020858801011115611d02575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611a8e575f80fd5b5f805f805f60a08688031215611d45575f80fd5b853567ffffffffffffffff80821115611d5c575f80fd5b611d6889838a01611c7a565b96506020880135915080821115611d7d575f80fd5b50611d8a88828901611c7a565b945050611d9960408701611d21565b9250611da760608701611a6b565b9150611db560808701611a6b565b90509295509295909350565b5f805f805f805f60e0888a031215611dd7575f80fd5b611de088611a6b565b9650611dee60208901611a6b565b95506040880135945060608801359350611e0a60808901611d21565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611e37575f80fd5b611e4083611a6b565b9150611e4e60208401611a6b565b90509250929050565b600181811c90821680611e6b57607f821691505b60208210810361146d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f611f0e6060830184611a09565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f8211156112f657805f5260205f20601f840160051c81016020851015611f695750805b601f840160051c820191505b81811015611f88575f8155600101611f75565b5050505050565b815167ffffffffffffffff811115611fa957611fa9611c4d565b611fbd81611fb78454611e57565b84611f44565b602080601f83116001811461200f575f8415611fd95750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a00565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561205b5788860151825594840194600190910190840161203c565b508582101561209757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6120bf6040830184611a09565b949350505050565b5f82516120d88184602087016119e7565b9190910192915050565b5f602082840312156120f2575f80fd5b505191905056fea164736f6c6343000818000a", } // L2WstETHTokenABI is the input ABI used to generate the binding from. diff --git a/bindings/bindings/l2wstethtoken_more.go b/bindings/bindings/l2wstethtoken_more.go index 3183343a..6c7143c1 100644 --- a/bindings/bindings/l2wstethtoken_more.go +++ b/bindings/bindings/l2wstethtoken_more.go @@ -13,7 +13,7 @@ const L2WstETHTokenStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract var L2WstETHTokenStorageLayout = new(solc.StorageLayout) -var L2WstETHTokenDeployedBin = "0x608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611c86565b60405180910390f35b6101a361019e366004611cc7565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611cef565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611cc7565b610499565b6101a3610276366004611d28565b6104e4565b61028e610289366004611cc7565b61054d565b005b6101fc61029e366004611da8565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611da8565b6105e1565b61030061060b565b6040516101879796959493929190611dc1565b61017a6106e2565b61028e610329366004611cc7565b6106f1565b6101a361033c366004611cc7565b61077c565b6101a361034f366004611cc7565b61084c565b61028e610362366004611f65565b610859565b61028e610375366004611ff5565b610a8a565b6101fc61038836600461205a565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce9061208b565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa9061208b565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610c64565b60019150505b92915050565b5f33610475858285610e17565b610480858585610eed565b506001949350505050565b5f610494611161565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df9087906120d6565b610c64565b5f6104ef858561084c565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061116a92505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105dd82826111f5565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b1480156106275750606654155b61068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105ca565b6106956112e8565b61069d6112f7565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce9061208b565b60cc5473ffffffffffffffffffffffffffffffffffffffff163314610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105ca565b6105dd8282611306565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105ca565b6104808286868403610c64565b5f3361045c818585610eed565b5f54610100900460ff161580801561087757505f54600160ff909116105b806108905750303b15801561089057505f5460ff166001145b61091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105ca565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610978575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610981866114c7565b61098b868661159f565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a82575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610af4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105ca565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610b228c61163f565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610b8982611673565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610be8908a9083906061016040516020818303038152906040526116ba565b610c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105ca565b610c59898989610c64565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8216610da9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ee75781811015610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105ca565b610ee78484848403610c64565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8216611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260336020526040902054818110156110e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111549086815260200190565b60405180910390a3610ee7565b5f610494611732565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed36906111c29033908790879060040161210e565b5f604051808303815f87803b1580156111d9575f80fd5b505af11580156111eb573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ca565b8060355f82825461128391906120d6565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce9061208b565b6060606880546103ce9061208b565b73ffffffffffffffffffffffffffffffffffffffff82166113a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff82165f908152603360205260409020548181101561145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610e0a565b505050565b5f54610100900460ff1661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b61159c816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506117a5565b50565b5f54610100900460ff16611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b6105dd8282611862565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f61046261167f611161565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f6116c78585611911565b90925090505f8160048111156116df576116df61214b565b14801561171757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806117285750611728868686611953565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61175c611aab565b611764611b03565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff1661183b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b606761184783826121c3565b50606861185482826121c3565b50505f606581905560665550565b5f54610100900460ff166118f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b603661190483826121c3565b5060376114c282826121c3565b5f808251604103611945576020830151604084015160608501515f1a61193987828585611b33565b9450945050505061194c565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016119889291906122db565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611a1191906122fb565b5f60405180830381855afa9150503d805f8114611a49576040519150601f19603f3d011682016040523d82523d5f602084013e611a4e565b606091505b5091509150818015611a6257506020815110155b8015611728575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611aa09083016020908101908401612316565b149695505050505050565b5f80611ab56112e8565b805190915015611acc578051602090910120919050565b6065548015611adb5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f80611b0d6112f7565b805190915015611b24578051602090910120919050565b6066548015611adb5792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b6857505f90506003611c12565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611bb9573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611c0c575f60019250925050611c12565b91505f90505b94509492505050565b5f5b83811015611c35578181015183820152602001611c1d565b50505f910152565b5f8151808452611c54816020860160208601611c1b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611c986020830184611c3d565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611cc2575f80fd5b919050565b5f8060408385031215611cd8575f80fd5b611ce183611c9f565b946020939093013593505050565b5f805f60608486031215611d01575f80fd5b611d0a84611c9f565b9250611d1860208501611c9f565b9150604084013590509250925092565b5f805f8060608587031215611d3b575f80fd5b611d4485611c9f565b935060208501359250604085013567ffffffffffffffff80821115611d67575f80fd5b818701915087601f830112611d7a575f80fd5b813581811115611d88575f80fd5b886020828501011115611d99575f80fd5b95989497505060200194505050565b5f60208284031215611db8575f80fd5b611c9882611c9f565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611dfd60e084018a611c3d565b8381036040850152611e0f818a611c3d565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611e6f57835183529284019291840191600101611e53565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611ebd575f80fd5b813567ffffffffffffffff80821115611ed857611ed8611e81565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611f1e57611f1e611e81565b81604052838152866020858801011115611f36575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611cc2575f80fd5b5f805f805f60a08688031215611f79575f80fd5b853567ffffffffffffffff80821115611f90575f80fd5b611f9c89838a01611eae565b96506020880135915080821115611fb1575f80fd5b50611fbe88828901611eae565b945050611fcd60408701611f55565b9250611fdb60608701611c9f565b9150611fe960808701611c9f565b90509295509295909350565b5f805f805f805f60e0888a03121561200b575f80fd5b61201488611c9f565b965061202260208901611c9f565b9550604088013594506060880135935061203e60808901611f55565b925060a0880135915060c0880135905092959891949750929550565b5f806040838503121561206b575f80fd5b61207483611c9f565b915061208260208401611c9f565b90509250929050565b600181811c9082168061209f57607f821691505b60208210810361166d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6121426060830184611c3d565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f8211156114c257805f5260205f20601f840160051c8101602085101561219d5750805b601f840160051c820191505b818110156121bc575f81556001016121a9565b5050505050565b815167ffffffffffffffff8111156121dd576121dd611e81565b6121f1816121eb845461208b565b84612178565b602080601f831160018114612243575f841561220d5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a82565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561228f57888601518255948401946001909101908401612270565b50858210156122cb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6122f36040830184611c3d565b949350505050565b5f825161230c818460208701611c1b565b9190910192915050565b5f60208284031215612326575f80fd5b505191905056fea164736f6c6343000818000a" +var L2WstETHTokenDeployedBin = "0x608060405234801561000f575f80fd5b506004361061016e575f3560e01c806370a08231116100d25780639dc29fac11610088578063c820f14611610063578063c820f14614610354578063d505accf14610367578063dd62ed3e1461037a575f80fd5b80639dc29fac1461031b578063a457c2d71461032e578063a9059cbb14610341575f80fd5b80637ecebe00116100b85780637ecebe00146102e557806384b0196e146102f857806395d89b4114610313575f80fd5b806370a0823114610290578063797594b0146102c5575f80fd5b8063313ce56711610127578063395093511161010d57806339509351146102555780634000aea01461026857806340c10f191461027b575f80fd5b8063313ce5671461021d5780633644e5151461024d575f80fd5b8063116191b611610157578063116191b6146101b357806318160ddd146101f857806323b872dd1461020a575f80fd5b806306fdde0314610172578063095ea7b314610190575b5f80fd5b61017a6103bf565b6040516101879190611c26565b60405180910390f35b6101a361019e366004611c67565b61044f565b6040519015158152602001610187565b60cc546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610187565b6035545b604051908152602001610187565b6101a3610218366004611c8f565b610468565b60cd5474010000000000000000000000000000000000000000900460ff1660405160ff9091168152602001610187565b6101fc61048b565b6101a3610263366004611c67565b610499565b6101a3610276366004611cc8565b6104e4565b61028e610289366004611c67565b61054d565b005b6101fc61029e366004611d48565b73ffffffffffffffffffffffffffffffffffffffff165f9081526033602052604090205490565b60cd546101d39073ffffffffffffffffffffffffffffffffffffffff1681565b6101fc6102f3366004611d48565b6105e1565b61030061060b565b6040516101879796959493929190611d61565b61017a6106e2565b61028e610329366004611c67565b6106f1565b6101a361033c366004611c67565b61077c565b6101a361034f366004611c67565b61084c565b61028e610362366004611f05565b610859565b61028e610375366004611f95565b610a8a565b6101fc610388366004611ffa565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260346020908152604080832093909416825291909152205490565b6060603680546103ce9061202b565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa9061202b565b80156104455780601f1061041c57610100808354040283529160200191610445565b820191905f5260205f20905b81548152906001019060200180831161042857829003601f168201915b5050505050905090565b5f3361045c818585610c04565b60019150505b92915050565b5f33610475858285610db7565b610480858585610e8d565b506001949350505050565b5f610494611101565b905090565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919061045c90829086906104df908790612076565b610c04565b5f6104ef858561084c565b5073ffffffffffffffffffffffffffffffffffffffff85163b1561048057610480858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061110a92505050565b60cc5473ffffffffffffffffffffffffffffffffffffffff1633146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105dd8282611195565b5050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260996020526040812054610462565b5f6060805f805f60606065545f801b1480156106275750606654155b61068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a6564000000000000000000000060448201526064016105ca565b610695611288565b61069d611297565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b6060603780546103ce9061202b565b60cc5473ffffffffffffffffffffffffffffffffffffffff163314610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c792047617465776179000000000000000000000000000000000000000060448201526064016105ca565b6105dd82826112a6565b335f81815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105ca565b6104808286868403610c04565b5f3361045c818585610e8d565b5f54610100900460ff161580801561087757505f54600160ff909116105b806108905750303b15801561089057505f5460ff166001145b61091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105ca565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610978575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61098186611467565b61098b868661153f565b60cd805460cc805473ffffffffffffffffffffffffffffffffffffffff8088167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925590851660ff88167401000000000000000000000000000000000000000002919091167fffffffffffffffffffffff000000000000000000000000000000000000000000909216919091171790558015610a82575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b83421115610ac4576040517fa5faea8300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610af28c6115df565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610b5982611613565b60408051602081018790529081018590527fff0000000000000000000000000000000000000000000000000000000000000060f888901b166060820152909150610bb8908a90839060610160405160208183030381529060405261165a565b610bee576040517f3f88fec700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bf9898989610c04565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8216610d49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e875781811015610e7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105ca565b610e878484848403610c04565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610f30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8216610fd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526033602052604090205481811015611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110f49086815260200190565b60405180910390a3610e87565b5f6104946116d2565b6040517fa4c0ed36000000000000000000000000000000000000000000000000000000008152839073ffffffffffffffffffffffffffffffffffffffff82169063a4c0ed3690611162903390879087906004016120ae565b5f604051808303815f87803b158015611179575f80fd5b505af115801561118b573d5f803e3d5ffd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ca565b8060355f8282546112239190612076565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060606780546103ce9061202b565b6060606880546103ce9061202b565b73ffffffffffffffffffffffffffffffffffffffff8216611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260336020526040902054818110156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105ca565b73ffffffffffffffffffffffffffffffffffffffff83165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610daa565b505050565b5f54610100900460ff166114fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b61153c816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611745565b50565b5f54610100900460ff166115d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b6105dd8282611802565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526099602052604090208054600181018255905b50919050565b5f61046261161f611101565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b5f805f61166785856118b1565b90925090505f81600481111561167f5761167f6120eb565b1480156116b757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806116c857506116c88686866118f3565b9695505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6116fc611a4b565b611704611aa3565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff166117db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b60676117e78382612163565b5060686117f48282612163565b50505f606581905560665550565b5f54610100900460ff16611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ca565b60366118a48382612163565b5060376114628282612163565b5f8082516041036118e5576020830151604084015160608501515f1a6118d987828585611ad3565b945094505050506118ec565b505f905060025b9250929050565b5f805f8573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b868660405160240161192892919061227b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516119b1919061229b565b5f60405180830381855afa9150503d805f81146119e9576040519150601f19603f3d011682016040523d82523d5f602084013e6119ee565b606091505b5091509150818015611a0257506020815110155b80156116c8575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611a4090830160209081019084016122b6565b149695505050505050565b5f80611a55611288565b805190915015611a6c578051602090910120919050565b6065548015611a7b5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f80611aad611297565b805190915015611ac4578051602090910120919050565b6066548015611a7b5792915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b0857505f90506003611bb2565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b59573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611bac575f60019250925050611bb2565b91505f90505b94509492505050565b5f5b83811015611bd5578181015183820152602001611bbd565b50505f910152565b5f8151808452611bf4816020860160208601611bbb565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f611c386020830184611bdd565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611c62575f80fd5b919050565b5f8060408385031215611c78575f80fd5b611c8183611c3f565b946020939093013593505050565b5f805f60608486031215611ca1575f80fd5b611caa84611c3f565b9250611cb860208501611c3f565b9150604084013590509250925092565b5f805f8060608587031215611cdb575f80fd5b611ce485611c3f565b935060208501359250604085013567ffffffffffffffff80821115611d07575f80fd5b818701915087601f830112611d1a575f80fd5b813581811115611d28575f80fd5b886020828501011115611d39575f80fd5b95989497505060200194505050565b5f60208284031215611d58575f80fd5b611c3882611c3f565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e06020840152611d9d60e084018a611bdd565b8381036040850152611daf818a611bdd565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611e0f57835183529284019291840191600101611df3565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112611e5d575f80fd5b813567ffffffffffffffff80821115611e7857611e78611e21565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611ebe57611ebe611e21565b81604052838152866020858801011115611ed6575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114611c62575f80fd5b5f805f805f60a08688031215611f19575f80fd5b853567ffffffffffffffff80821115611f30575f80fd5b611f3c89838a01611e4e565b96506020880135915080821115611f51575f80fd5b50611f5e88828901611e4e565b945050611f6d60408701611ef5565b9250611f7b60608701611c3f565b9150611f8960808701611c3f565b90509295509295909350565b5f805f805f805f60e0888a031215611fab575f80fd5b611fb488611c3f565b9650611fc260208901611c3f565b95506040880135945060608801359350611fde60808901611ef5565b925060a0880135915060c0880135905092959891949750929550565b5f806040838503121561200b575f80fd5b61201483611c3f565b915061202260208401611c3f565b90509250929050565b600181811c9082168061203f57607f821691505b60208210810361160d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b80820180821115610462577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201525f6120e26060830184611bdd565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b601f82111561146257805f5260205f20601f840160051c8101602085101561213d5750805b601f840160051c820191505b8181101561215c575f8155600101612149565b5050505050565b815167ffffffffffffffff81111561217d5761217d611e21565b6121918161218b845461202b565b84612118565b602080601f8311600181146121e3575f84156121ad5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610a82565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561222f57888601518255948401946001909101908401612210565b508582101561226b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201525f6122936040830184611bdd565b949350505050565b5f82516122ac818460208701611bbb565b9190910192915050565b5f602082840312156122c6575f80fd5b505191905056fea164736f6c6343000818000a" func init() { if err := json.Unmarshal([]byte(L2WstETHTokenStorageLayoutJSON), L2WstETHTokenStorageLayout); err != nil { diff --git a/contracts/contracts/lido/L1LidoGateway.sol b/contracts/contracts/lido/L1LidoGateway.sol index f3961861..39c1c3fe 100644 --- a/contracts/contracts/lido/L1LidoGateway.sol +++ b/contracts/contracts/lido/L1LidoGateway.sol @@ -11,6 +11,9 @@ import {GatewayBase} from "../libraries/gateway/GatewayBase.sol"; import {LidoBridgeableTokens} from "./LidoBridgeableTokens.sol"; import {LidoGatewayManager} from "./LidoGatewayManager.sol"; +/** + * @custom:security-contact official@morphl2.io + */ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManager { /********** * Errors * @@ -39,8 +42,9 @@ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag /// @param _l1Token The address of the bridged token in the L1 chain /// @param _l2Token The address of the token minted on the L2 chain when token bridged constructor(address _l1Token, address _l2Token) LidoBridgeableTokens(_l1Token, _l2Token) { - require(_l1Token != address(0), "zero l1token address"); - require(_l2Token != address(0), "zero l2Token address"); + if (_l1Token == address(0) || _l2Token ==address(0)){ + revert ErrorZeroAddress(); + } _disableInitializers(); } @@ -121,9 +125,10 @@ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag if (_data.length != 0) revert DepositAndCallIsNotAllowed(); // 2. Generate message passed to L2LidoGateway. + address _l2Token = l2Token; bytes memory _message = abi.encodeCall( IL2ERC20Gateway.finalizeDepositERC20, - (_token, l2Token, _from, _to, _amount, _data) + (_token, _l2Token, _from, _to, _amount, _data) ); uint256 nonce = IL1CrossDomainMessenger(messenger).messageNonce(); @@ -131,6 +136,6 @@ contract L1LidoGateway is L1ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag // 3. Send message to L1CrossDomainMessenger. IL1CrossDomainMessenger(messenger).sendMessage{value: msg.value}(counterpart, 0, _message, _gasLimit, _from); - emit DepositERC20(_token, l2Token, _from, _to, _amount, _data, nonce); + emit DepositERC20(_token, _l2Token, _from, _to, _amount, _data, nonce); } } diff --git a/contracts/contracts/lido/L2LidoGateway.sol b/contracts/contracts/lido/L2LidoGateway.sol index 8ac046d8..da075c74 100644 --- a/contracts/contracts/lido/L2LidoGateway.sol +++ b/contracts/contracts/lido/L2LidoGateway.sol @@ -12,6 +12,9 @@ import {GatewayBase} from "../libraries/gateway/GatewayBase.sol"; import {LidoBridgeableTokens} from "./LidoBridgeableTokens.sol"; import {LidoGatewayManager} from "./LidoGatewayManager.sol"; +/** + * @custom:security-contact official@morphl2.io + */ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManager { /********** * Errors * @@ -40,8 +43,9 @@ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag /// @param _l1Token The address of the bridged token in the L1 chain /// @param _l2Token The address of the token minted on the L2 chain when token bridged constructor(address _l1Token, address _l2Token) LidoBridgeableTokens(_l1Token, _l2Token) { - require(_l1Token != address(0), "zero l1token address"); - require(_l2Token != address(0), "zero l2Token address"); + if (_l1Token == address(0) || _l2Token ==address(0)){ + revert ErrorZeroAddress(); + } _disableInitializers(); } @@ -59,7 +63,7 @@ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag /// @notice Initialize the storage of L2LidoGateway v2. /// @param _depositsEnabler The address of user who can enable deposits - /// @param _depositsEnabler The address of user who can disable deposits + /// @param _depositsDisabler The address of user who can disable deposits /// @param _withdrawalsEnabler The address of user who can enable withdrawals /// @param _withdrawalsDisabler The address of user who can disable withdrawals function initializeV2( @@ -152,9 +156,10 @@ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag IMorphERC20Upgradeable(_l2Token).burn(_from, _amount); // 3. Generate message passed to L1LidoGateway. + address _l1Token = l1Token; bytes memory _message = abi.encodeCall( IL1ERC20Gateway.finalizeWithdrawERC20, - (l1Token, _l2Token, _from, _to, _amount, _data) + (_l1Token, _l2Token, _from, _to, _amount, _data) ); uint256 nonce = IL2CrossDomainMessenger(messenger).messageNonce(); @@ -162,6 +167,6 @@ contract L2LidoGateway is L2ERC20Gateway, LidoBridgeableTokens, LidoGatewayManag // 4. send message to L2CrossDomainMessenger IL2CrossDomainMessenger(messenger).sendMessage{value: msg.value}(counterpart, 0, _message, _gasLimit); - emit WithdrawERC20(l1Token, _l2Token, _from, _to, _amount, _data, nonce); + emit WithdrawERC20(_l1Token, _l2Token, _from, _to, _amount, _data, nonce); } } diff --git a/contracts/contracts/lido/L2WstETHToken.sol b/contracts/contracts/lido/L2WstETHToken.sol index fcf76408..e79a3852 100644 --- a/contracts/contracts/lido/L2WstETHToken.sol +++ b/contracts/contracts/lido/L2WstETHToken.sol @@ -8,7 +8,20 @@ import {SignatureCheckerUpgradeable} from "@openzeppelin/contracts-upgradeable/u import {MorphStandardERC20} from "../libraries/token/MorphStandardERC20.sol"; +/** + * @custom:security-contact official@morphl2.io + */ contract L2WstETHToken is MorphStandardERC20 { + /********** + * Errors * + **********/ + + /// @dev Thrown when the deadline is expired. + error ErrorExpiredDeadline(); + + /// @dev Thrown when the given signature is invalid. + error ErrorInvalidSignature(); + /************* * Constants * *************/ @@ -33,16 +46,16 @@ contract L2WstETHToken is MorphStandardERC20 { bytes32 r, bytes32 s ) public virtual override(ERC20PermitUpgradeable, IERC20PermitUpgradeable) { - require(block.timestamp <= deadline, "ERC20Permit: expired deadline"); - + if (block.timestamp > deadline) { + revert ErrorExpiredDeadline(); + } bytes32 structHash = keccak256(abi.encode(_PERMIT_TYPEHASH, owner, spender, value, _useNonce(owner), deadline)); bytes32 hash = _hashTypedDataV4(structHash); - require( - SignatureCheckerUpgradeable.isValidSignatureNow(owner, hash, abi.encodePacked(r, s, v)), - "ERC20Permit: invalid signature" - ); + if (!SignatureCheckerUpgradeable.isValidSignatureNow(owner, hash, abi.encodePacked(r, s, v))){ + revert ErrorInvalidSignature(); + } _approve(owner, spender, value); } diff --git a/contracts/contracts/lido/LidoBridgeableTokens.sol b/contracts/contracts/lido/LidoBridgeableTokens.sol index 2da95ba1..806d43c4 100644 --- a/contracts/contracts/lido/LidoBridgeableTokens.sol +++ b/contracts/contracts/lido/LidoBridgeableTokens.sol @@ -2,6 +2,9 @@ pragma solidity =0.8.24; +/** + * @custom:security-contact official@morphl2.io + */ abstract contract LidoBridgeableTokens { /************* * Constants * @@ -17,6 +20,9 @@ abstract contract LidoBridgeableTokens { * Errors * **********/ + /// @dev Thrown when the given address is `address(0)`. + error ErrorZeroAddress(); + /// @dev Thrown the given `l1Token` is not supported. error ErrorUnsupportedL1Token(); diff --git a/contracts/contracts/lido/LidoGatewayManager.sol b/contracts/contracts/lido/LidoGatewayManager.sol index b70e7883..f9d1247b 100644 --- a/contracts/contracts/lido/LidoGatewayManager.sol +++ b/contracts/contracts/lido/LidoGatewayManager.sol @@ -8,6 +8,9 @@ import {GatewayBase} from "../libraries/gateway/GatewayBase.sol"; // solhint-disable func-name-mixedcase +/** + * @custom:security-contact official@morphl2.io + */ abstract contract LidoGatewayManager is GatewayBase { using EnumerableSetUpgradeable for EnumerableSetUpgradeable.AddressSet; @@ -128,7 +131,7 @@ abstract contract LidoGatewayManager is GatewayBase { /// @notice Initialize the storage of LidoGatewayManager. /// @param _depositsEnabler The address of user who can enable deposits - /// @param _depositsEnabler The address of user who can disable deposits + /// @param _depositsDisabler The address of user who can disable deposits /// @param _withdrawalsEnabler The address of user who can enable withdrawals /// @param _withdrawalsDisabler The address of user who can disable withdrawals function __LidoGatewayManager_init( diff --git a/contracts/contracts/lido/README.md b/contracts/contracts/lido/README.md new file mode 100644 index 00000000..6b453874 --- /dev/null +++ b/contracts/contracts/lido/README.md @@ -0,0 +1,112 @@ +# Lido's Morph Bridge + +The document outlines the process of bridging ERC20-compatible tokens between the Ethereum and Morph chains. + +This marks the initial phase of Lido's integration into the Morph protocol. The primary objective of this implementation is to establish a solid foundation for Lido's long-term expansion goals on the Morph chain. The broader vision for Lido's integration into Layer 2 solutions includes: + +- Bridging Lido's tokens from Layer 1 to Layer 2 chains +- Enabling instant ETH staking on Layer 2 chains, with users receiving stETH/wstETH immediately on the corresponding Layer 2 +- Maintaining a user experience on Layer 2 that closely resembles that of the Ethereum mainnet +At this stage, the implementation aims to deliver a scalable and reliable solution for Lido to bridge ERC20-compatible tokens between Morph and the Ethereum chain. + +## Security surface overview + +| Statement | Answer | +| -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| It is possible to bridge wstETH forth and back using this bridge | Yes | +| The bridge using a canonical mechanism for message/value passing | Yes | +| The bridge is upgradeable | Yes | +| Upgrade authority for the bridge | Yes | +| Emergency pause/cancel mechanisms and their authorities | TBA | +| The bridged token support permits and ERC-1271 | Yes | +| Are the following things in the scope of this bridge deployment: | | +| - Passing the (w)stETH/USD price feed | No | +| - Passing Lido DAO governance decisions | [Lido DAO Agent](https://etherscan.io/address/0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c) representation via [MorphBridgeExecutor](TBD) | +| Bridges are complicated in that the transaction can succeed on one side and fail on the other. What's the handling mechanism for this issue? | TBA | +| Is there a deployment script that sets all the parameters and authorities correctly? | No, we use hardhat tasks to deploy and perform related permission operations after the test is completed. | +| Is there a post-deploy check script that, given a deployment, checks that all parameters and authorities are set correctly? | No | + +## Morph's Bridging Flow + +The default Morph bridging solution consists of two components: `L1StandardERC20Gateway` and `L2StandardERC20Gateway`. These contracts facilitate the bridging of ERC20 tokens between the Ethereum and Morph chains. + +In the standard bridge, when an ERC20 token is deposited on Layer 1 and sent to the bridge contract, it is "locked" there while an equivalent amount of the L2 token is minted. For withdrawals, the process is reversed: the L2 token amount is burned, and the same amount of L1 tokens is sent to the recipient. + +While the default Morph bridge meets Lido's short-term goal of bridging the wstETH token into Morph, it poses challenges for achieving long-term objectives. For instance, implementing staking from Layer 2 will likely require modifications to both the token and gateway implementations. + +Moreover, Morph offers the flexibility to create a custom bridge solution using the same cross-domain infrastructure as the standard bridge. The only requirement for a custom bridge to be compatible with the default Morph Gateway is the implementation of the `IL1ERC20Gateway` and `IL2ERC20Gateway` interfaces. + +The remainder of the document includes technical specifications for the bridge that Lido will use to transfer tokens between the Ethereum and Morph chains. + + +## Lido's Bridge Implementation + +The current implementation of the token bridge enables the transfer of ERC20-compatible tokens between Ethereum and Morph chains. It also includes administrative features, such as the ability to temporarily disable deposits and withdrawals. This functionality is crucial for quickly addressing potential malicious activities or vulnerabilities within the contracts, as well as facilitating the upgrade process. + +The technical implementation prioritizes the following requirements for the contracts: + +- **Scalability**: The current design must allow for future extensions and new functionalities. +- **Simplicity**: The contracts should be clear, straightforward, and easy for future developers to understand and work with. +- **Gas Efficiency**: The solution should minimize gas costs for users while maintaining clarity and simplicity. + +A high-level overview of the proposed solution can be found in the diagram below: + + +![](https://i.imgur.com/rbIvCr6.png) + +- [**`LidoGatewayManager`**](./LidoGatewayManager.sol): This contract includes administrative methods to manage and monitor the state of the bridging process. +- [**`LidoBridgeableTokens`**](./LidoBridgeableTokens.sol) : This contract implements the logic for validating tokens involved in the bridging process. +- [**`L1LidoGateway`**](./L1LidoGateway.sol): This contract serves as Ethereum's counterpart for bridging registered ERC20-compatible tokens between Ethereum and Morph chains. +- [**`L2LidoGateway`**](./L2LidoGateway.sol): This contract acts as Morph's counterpart for bridging registered ERC20-compatible tokens between Ethereum and Morph chains. +- [**`MorphStandardERC20`**](../libraries/token/MorphStandardERC20.sol): This is an implementation of the `ERC20` token, equipped with administrative methods for minting and burning tokens. +- [**`TransparentUpgradeableProxy`**](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/transparent/TransparentUpgradeableProxy.sol) : This is an ERC1967 proxy that includes additional administrative functionalities. + +## Morph's Bridging Flow + +You can find the general process for bridging tokens through Morph's Lido bridge here: [ETH and ERC20 Token Bridge](https://docs.morphl2.io/docs/build-on-morph/build-on-morph/bridge-between-morph-and-ethereum). + +The goal of cross-chain governance is bridging the Lido DAO governance decisions, voted by the LDO holders on Ethereum, to Morph network. The main component of this bridge is MorphBridgeExecutor contract on L2, which queues the action sets sent from L1 Lido Agent through L1Executor. + +![](https://i.imgur.com/4cgEo63.png) + + +## Deployment Process + +To minimize gas costs for users, the `L1LidoGateway`, `L2LidoGateway`, and `MorphStandardERC20` contracts utilize immutable variables wherever possible. However, some of these variables reference each other; for instance, `L1LidoGateway` refers to `L2LidoGateway` and vice versa. By using proxies, we can initially deploy them without invoking the `initialize` function for each gateway, and then call the `initialize` function with the correct contract addresses. + +Alternatively, we could pre-calculate the future addresses of the deployed contracts off-chain and deploy the implementation using these pre-calculated addresses, but this approach is less fault-tolerant than the first option. + +## Integration Risks + +As an additional component in the token flow chain, the Morph protocol and bridges introduce potential points of failure. The main risks associated with the current integration are outlined below: + +### Minting of Uncollateralized L2 Tokens + +An attack could occur if an attacker gains access to call `L2LidoGateway.finalizeDepositERC20()` directly. In this scenario, they could mint uncollateralized tokens on L2 and later initiate a withdrawal. + +To detect such an attack, off-chain monitoring of minting and deposit/withdrawal events is essential. The following statistics can be tracked based on these events: + +- `l1ERC20TokenBridgedAmount`: Total number of tokens bridged on the L1 bridge contract. +- `l2TokenTotalSupply`: Total number of minted L2 tokens. +- `l2TokenNotFinalizedDeposit`: Total number of locked L1 tokens that have not been finalized and relayed from the L2 bridge. +- `l2TokenNotWithdrawn`: Total number of burned L2 tokens that have not been withdrawn from the L1 bridge. + +The following invariant must always hold true: `l1ERC20TokenBridgedAmount == l2TokenTotalSupply + l2TokenNotWithdrawn + l2TokenNotFinalizedDeposit`. + +If this invariant is violated, Lido will enter a dispute period to suspend both the L1 and L2 bridges. During this time, the bridges will be disabled, preventing the minting of L2 tokens and the withdrawal of minted tokens until the issue is resolved. + +### Attack on L1CrossDomainMessenger + +According to the Morph documentation, the `L1CrossDomainMessenger` contract sends messages from L1 to L2 and executes the challenged L2 messages in the `Rollup`. + +This contract plays a crucial role in L2-to-L1 communication, as all messages from L2 that are finalized by a challenger and verified by Merkle proof are executed on behalf of this contract. + +If there is a vulnerability in the `L1CrossDomainMessenger` or `Rollup` that allows an attacker to send arbitrary messages while bypassing the challenge and Merkle proof, they could potentially drain tokens from the L1 bridge. + +Additionally, the upgradeability of the `L1CrossDomainMessenger` and `Rollup` poses risks. An attacker could exploit this by replacing the implementation with malicious functionality, which could lead to the theft of all locked tokens on the L1 bridge. + +To respond swiftly to such an attack, Lido can implement monitoring of the Proxy contract to raise an alert in the event of an implementation upgrade. + +--- + +Feel free to ask if you need further adjustments or additional information!